Lines Matching refs:queue
238 struct data_queue *queue; in rt2x00usb_work_txdone() local
241 tx_queue_for_each(rt2x00dev, queue) { in rt2x00usb_work_txdone()
242 while (!rt2x00queue_empty(queue)) { in rt2x00usb_work_txdone()
243 entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE); in rt2x00usb_work_txdone()
257 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_interrupt_txdone()
284 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_kick_tx_entry()
312 usb_sndbulkpipe(usb_dev, entry->queue->usb_endpoint), in rt2x00usb_kick_tx_entry()
350 skbdesc->desc_len = entry->queue->desc_size; in rt2x00usb_work_rxdone()
362 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_interrupt_rxdone()
377 if (urb->actual_length < entry->queue->desc_size || urb->status) in rt2x00usb_interrupt_rxdone()
389 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_kick_rx_entry()
401 usb_rcvbulkpipe(usb_dev, entry->queue->usb_endpoint), in rt2x00usb_kick_rx_entry()
416 void rt2x00usb_kick_queue(struct data_queue *queue) in rt2x00usb_kick_queue() argument
418 switch (queue->qid) { in rt2x00usb_kick_queue()
423 if (!rt2x00queue_empty(queue)) in rt2x00usb_kick_queue()
424 rt2x00queue_for_each_entry(queue, in rt2x00usb_kick_queue()
431 if (!rt2x00queue_full(queue)) in rt2x00usb_kick_queue()
432 rt2x00queue_for_each_entry(queue, in rt2x00usb_kick_queue()
446 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_flush_entry()
458 if ((entry->queue->qid == QID_BEACON) && in rt2x00usb_flush_entry()
465 void rt2x00usb_flush_queue(struct data_queue *queue, bool drop) in rt2x00usb_flush_queue() argument
471 rt2x00queue_for_each_entry(queue, Q_INDEX_DONE, Q_INDEX, NULL, in rt2x00usb_flush_queue()
477 switch (queue->qid) { in rt2x00usb_flush_queue()
482 completion = &queue->rt2x00dev->txdone_work; in rt2x00usb_flush_queue()
485 completion = &queue->rt2x00dev->rxdone_work; in rt2x00usb_flush_queue()
497 if (rt2x00queue_empty(queue)) in rt2x00usb_flush_queue()
504 queue_work(queue->rt2x00dev->workqueue, completion); in rt2x00usb_flush_queue()
515 static void rt2x00usb_watchdog_tx_dma(struct data_queue *queue) in rt2x00usb_watchdog_tx_dma() argument
517 rt2x00_warn(queue->rt2x00dev, "TX queue %d DMA timed out, invoke forced forced reset\n", in rt2x00usb_watchdog_tx_dma()
518 queue->qid); in rt2x00usb_watchdog_tx_dma()
520 rt2x00queue_stop_queue(queue); in rt2x00usb_watchdog_tx_dma()
521 rt2x00queue_flush_queue(queue, true); in rt2x00usb_watchdog_tx_dma()
522 rt2x00queue_start_queue(queue); in rt2x00usb_watchdog_tx_dma()
525 static int rt2x00usb_dma_timeout(struct data_queue *queue) in rt2x00usb_dma_timeout() argument
529 entry = rt2x00queue_get_entry(queue, Q_INDEX_DMA_DONE); in rt2x00usb_dma_timeout()
535 struct data_queue *queue; in rt2x00usb_watchdog() local
537 tx_queue_for_each(rt2x00dev, queue) { in rt2x00usb_watchdog()
538 if (!rt2x00queue_empty(queue)) { in rt2x00usb_watchdog()
539 if (rt2x00usb_dma_timeout(queue)) in rt2x00usb_watchdog()
540 rt2x00usb_watchdog_tx_dma(queue); in rt2x00usb_watchdog()
563 if (entry->queue->qid == QID_RX) in rt2x00usb_clear_entry()
568 static void rt2x00usb_assign_endpoint(struct data_queue *queue, in rt2x00usb_assign_endpoint() argument
571 struct usb_device *usb_dev = to_usb_device_intf(queue->rt2x00dev->dev); in rt2x00usb_assign_endpoint()
574 queue->usb_endpoint = usb_endpoint_num(ep_desc); in rt2x00usb_assign_endpoint()
576 if (queue->qid == QID_RX) { in rt2x00usb_assign_endpoint()
577 pipe = usb_rcvbulkpipe(usb_dev, queue->usb_endpoint); in rt2x00usb_assign_endpoint()
578 queue->usb_maxpacket = usb_maxpacket(usb_dev, pipe, 0); in rt2x00usb_assign_endpoint()
580 pipe = usb_sndbulkpipe(usb_dev, queue->usb_endpoint); in rt2x00usb_assign_endpoint()
581 queue->usb_maxpacket = usb_maxpacket(usb_dev, pipe, 1); in rt2x00usb_assign_endpoint()
584 if (!queue->usb_maxpacket) in rt2x00usb_assign_endpoint()
585 queue->usb_maxpacket = 1; in rt2x00usb_assign_endpoint()
593 struct data_queue *queue = rt2x00dev->tx; in rt2x00usb_find_endpoints() local
609 (queue != queue_end(rt2x00dev))) { in rt2x00usb_find_endpoints()
610 rt2x00usb_assign_endpoint(queue, ep_desc); in rt2x00usb_find_endpoints()
611 queue = queue_next(queue); in rt2x00usb_find_endpoints()
630 txall_queue_for_each(rt2x00dev, queue) { in rt2x00usb_find_endpoints()
631 if (!queue->usb_endpoint) in rt2x00usb_find_endpoints()
632 rt2x00usb_assign_endpoint(queue, tx_ep_desc); in rt2x00usb_find_endpoints()
638 static int rt2x00usb_alloc_entries(struct data_queue *queue) in rt2x00usb_alloc_entries() argument
640 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2x00usb_alloc_entries()
645 for (i = 0; i < queue->limit; i++) { in rt2x00usb_alloc_entries()
646 entry_priv = queue->entries[i].priv_data; in rt2x00usb_alloc_entries()
657 if (queue->qid != QID_BEACON || in rt2x00usb_alloc_entries()
661 for (i = 0; i < queue->limit; i++) { in rt2x00usb_alloc_entries()
662 bcn_priv = queue->entries[i].priv_data; in rt2x00usb_alloc_entries()
671 static void rt2x00usb_free_entries(struct data_queue *queue) in rt2x00usb_free_entries() argument
673 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2x00usb_free_entries()
678 if (!queue->entries) in rt2x00usb_free_entries()
681 for (i = 0; i < queue->limit; i++) { in rt2x00usb_free_entries()
682 entry_priv = queue->entries[i].priv_data; in rt2x00usb_free_entries()
692 if (queue->qid != QID_BEACON || in rt2x00usb_free_entries()
696 for (i = 0; i < queue->limit; i++) { in rt2x00usb_free_entries()
697 bcn_priv = queue->entries[i].priv_data; in rt2x00usb_free_entries()
705 struct data_queue *queue; in rt2x00usb_initialize() local
718 queue_for_each(rt2x00dev, queue) { in rt2x00usb_initialize()
719 status = rt2x00usb_alloc_entries(queue); in rt2x00usb_initialize()
735 struct data_queue *queue; in rt2x00usb_uninitialize() local
737 queue_for_each(rt2x00dev, queue) in rt2x00usb_uninitialize()
738 rt2x00usb_free_entries(queue); in rt2x00usb_uninitialize()