aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00usb.c
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-11-08 09:25:33 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-11-21 11:08:16 -0500
commit798b7adb4ed3533ab1282f51d16892034cfd8aae (patch)
treeef328809a04c1072e9b1ce765d01f470283d4842 /drivers/net/wireless/rt2x00/rt2x00usb.c
parent0ed94eaaed618634f68197161203aac9f849471e (diff)
rt2x00: Cleanup TX/RX entry handling
Merge the callback functions init_txentry() and init_rxentry(). This makes life in rt2x00lib a lot simpler and we can cleanup several functions. rt2x00pci contained "fake" FIELD definitions for descriptor words. This is not flexible since it assumes the driver will always have the same field to indicate if a driver is available or not. This should be dependent on the driver, and we should add a callback function for this. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.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.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c
index b73a7e0aeed4..4eb550fab2f6 100644
--- a/drivers/net/wireless/rt2x00/rt2x00usb.c
+++ b/drivers/net/wireless/rt2x00/rt2x00usb.c
@@ -351,28 +351,25 @@ EXPORT_SYMBOL_GPL(rt2x00usb_disable_radio);
351/* 351/*
352 * Device initialization handlers. 352 * Device initialization handlers.
353 */ 353 */
354void rt2x00usb_init_rxentry(struct rt2x00_dev *rt2x00dev, 354void rt2x00usb_clear_entry(struct queue_entry *entry)
355 struct queue_entry *entry)
356{ 355{
357 struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); 356 struct usb_device *usb_dev =
357 to_usb_device_intf(entry->queue->rt2x00dev->dev);
358 struct queue_entry_priv_usb *entry_priv = entry->priv_data; 358 struct queue_entry_priv_usb *entry_priv = entry->priv_data;
359 359
360 usb_fill_bulk_urb(entry_priv->urb, usb_dev, 360 if (entry->queue->qid == QID_RX) {
361 usb_rcvbulkpipe(usb_dev, 1), 361 usb_fill_bulk_urb(entry_priv->urb, usb_dev,
362 entry->skb->data, entry->skb->len, 362 usb_rcvbulkpipe(usb_dev, 1),
363 rt2x00usb_interrupt_rxdone, entry); 363 entry->skb->data, entry->skb->len,
364 rt2x00usb_interrupt_rxdone, entry);
364 365
365 set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags); 366 set_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
366 usb_submit_urb(entry_priv->urb, GFP_ATOMIC); 367 usb_submit_urb(entry_priv->urb, GFP_ATOMIC);
367} 368 } else {
368EXPORT_SYMBOL_GPL(rt2x00usb_init_rxentry); 369 entry->flags = 0;
369 370 }
370void rt2x00usb_init_txentry(struct rt2x00_dev *rt2x00dev,
371 struct queue_entry *entry)
372{
373 entry->flags = 0;
374} 371}
375EXPORT_SYMBOL_GPL(rt2x00usb_init_txentry); 372EXPORT_SYMBOL_GPL(rt2x00usb_clear_entry);
376 373
377static int rt2x00usb_alloc_urb(struct rt2x00_dev *rt2x00dev, 374static int rt2x00usb_alloc_urb(struct rt2x00_dev *rt2x00dev,
378 struct data_queue *queue) 375 struct data_queue *queue)