linux_dsm_epyc7002/drivers/net/wireless/rt2x00
Helmut Schaa 745b1ae31b rt2x00: rt2800pci: fix tx path by not accessing the skb after it was DMA mapped
rt2800pci used the callback write_tx_desc to write the tx descriptor but
also to update the txwi which is part of the dma mapped skb. Since the
memory was already DMA mapped _before_ the call to write_tx_desc the
device didn't get the txwi data at all or only sporadically.

The call order is basically as follows (from rt2x00queue.c):
1) write_tx_data
2) rt2x00queue_map_txskb
3) write_tx_desc

Hence, we shouldn't touch the skb in write_tx_desc anymore.

To fix this issue create a new rt2800pci_write_tx_data callback and use it
for updating the txwi _before_ the memory gets DMA mapped.

The tx descriptor is still written (as before) in write_tx_desc.

This patch allows basic TX on an rt305x soc device but I'm pretty sure
that it will fix pci based cards as well. I can associate just fine with
an AP now but I wasn't able to get a wpa secured connection working yet.

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>
2010-04-16 15:32:00 -04:00
..
Kconfig rt2x00: rt2800 - Make rt30xx and rt35xx chipsets configurable. 2010-02-15 16:14:12 -05:00
Makefile rt2800: add rt2800lib (part one) 2009-11-06 16:48:58 -05:00
rt2x00.h rt2x00: add txdesc parameter to write_tx_data 2010-04-16 15:32:00 -04:00
rt2x00config.c rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00crypto.c rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00debug.c rt2x00: rework RT chipset and revision determination for PCI an SOC devices. 2010-02-15 16:14:11 -05:00
rt2x00debug.h rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00dev.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-01-05 17:18:59 -05:00
rt2x00dump.h rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00firmware.c rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00ht.c rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00leds.c rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00leds.h rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00lib.h mac80211: request TX status where needed 2009-11-19 11:08:56 -05:00
rt2x00link.c rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00mac.c rt2x00: remove get_tx_stats() mac80211 op 2010-02-08 16:51:01 -05:00
rt2x00pci.c rt2x00: add txdesc parameter to write_tx_data 2010-04-16 15:32:00 -04:00
rt2x00pci.h rt2x00: add txdesc parameter to write_tx_data 2010-04-16 15:32:00 -04:00
rt2x00queue.c rt2x00: add txdesc parameter to write_tx_data 2010-04-16 15:32:00 -04:00
rt2x00queue.h rt2x00: Remove SKBDESC_L2_PADDED flag. 2009-12-21 18:56:32 -05:00
rt2x00reg.h rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00soc.c rt2x00: Export rt2x00soc_probe from rt2x00soc 2010-03-03 15:40:14 -05:00
rt2x00soc.h rt2x00: remove KSEG1ADDR define from rt2x00soc.h 2010-03-10 16:16:53 -05:00
rt2x00usb.c rt2x00: add txdesc parameter to write_tx_data 2010-04-16 15:32:00 -04:00
rt2x00usb.h rt2x00: add txdesc parameter to write_tx_data 2010-04-16 15:32:00 -04:00
rt61pci.c rt2x00: Add wakeup interrupt handler to rt61pci. 2010-04-06 16:55:06 -04:00
rt61pci.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-25 23:26:21 -08:00
rt73usb.c rt2x00: Disable auto wakeup before waking up device. 2010-04-06 16:52:07 -04:00
rt73usb.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-25 23:26:21 -08:00
rt2400pci.c rt2x00: Disable auto wakeup before waking up device. 2010-04-06 16:52:07 -04:00
rt2400pci.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-25 23:26:21 -08:00
rt2500pci.c rt2x00: Disable auto wakeup before waking up device. 2010-04-06 16:52:07 -04:00
rt2500pci.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-25 23:26:21 -08:00
rt2500usb.c rt2x00: Enable powersaving by default again on rt2500usb. 2010-04-08 15:24:08 -04:00
rt2500usb.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
rt2800.h rt2x00: Refactor rt2800 version constants. 2010-04-12 15:22:11 -04:00
rt2800lib.c rt2x00: Add rt3390 support in rt2800 register initialization. 2010-04-12 15:22:13 -04:00
rt2800lib.h rt2x00: Make rt2800_init_led static and don't export it. 2010-01-12 13:51:24 -05:00
rt2800pci.c rt2x00: rt2800pci: fix tx path by not accessing the skb after it was DMA mapped 2010-04-16 15:32:00 -04:00
rt2800pci.h rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2800usb.c wireless: rt2x00: rt2800usb: identify Sitecom devices 2010-04-14 14:59:55 -04:00
rt2800usb.h rt2x00: Fix rt2800usb RX frame format and as such L2PAD 2009-12-21 18:56:39 -05:00