diff options
author | Helmut Schaa <helmut.schaa@googlemail.com> | 2010-04-15 03:13:13 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-16 15:32:00 -0400 |
commit | 410866930ea1929b0fdfb533dd84ddaa234b06e4 (patch) | |
tree | fabd7bbb75d6825ff9854fef11ddf687b04bfd1b /drivers/net/wireless | |
parent | 7834704be4777fc0ed67c4486ef8c5691078d135 (diff) |
rt2x00: add txdesc parameter to write_tx_data
Extend the write_tx_data callback with a txdesc parameter to allow
access to the tx desciptor while preparing the tx data.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00pci.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00pci.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00queue.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00usb.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00usb.h | 3 |
6 files changed, 12 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 4de505b98331..4f9b666f7a7f 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h | |||
@@ -549,7 +549,8 @@ struct rt2x00lib_ops { | |||
549 | void (*write_tx_desc) (struct rt2x00_dev *rt2x00dev, | 549 | void (*write_tx_desc) (struct rt2x00_dev *rt2x00dev, |
550 | struct sk_buff *skb, | 550 | struct sk_buff *skb, |
551 | struct txentry_desc *txdesc); | 551 | struct txentry_desc *txdesc); |
552 | int (*write_tx_data) (struct queue_entry *entry); | 552 | int (*write_tx_data) (struct queue_entry *entry, |
553 | struct txentry_desc *txdesc); | ||
553 | void (*write_beacon) (struct queue_entry *entry); | 554 | void (*write_beacon) (struct queue_entry *entry); |
554 | int (*get_tx_data_len) (struct queue_entry *entry); | 555 | int (*get_tx_data_len) (struct queue_entry *entry); |
555 | void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev, | 556 | void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev, |
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c index 047123b766fc..2fe9f295351f 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c | |||
@@ -62,7 +62,8 @@ EXPORT_SYMBOL_GPL(rt2x00pci_regbusy_read); | |||
62 | /* | 62 | /* |
63 | * TX data handlers. | 63 | * TX data handlers. |
64 | */ | 64 | */ |
65 | int rt2x00pci_write_tx_data(struct queue_entry *entry) | 65 | int rt2x00pci_write_tx_data(struct queue_entry *entry, |
66 | struct txentry_desc *txdesc) | ||
66 | { | 67 | { |
67 | struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; | 68 | struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; |
68 | struct queue_entry_priv_pci *entry_priv = entry->priv_data; | 69 | struct queue_entry_priv_pci *entry_priv = entry->priv_data; |
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.h b/drivers/net/wireless/rt2x00/rt2x00pci.h index 8149ff68410a..51bcef3839ce 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.h +++ b/drivers/net/wireless/rt2x00/rt2x00pci.h | |||
@@ -92,7 +92,8 @@ int rt2x00pci_regbusy_read(struct rt2x00_dev *rt2x00dev, | |||
92 | * This function will initialize the DMA and skb descriptor | 92 | * This function will initialize the DMA and skb descriptor |
93 | * to prepare the entry for the actual TX operation. | 93 | * to prepare the entry for the actual TX operation. |
94 | */ | 94 | */ |
95 | int rt2x00pci_write_tx_data(struct queue_entry *entry); | 95 | int rt2x00pci_write_tx_data(struct queue_entry *entry, |
96 | struct txentry_desc *txdesc); | ||
96 | 97 | ||
97 | /** | 98 | /** |
98 | * struct queue_entry_priv_pci: Per entry PCI specific information | 99 | * struct queue_entry_priv_pci: Per entry PCI specific information |
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index 0b4801a14601..a68cf90f6c4e 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c | |||
@@ -525,7 +525,8 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb, | |||
525 | * call failed. Since we always return NETDEV_TX_OK to mac80211, | 525 | * call failed. Since we always return NETDEV_TX_OK to mac80211, |
526 | * this frame will simply be dropped. | 526 | * this frame will simply be dropped. |
527 | */ | 527 | */ |
528 | if (unlikely(queue->rt2x00dev->ops->lib->write_tx_data(entry))) { | 528 | if (unlikely(queue->rt2x00dev->ops->lib->write_tx_data(entry, |
529 | &txdesc))) { | ||
529 | clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags); | 530 | clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags); |
530 | entry->skb = NULL; | 531 | entry->skb = NULL; |
531 | return -EIO; | 532 | return -EIO; |
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index 0a751e73aa0f..acf3282fc13e 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c | |||
@@ -215,7 +215,8 @@ static void rt2x00usb_interrupt_txdone(struct urb *urb) | |||
215 | rt2x00lib_txdone(entry, &txdesc); | 215 | rt2x00lib_txdone(entry, &txdesc); |
216 | } | 216 | } |
217 | 217 | ||
218 | int rt2x00usb_write_tx_data(struct queue_entry *entry) | 218 | int rt2x00usb_write_tx_data(struct queue_entry *entry, |
219 | struct txentry_desc *txdesc) | ||
219 | { | 220 | { |
220 | struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; | 221 | struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; |
221 | struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); | 222 | struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); |
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.h b/drivers/net/wireless/rt2x00/rt2x00usb.h index 3da6841b5d42..621d0f829251 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.h +++ b/drivers/net/wireless/rt2x00/rt2x00usb.h | |||
@@ -376,7 +376,8 @@ void rt2x00usb_disable_radio(struct rt2x00_dev *rt2x00dev); | |||
376 | * This function will initialize the URB and skb descriptor | 376 | * This function will initialize the URB and skb descriptor |
377 | * to prepare the entry for the actual TX operation. | 377 | * to prepare the entry for the actual TX operation. |
378 | */ | 378 | */ |
379 | int rt2x00usb_write_tx_data(struct queue_entry *entry); | 379 | int rt2x00usb_write_tx_data(struct queue_entry *entry, |
380 | struct txentry_desc *txdesc); | ||
380 | 381 | ||
381 | /** | 382 | /** |
382 | * struct queue_entry_priv_usb: Per entry USB specific information | 383 | * struct queue_entry_priv_usb: Per entry USB specific information |