aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2011-09-07 14:11:26 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-09-14 13:56:48 -0400
commit3de3d966007592693e68a973f62a1e3828565af0 (patch)
tree50f37b9a9dd3748f18b530bc1bae483ac3a4dbf5 /drivers
parent5dada06cf156b1b70dcb76de5a63349aa33b135c (diff)
rt2x00: Avoid unnecessary uncached
Reading the TX desciptor words from coherent memory is always uncached and potentially slow. Hence, don't read the TX descriptor prior to writing it since we update all fields anyway. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800pci.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index 17abb0675eaf..a716d1dd0754 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -619,11 +619,11 @@ static void rt2800pci_write_tx_desc(struct queue_entry *entry,
619 /* 619 /*
620 * Initialize TX descriptor 620 * Initialize TX descriptor
621 */ 621 */
622 rt2x00_desc_read(txd, 0, &word); 622 word = 0;
623 rt2x00_set_field32(&word, TXD_W0_SD_PTR0, skbdesc->skb_dma); 623 rt2x00_set_field32(&word, TXD_W0_SD_PTR0, skbdesc->skb_dma);
624 rt2x00_desc_write(txd, 0, word); 624 rt2x00_desc_write(txd, 0, word);
625 625
626 rt2x00_desc_read(txd, 1, &word); 626 word = 0;
627 rt2x00_set_field32(&word, TXD_W1_SD_LEN1, entry->skb->len); 627 rt2x00_set_field32(&word, TXD_W1_SD_LEN1, entry->skb->len);
628 rt2x00_set_field32(&word, TXD_W1_LAST_SEC1, 628 rt2x00_set_field32(&word, TXD_W1_LAST_SEC1,
629 !test_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags)); 629 !test_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags));
@@ -634,12 +634,12 @@ static void rt2800pci_write_tx_desc(struct queue_entry *entry,
634 rt2x00_set_field32(&word, TXD_W1_DMA_DONE, 0); 634 rt2x00_set_field32(&word, TXD_W1_DMA_DONE, 0);
635 rt2x00_desc_write(txd, 1, word); 635 rt2x00_desc_write(txd, 1, word);
636 636
637 rt2x00_desc_read(txd, 2, &word); 637 word = 0;
638 rt2x00_set_field32(&word, TXD_W2_SD_PTR1, 638 rt2x00_set_field32(&word, TXD_W2_SD_PTR1,
639 skbdesc->skb_dma + TXWI_DESC_SIZE); 639 skbdesc->skb_dma + TXWI_DESC_SIZE);
640 rt2x00_desc_write(txd, 2, word); 640 rt2x00_desc_write(txd, 2, word);
641 641
642 rt2x00_desc_read(txd, 3, &word); 642 word = 0;
643 rt2x00_set_field32(&word, TXD_W3_WIV, 643 rt2x00_set_field32(&word, TXD_W3_WIV,
644 !test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc->flags)); 644 !test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc->flags));
645 rt2x00_set_field32(&word, TXD_W3_QSEL, 2); 645 rt2x00_set_field32(&word, TXD_W3_QSEL, 2);