aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00usb.c
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2010-12-13 06:34:54 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-13 15:23:35 -0500
commitdbba306f2ae574450a7a5133d6637fe6f5fafc72 (patch)
treef9f0e56125d210d4d8ef2434687435a4566b555e /drivers/net/wireless/rt2x00/rt2x00usb.c
parent5450b7e2f0b47e52175b31399d8186a74ef3c46d (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.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c
index 12958a45e450..d4361dc0773e 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
264void rt2x00usb_kick_tx_queue(struct data_queue *queue) 264void 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}
269EXPORT_SYMBOL_GPL(rt2x00usb_kick_tx_queue); 279EXPORT_SYMBOL_GPL(rt2x00usb_kick_queue);
270 280
271static void rt2x00usb_kill_entry(struct queue_entry *entry) 281static 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}
431EXPORT_SYMBOL_GPL(rt2x00usb_disable_radio); 437EXPORT_SYMBOL_GPL(rt2x00usb_disable_radio);
432 438