diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00queue.h')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00queue.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.h b/drivers/net/wireless/rt2x00/rt2x00queue.h index 4d3c7246f9ae..2e99ab53ec65 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.h +++ b/drivers/net/wireless/rt2x00/rt2x00queue.h | |||
@@ -380,6 +380,8 @@ enum queue_index { | |||
380 | * @cw_max: The cw max value for outgoing frames (field ignored in RX queue). | 380 | * @cw_max: The cw max value for outgoing frames (field ignored in RX queue). |
381 | * @data_size: Maximum data size for the frames in this queue. | 381 | * @data_size: Maximum data size for the frames in this queue. |
382 | * @desc_size: Hardware descriptor size for the data in this queue. | 382 | * @desc_size: Hardware descriptor size for the data in this queue. |
383 | * @usb_endpoint: Device endpoint used for communication (USB only) | ||
384 | * @usb_maxpacket: Max packet size for given endpoint (USB only) | ||
383 | */ | 385 | */ |
384 | struct data_queue { | 386 | struct data_queue { |
385 | struct rt2x00_dev *rt2x00dev; | 387 | struct rt2x00_dev *rt2x00dev; |
@@ -401,6 +403,9 @@ struct data_queue { | |||
401 | 403 | ||
402 | unsigned short data_size; | 404 | unsigned short data_size; |
403 | unsigned short desc_size; | 405 | unsigned short desc_size; |
406 | |||
407 | unsigned short usb_endpoint; | ||
408 | unsigned short usb_maxpacket; | ||
404 | }; | 409 | }; |
405 | 410 | ||
406 | /** | 411 | /** |
@@ -444,6 +449,19 @@ struct data_queue_desc { | |||
444 | &(__dev)->tx[(__dev)->ops->tx_queues] | 449 | &(__dev)->tx[(__dev)->ops->tx_queues] |
445 | 450 | ||
446 | /** | 451 | /** |
452 | * queue_next - Return pointer to next queue in list (HELPER MACRO). | ||
453 | * @__queue: Current queue for which we need the next queue | ||
454 | * | ||
455 | * Using the current queue address we take the address directly | ||
456 | * after the queue to take the next queue. Note that this macro | ||
457 | * should be used carefully since it does not protect against | ||
458 | * moving past the end of the list. (See macros &queue_end and | ||
459 | * &tx_queue_end for determining the end of the queue). | ||
460 | */ | ||
461 | #define queue_next(__queue) \ | ||
462 | &(__queue)[1] | ||
463 | |||
464 | /** | ||
447 | * queue_loop - Loop through the queues within a specific range (HELPER MACRO). | 465 | * queue_loop - Loop through the queues within a specific range (HELPER MACRO). |
448 | * @__entry: Pointer where the current queue entry will be stored in. | 466 | * @__entry: Pointer where the current queue entry will be stored in. |
449 | * @__start: Start queue pointer. | 467 | * @__start: Start queue pointer. |
@@ -453,8 +471,8 @@ struct data_queue_desc { | |||
453 | */ | 471 | */ |
454 | #define queue_loop(__entry, __start, __end) \ | 472 | #define queue_loop(__entry, __start, __end) \ |
455 | for ((__entry) = (__start); \ | 473 | for ((__entry) = (__start); \ |
456 | prefetch(&(__entry)[1]), (__entry) != (__end); \ | 474 | prefetch(queue_next(__entry)), (__entry) != (__end);\ |
457 | (__entry) = &(__entry)[1]) | 475 | (__entry) = queue_next(__entry)) |
458 | 476 | ||
459 | /** | 477 | /** |
460 | * queue_for_each - Loop through all queues | 478 | * queue_for_each - Loop through all queues |