diff options
| author | Ivo van Doorn <ivdoorn@gmail.com> | 2010-12-13 12:34:54 +0100 | 
|---|---|---|
| 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) | |
| download | olio-linux-3.10-dbba306f2ae574450a7a5133d6637fe6f5fafc72.tar.xz olio-linux-3.10-dbba306f2ae574450a7a5133d6637fe6f5fafc72.zip  | |
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)  	}  } -void rt2x00usb_kick_tx_queue(struct data_queue *queue) +void rt2x00usb_kick_queue(struct data_queue *queue)  { -	rt2x00queue_for_each_entry(queue, Q_INDEX_DONE, Q_INDEX, -				   rt2x00usb_kick_tx_entry); +	switch (queue->qid) { +	case QID_AC_BE: +	case QID_AC_BK: +	case QID_AC_VI: +	case QID_AC_VO: +		if (!rt2x00queue_empty(queue)) +			rt2x00queue_for_each_entry(queue, Q_INDEX_DONE, Q_INDEX, +						   rt2x00usb_kick_tx_entry); +		break; +	default: +		break; +	}  } -EXPORT_SYMBOL_GPL(rt2x00usb_kick_tx_queue); +EXPORT_SYMBOL_GPL(rt2x00usb_kick_queue);  static void rt2x00usb_kill_entry(struct queue_entry *entry)  { @@ -422,11 +432,7 @@ void rt2x00usb_disable_radio(struct rt2x00_dev *rt2x00dev)  	rt2x00usb_vendor_request_sw(rt2x00dev, USB_RX_CONTROL, 0, 0,  				    REGISTER_TIMEOUT); -	/* -	 * The USB version of also works -	 * on the RX queue. -	 */ -	rt2x00dev->ops->lib->kill_tx_queue(rt2x00dev->rx); +	rt2x00dev->ops->lib->stop_queue(rt2x00dev->rx);  }  EXPORT_SYMBOL_GPL(rt2x00usb_disable_radio);  |