diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2010-12-13 14:34:22 +0300 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-13 23:23:35 +0300 |
commit | 5450b7e2f0b47e52175b31399d8186a74ef3c46d (patch) | |
tree | 4023a3b3cc577d12f1c733a140fce7e965e7eabe /drivers/net/wireless/rt2x00/rt2x00usb.c | |
parent | 094a1d92fdb18c4455758b1c33e99d647c837ee9 (diff) | |
download | linux-5450b7e2f0b47e52175b31399d8186a74ef3c46d.tar.xz |
rt2x00: Introduce 3 queue commands in drivers (start, kick, stop).
As part of the queue refactoring, we now introduce
3 queue commands: start, kick, stop.
- Start: will enable a queue, for TX this will
not mean anything, while for beacons and RX
this will update the registers to enable the queue.
- Kick: This will kick all pending frames to
the hardware. This is needed for the TX queue
to push all frames to the HW after the queue
has been started
- Stop: This will stop the queue in the hardware,
and cancel any pending work (So this doesn't
mean the queue is empty after a stop!).
Move all code from the drivers into the appropriate
functions, and link those calls to the old rt2x00lib
callback functions (we will fix this later when we
refactor the queue control inside rt2x00lib).
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 | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index 608200eaf0dc..12958a45e450 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c @@ -268,7 +268,7 @@ void rt2x00usb_kick_tx_queue(struct data_queue *queue) } EXPORT_SYMBOL_GPL(rt2x00usb_kick_tx_queue); -static void rt2x00usb_kill_tx_entry(struct queue_entry *entry) +static void rt2x00usb_kill_entry(struct queue_entry *entry) { struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; struct queue_entry_priv_usb *entry_priv = entry->priv_data; @@ -287,12 +287,12 @@ static void rt2x00usb_kill_tx_entry(struct queue_entry *entry) usb_kill_urb(bcn_priv->guardian_urb); } -void rt2x00usb_kill_tx_queue(struct data_queue *queue) +void rt2x00usb_stop_queue(struct data_queue *queue) { rt2x00queue_for_each_entry(queue, Q_INDEX_DONE, Q_INDEX, - rt2x00usb_kill_tx_entry); + rt2x00usb_kill_entry); } -EXPORT_SYMBOL_GPL(rt2x00usb_kill_tx_queue); +EXPORT_SYMBOL_GPL(rt2x00usb_stop_queue); static void rt2x00usb_watchdog_tx_dma(struct data_queue *queue) { @@ -316,7 +316,7 @@ static void rt2x00usb_watchdog_tx_dma(struct data_queue *queue) * Kill all entries in the queue, afterwards we need to * wait a bit for all URBs to be cancelled. */ - rt2x00usb_kill_tx_queue(queue); + rt2x00usb_stop_queue(queue); /* * In case that a driver has overriden the txdone_work @@ -423,7 +423,7 @@ void rt2x00usb_disable_radio(struct rt2x00_dev *rt2x00dev) REGISTER_TIMEOUT); /* - * The USB version of kill_tx_queue also works + * The USB version of also works * on the RX queue. */ rt2x00dev->ops->lib->kill_tx_queue(rt2x00dev->rx); |