linux/drivers/net/wireless/rt2x00
Ivo van Doorn cd35a39121 rt2x00: Cleanup rt2x00usb_watchdog_reset_tx
rt2x00usb_watchdog_reset_tx performs the same task
as rt2x00usb_kill_tx_queue, with the only difference
is that it waits for all entries to be returned to
the driver and for all frames the status has been
reported to mac80211.

We can easily split this task by calling rt2x00usb_kill_tx_queue,
sleep for a short period and invoke the TX status reporting
function. By adding the sleep() to the kill_entry we make sure
that even during shutdown we guarentee the entry has been killed when
the function returns. To make this work correctly the interrupt
handlers have to be updated to prevent checking for the RADIO_ENABLED
flag too early which prevents the ownership of the entry to be reset.
Additionally a check for the DEVICE_PRESENT flag is not required but
is nice to prevent race conditions when the device was unplugged.

Additionally rather then calling rt2x00usb_work_txdone() for
status reporting we let the driver perform the TX status reporting
first. If this is not sufficient then rt2x00usb_work_txdone() will
still be used to cleanup the mess.

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
Makefile
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
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
rt2x00leds.h
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
rt2x00soc.h
rt2x00usb.c rt2x00: Cleanup rt2x00usb_watchdog_reset_tx 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
rt2500pci.c rt2x00: Fix max TX power settings 2010-08-25 14:34:55 -04:00
rt2500pci.h
rt2500usb.c rt2x00: Correctly kill beacon queue 2010-08-31 14:22:24 -04:00
rt2500usb.h
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