aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2800usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2800usb.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800usb.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
index d992a9352ed7..00e7906dc208 100644
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -431,18 +431,10 @@ static void rt2800usb_write_beacon(struct queue_entry *entry,
431 struct txentry_desc *txdesc) 431 struct txentry_desc *txdesc)
432{ 432{
433 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; 433 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
434 struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb);
435 unsigned int beacon_base; 434 unsigned int beacon_base;
436 u32 reg; 435 u32 reg;
437 436
438 /* 437 /*
439 * Add the descriptor in front of the skb.
440 */
441 skb_push(entry->skb, entry->queue->desc_size);
442 memcpy(entry->skb->data, skbdesc->desc, skbdesc->desc_len);
443 skbdesc->desc = entry->skb->data;
444
445 /*
446 * Disable beaconing while we are reloading the beacon data, 438 * Disable beaconing while we are reloading the beacon data,
447 * otherwise we might be sending out invalid data. 439 * otherwise we might be sending out invalid data.
448 */ 440 */
@@ -451,6 +443,12 @@ static void rt2800usb_write_beacon(struct queue_entry *entry,
451 rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg); 443 rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg);
452 444
453 /* 445 /*
446 * Add the TXWI for the beacon to the skb.
447 */
448 rt2800_write_txwi(entry->skb, txdesc);
449 skb_push(entry->skb, TXWI_DESC_SIZE);
450
451 /*
454 * Write entire beacon with descriptor to register. 452 * Write entire beacon with descriptor to register.
455 */ 453 */
456 beacon_base = HW_BEACON_OFFSET(entry->entry_idx); 454 beacon_base = HW_BEACON_OFFSET(entry->entry_idx);