aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00
diff options
context:
space:
mode:
authorStanislaw Gruszka <stf_xl@wp.pl>2013-04-17 08:30:48 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-22 15:20:20 -0400
commit557985ae3442b43a776e58a494e1b6f549321ce2 (patch)
tree1da060b45d474b8606a6c318dcf063da9d135cf3 /drivers/net/wireless/rt2x00
parentf0bda571047746365569fccaede86adf6c0dfe8a (diff)
rt2800: nulify all last words of TXWI
Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 5c20e98b4808..35f58bbf25c1 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -542,6 +542,7 @@ void rt2800_write_tx_data(struct queue_entry *entry,
542{ 542{
543 __le32 *txwi = rt2800_drv_get_txwi(entry); 543 __le32 *txwi = rt2800_drv_get_txwi(entry);
544 u32 word; 544 u32 word;
545 int i;
545 546
546 /* 547 /*
547 * Initialize TX Info descriptor 548 * Initialize TX Info descriptor
@@ -584,14 +585,16 @@ void rt2800_write_tx_data(struct queue_entry *entry,
584 rt2x00_desc_write(txwi, 1, word); 585 rt2x00_desc_write(txwi, 1, word);
585 586
586 /* 587 /*
587 * Always write 0 to IV/EIV fields, hardware will insert the IV 588 * Always write 0 to IV/EIV fields (word 2 and 3), hardware will insert
588 * from the IVEIV register when TXD_W3_WIV is set to 0. 589 * the IV from the IVEIV register when TXD_W3_WIV is set to 0.
589 * When TXD_W3_WIV is set to 1 it will use the IV data 590 * When TXD_W3_WIV is set to 1 it will use the IV data
590 * from the descriptor. The TXWI_W1_WIRELESS_CLI_ID indicates which 591 * from the descriptor. The TXWI_W1_WIRELESS_CLI_ID indicates which
591 * crypto entry in the registers should be used to encrypt the frame. 592 * crypto entry in the registers should be used to encrypt the frame.
593 *
594 * Nulify all remaining words as well, we don't know how to program them.
592 */ 595 */
593 _rt2x00_desc_write(txwi, 2, 0 /* skbdesc->iv[0] */); 596 for (i = 2; i < entry->queue->winfo_size / sizeof(__le32); i++)
594 _rt2x00_desc_write(txwi, 3, 0 /* skbdesc->iv[1] */); 597 _rt2x00_desc_write(txwi, i, 0);
595} 598}
596EXPORT_SYMBOL_GPL(rt2800_write_tx_data); 599EXPORT_SYMBOL_GPL(rt2800_write_tx_data);
597 600