OpenCloudOS-Kernel/drivers/net/wireless/rt2x00
Ivo van Doorn 652a9dd2a0 rt2x00: Split watchdog check into a DMA and STATUS timeout
The watchdog for rt2800usb triggers frequently causing all URB's
to be canceled often enough to interrupt the normal TX flow.
More research indicated that not the URB upload to the USB host
were hanging, but instead the TX status reports.

To correctly detect what is going on, we introduce Q_INDEX_DMA_DONE
which is an index counter between Q_INDEX_DONE and Q_INDEX and indicates
if the frame has been transfered to the device.

This also requires the rt2x00queue timeout functions to be updated
to differentiate between a DMA timeout (time between Q_INDEX and
Q_INDEX_DMA_DONE timeout) and a STATUS timeout (time between
Q_INDEX_DMA_DONE and Q_INDEX_DONE timeout)

All Q_INDEX_DMA_DONE code was taken from the RFC from
Helmut Schaa <helmut.schaa@googlemail.com> for the implementation
for watchdog for rt2800pci.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-08-31 14:22:25 -04:00
..
Kconfig rt2x00: Enable RT30xx by default. 2010-05-04 13:24:23 -04:00
Makefile rt2800: add rt2800lib (part one) 2009-11-06 16:48:58 -05:00
rt2x00.h rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00config.c rt2x00: Remove ieee80211_rx_status from rt2x00_dev 2010-08-16 15:26:43 -04:00
rt2x00crypto.c mac80211: use cipher suite selectors 2010-08-16 16:45:11 -04:00
rt2x00debug.c rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00debug.h rt2x00: Update copyright statements. 2009-11-11 17:09:17 -05:00
rt2x00dev.c rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00dump.h rt2x00: correct sparse warning in rt2x00debug.c 2010-07-20 16:49:41 -04:00
rt2x00firmware.c rt2x00: update fw version info in wiphy struct 2010-08-16 14:39:45 -04:00
rt2x00ht.c rt2x00: Set MIMO PS flag in tx descriptor for STAs in dynamic SMPS mode 2010-08-16 15:26:42 -04: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 rt2x00: Implement watchdog monitoring 2010-07-12 16:05:34 -04:00
rt2x00link.c rt2x00: Implement watchdog monitoring 2010-07-12 16:05:34 -04:00
rt2x00mac.c rt2x00: Fix regression for rt2500pci 2010-07-26 15:32:43 -04:00
rt2x00pci.c rt2x00: do not use PCI resources before pci_enable_device() 2010-08-04 15:28:37 -04:00
rt2x00pci.h rt2x00: Move common txdone handling to rt2x00lib_txdone. 2010-06-30 15:00:50 -04:00
rt2x00queue.c rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00queue.h rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00reg.h rt2x00: Add missing TSF sync mode for AP operation 2010-07-12 16:05:37 -04:00
rt2x00soc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rt2x00soc.h rt2x00: remove KSEG1ADDR define from rt2x00soc.h 2010-03-10 16:16:53 -05:00
rt2x00usb.c rt2x00: Split watchdog check into a DMA and STATUS timeout 2010-08-31 14:22:25 -04:00
rt2x00usb.h rt2x00: Simplify arguments to rt2x00 driver callback functions 2010-08-25 14:34:54 -04:00
rt61pci.c rt2x00: Rename txentry_desc.queue -> txentry_desc.qid 2010-08-31 14:22:23 -04:00
rt61pci.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
rt73usb.c rt2x00: Correctly kill beacon queue 2010-08-31 14:22:24 -04:00
rt73usb.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
rt2400pci.c rt2x00: Fix max TX power settings 2010-08-25 14:34:55 -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: Fix max TX power settings 2010-08-25 14:34:55 -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: Correctly kill beacon queue 2010-08-31 14:22:24 -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: Update rt2800 comments regarding AMPDU and PACKET_ID in TXWI 2010-08-31 14:22:23 -04:00
rt2800lib.c rt2x00: Don't set unicast/BSSID masks when clearning MAC or BSSID 2010-08-31 14:22:24 -04:00
rt2800lib.h rt2x00: Add rt2800_wait_csr_ready 2010-08-31 14:22:23 -04:00
rt2800pci.c rt2x00: Wakeup hardware before loading firmware 2010-08-31 14:22:24 -04:00
rt2800pci.h rt2x00: Move all register definitions for rt2800 to rt2800.h. 2010-06-03 10:51:59 +02:00
rt2800usb.c rt2x00: Correctly kill beacon queue 2010-08-31 14:22:24 -04:00
rt2800usb.h rt2x00: Move all register definitions for rt2800 to rt2800.h. 2010-06-03 10:51:59 +02:00