Lines Matching defs:queue

252 	struct data_queue *queue;
255 tx_queue_for_each(rt2x00dev, queue) {
256 while (!rt2x00queue_empty(queue)) {
257 entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
271 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
298 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
326 usb_sndbulkpipe(usb_dev, entry->queue->usb_endpoint),
363 skbdesc->desc_len = entry->queue->desc_size;
375 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
385 if (urb->actual_length < entry->queue->desc_size || urb->status)
401 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
412 usb_rcvbulkpipe(usb_dev, entry->queue->usb_endpoint),
427 void rt2x00usb_kick_queue(struct data_queue *queue)
429 switch (queue->qid) {
434 if (!rt2x00queue_empty(queue))
435 rt2x00queue_for_each_entry(queue,
442 if (!rt2x00queue_full(queue))
443 rt2x00queue_for_each_entry(queue,
457 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
469 if ((entry->queue->qid == QID_BEACON) &&
476 void rt2x00usb_flush_queue(struct data_queue *queue, bool drop)
482 rt2x00queue_for_each_entry(queue, Q_INDEX_DONE, Q_INDEX, NULL,
486 * Obtain the queue completion handler
488 switch (queue->qid) {
493 completion = &queue->rt2x00dev->txdone_work;
496 completion = &queue->rt2x00dev->rxdone_work;
508 if (rt2x00queue_empty(queue))
513 * worker function runs, it should cleanup the queue.
515 queue_work(queue->rt2x00dev->workqueue, completion);
526 static void rt2x00usb_watchdog_tx_dma(struct data_queue *queue)
528 rt2x00_warn(queue->rt2x00dev, "TX queue %d DMA timed out, invoke forced reset\n",
529 queue->qid);
531 rt2x00queue_stop_queue(queue);
532 rt2x00queue_flush_queue(queue, true);
533 rt2x00queue_start_queue(queue);
536 static int rt2x00usb_dma_timeout(struct data_queue *queue)
540 entry = rt2x00queue_get_entry(queue, Q_INDEX_DMA_DONE);
546 struct data_queue *queue;
548 tx_queue_for_each(rt2x00dev, queue) {
549 if (!rt2x00queue_empty(queue)) {
550 if (rt2x00usb_dma_timeout(queue))
551 rt2x00usb_watchdog_tx_dma(queue);
574 if (entry->queue->qid == QID_RX)
579 static void rt2x00usb_assign_endpoint(struct data_queue *queue,
582 struct usb_device *usb_dev = to_usb_device_intf(queue->rt2x00dev->dev);
585 queue->usb_endpoint = usb_endpoint_num(ep_desc);
587 if (queue->qid == QID_RX) {
588 pipe = usb_rcvbulkpipe(usb_dev, queue->usb_endpoint);
589 queue->usb_maxpacket = usb_maxpacket(usb_dev, pipe);
591 pipe = usb_sndbulkpipe(usb_dev, queue->usb_endpoint);
592 queue->usb_maxpacket = usb_maxpacket(usb_dev, pipe);
595 if (!queue->usb_maxpacket)
596 queue->usb_maxpacket = 1;
604 struct data_queue *queue = rt2x00dev->tx;
612 * to the queue.
620 (queue != queue_end(rt2x00dev))) {
621 rt2x00usb_assign_endpoint(queue, ep_desc);
622 queue = queue_next(queue);
641 txall_queue_for_each(rt2x00dev, queue) {
642 if (!queue->usb_endpoint)
643 rt2x00usb_assign_endpoint(queue, tx_ep_desc);
649 static int rt2x00usb_alloc_entries(struct data_queue *queue)
651 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
656 for (i = 0; i < queue->limit; i++) {
657 entry_priv = queue->entries[i].priv_data;
664 * If this is not the beacon queue or
668 if (queue->qid != QID_BEACON ||
672 for (i = 0; i < queue->limit; i++) {
673 bcn_priv = queue->entries[i].priv_data;
682 static void rt2x00usb_free_entries(struct data_queue *queue)
684 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
689 if (!queue->entries)
692 for (i = 0; i < queue->limit; i++) {
693 entry_priv = queue->entries[i].priv_data;
699 * If this is not the beacon queue or
703 if (queue->qid != QID_BEACON ||
707 for (i = 0; i < queue->limit; i++) {
708 bcn_priv = queue->entries[i].priv_data;
716 struct data_queue *queue;
720 * Find endpoints for each queue
729 queue_for_each(rt2x00dev, queue) {
730 status = rt2x00usb_alloc_entries(queue);
746 struct data_queue *queue;
753 queue_for_each(rt2x00dev, queue)
754 rt2x00usb_free_entries(queue);