diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2010-12-13 06:34:54 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-13 15:23:35 -0500 |
commit | dbba306f2ae574450a7a5133d6637fe6f5fafc72 (patch) | |
tree | f9f0e56125d210d4d8ef2434687435a4566b555e /drivers/net/wireless/rt2x00/rt2x00usb.c | |
parent | 5450b7e2f0b47e52175b31399d8186a74ef3c46d (diff) |
rt2x00: Reorganize queue callback functions
As part of the queue refactoring, change the queue callback
function names to have 3 different actions: start, kick & stop.
We can now also remove the STATE_RADIO_RX_ON/STATE_RADIO_RX_OFF
device_state flags, and replace the usage with using the
start_queue/stop_queue callback functions.
This streamlines the RX queue handling to the
similar approach as all other queues.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00usb.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00usb.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index 12958a45e45..d4361dc0773 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c | |||
@@ -261,12 +261,22 @@ static void rt2x00usb_kick_tx_entry(struct queue_entry *entry) | |||
261 | } | 261 | } |
262 | } | 262 | } |
263 | 263 | ||
264 | void rt2x00usb_kick_tx_queue(struct data_queue *queue) | 264 | void rt2x00usb_kick_queue(struct data_queue *queue) |
265 | { | 265 | { |
266 | rt2x00queue_for_each_entry(queue, Q_INDEX_DONE, Q_INDEX, | 266 | switch (queue->qid) { |
267 | rt2x00usb_kick_tx_entry); | 267 | case QID_AC_BE: |
268 | case QID_AC_BK: | ||
269 | case QID_AC_VI: | ||
270 | case QID_AC_VO: | ||
271 | if (!rt2x00queue_empty(queue)) | ||
272 | rt2x00queue_for_each_entry(queue, Q_INDEX_DONE, Q_INDEX, | ||
273 | rt2x00usb_kick_tx_entry); | ||
274 | break; | ||
275 | default: | ||
276 | break; | ||
277 | } | ||
268 | } | 278 | } |
269 | EXPORT_SYMBOL_GPL(rt2x00usb_kick_tx_queue); | 279 | EXPORT_SYMBOL_GPL(rt2x00usb_kick_queue); |
270 | 280 | ||
271 | static void rt2x00usb_kill_entry(struct queue_entry *entry) | 281 | static void rt2x00usb_kill_entry(struct queue_entry *entry) |
272 | { | 282 | { |
@@ -422,11 +432,7 @@ void rt2x00usb_disable_radio(struct rt2x00_dev *rt2x00dev) | |||
422 | rt2x00usb_vendor_request_sw(rt2x00dev, USB_RX_CONTROL, 0, 0, | 432 | rt2x00usb_vendor_request_sw(rt2x00dev, USB_RX_CONTROL, 0, 0, |
423 | REGISTER_TIMEOUT); | 433 | REGISTER_TIMEOUT); |
424 | 434 | ||
425 | /* | 435 | rt2x00dev->ops->lib->stop_queue(rt2x00dev->rx); |
426 | * The USB version of also works | ||
427 | * on the RX queue. | ||
428 | */ | ||
429 | rt2x00dev->ops->lib->kill_tx_queue(rt2x00dev->rx); | ||
430 | } | 436 | } |
431 | EXPORT_SYMBOL_GPL(rt2x00usb_disable_radio); | 437 | EXPORT_SYMBOL_GPL(rt2x00usb_disable_radio); |
432 | 438 | ||