|
@@ -320,15 +320,14 @@ static int rt2800usb_set_device_state(struct rt2x00_dev *rt2x00dev,
|
|
/*
|
|
/*
|
|
* TX descriptor initialization
|
|
* TX descriptor initialization
|
|
*/
|
|
*/
|
|
-static void rt2800usb_write_tx_data(struct queue_entry* entry,
|
|
|
|
- struct txentry_desc *txdesc)
|
|
|
|
|
|
+static __le32 *rt2800usb_get_txwi(struct queue_entry *entry)
|
|
{
|
|
{
|
|
- __le32 *txwi = (__le32 *) (entry->skb->data + TXINFO_DESC_SIZE);
|
|
|
|
-
|
|
|
|
- rt2800_write_txwi(txwi, txdesc);
|
|
|
|
|
|
+ if (entry->queue->qid == QID_BEACON)
|
|
|
|
+ return (__le32 *) (entry->skb->data);
|
|
|
|
+ else
|
|
|
|
+ return (__le32 *) (entry->skb->data + TXINFO_DESC_SIZE);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
static void rt2800usb_write_tx_desc(struct rt2x00_dev *rt2x00dev,
|
|
static void rt2800usb_write_tx_desc(struct rt2x00_dev *rt2x00dev,
|
|
struct sk_buff *skb,
|
|
struct sk_buff *skb,
|
|
struct txentry_desc *txdesc)
|
|
struct txentry_desc *txdesc)
|
|
@@ -549,6 +548,7 @@ static const struct rt2800_ops rt2800usb_rt2800_ops = {
|
|
.regbusy_read = rt2x00usb_regbusy_read,
|
|
.regbusy_read = rt2x00usb_regbusy_read,
|
|
.drv_write_firmware = rt2800usb_write_firmware,
|
|
.drv_write_firmware = rt2800usb_write_firmware,
|
|
.drv_init_registers = rt2800usb_init_registers,
|
|
.drv_init_registers = rt2800usb_init_registers,
|
|
|
|
+ .drv_get_txwi = rt2800usb_get_txwi,
|
|
};
|
|
};
|
|
|
|
|
|
static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = {
|
|
static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = {
|
|
@@ -566,7 +566,7 @@ static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = {
|
|
.link_tuner = rt2800_link_tuner,
|
|
.link_tuner = rt2800_link_tuner,
|
|
.watchdog = rt2x00usb_watchdog,
|
|
.watchdog = rt2x00usb_watchdog,
|
|
.write_tx_desc = rt2800usb_write_tx_desc,
|
|
.write_tx_desc = rt2800usb_write_tx_desc,
|
|
- .write_tx_data = rt2800usb_write_tx_data,
|
|
|
|
|
|
+ .write_tx_data = rt2800_write_tx_data,
|
|
.write_beacon = rt2800_write_beacon,
|
|
.write_beacon = rt2800_write_beacon,
|
|
.get_tx_data_len = rt2800usb_get_tx_data_len,
|
|
.get_tx_data_len = rt2800usb_get_tx_data_len,
|
|
.kick_tx_queue = rt2x00usb_kick_tx_queue,
|
|
.kick_tx_queue = rt2x00usb_kick_tx_queue,
|