linux/drivers/net/wireless/iwlwifi
Emmanuel Grumbach 464021ffc1 iwlagn: move the check_empty logic to the transport layer
This logic is responsible to tell mac80211 when the HW queues are
empty and the BA session can be started / torn down.

Fix a bug on the way:
When the the Tx BA session is stopped and the HW queues aren't empty,
we stop the SW queue to drain the HW queue and then switch to the
legacy HW queue. This is the IWL_EMPTYING_HW_QUEUE_DELBA state.

While in this state, we never wake the SW queue, even when the HW
queue is almost empty, since we need to drain it completely. Look
at iwl_trans_pcie_reclaim regarding this.

Once the HW queue is really empty, we must wake the SW queue in order
to get traffic to the legacy queue.
This step was missing leading to an odd situation were the traffic
would just stall after we tore down a Tx BA session while the HW
queue was not empty.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-08-29 15:33:00 -04:00
..
iwl-1000.c iwlagn: iwl-pci doesn't include iwl-dev any more 2011-08-29 15:30:30 -04:00
iwl-2000.c iwlagn: adding special "D" SKU for 2000 series 2011-08-29 15:30:30 -04:00
iwl-5000-hw.h iwlagn: generic temperature location in EEPROM 2011-06-11 07:10:48 -07:00
iwl-5000.c iwlagn: iwl-pci doesn't include iwl-dev any more 2011-08-29 15:30:30 -04:00
iwl-6000-hw.h iwlagn: change Copyright to 2011 2011-04-07 15:51:37 -04:00
iwl-6000.c iwlagn: iwl-pci doesn't include iwl-dev any more 2011-08-29 15:30:30 -04:00
iwl-agn-calib.c iwlagn: bus layer chooses its transport layer 2011-08-29 15:25:32 -04:00
iwl-agn-calib.h iwlagn: remove iwlagn_hcmd_utils structure and call directly 2011-07-11 15:02:10 -04:00
iwl-agn-eeprom.c iwlagn: Rename iwlcore prefix 2011-08-29 15:25:29 -04:00
iwl-agn-hw.h iwlagn: iwl-dev.h doesn't include iwl-fh.h any more 2011-08-29 15:30:28 -04:00
iwl-agn-lib.c iwlagn: move dump_csr and dump_fh to transport layer 2011-08-29 15:30:27 -04:00
iwl-agn-rs.c iwlagn: iwl_tid_data moves to iwl-shared 2011-08-29 15:30:31 -04:00
iwl-agn-rs.h iwlagn: no 3945 define needed 2011-04-08 08:00:19 -07:00
iwl-agn-rxon.c iwlagn: move the mapping ac to queue / fifo to transport 2011-08-29 15:30:32 -04:00
iwl-agn-sta.c iwlagn: move all iwl_is_XXX helpers to iwl-shared.h 2011-08-29 15:25:35 -04:00
iwl-agn-tt.c iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-agn-tt.h iwlagn: change Copyright to 2011 2011-04-07 15:51:37 -04:00
iwl-agn-tx.c iwlagn: move the check_empty logic to the transport layer 2011-08-29 15:33:00 -04:00
iwl-agn-ucode.c iwlagn: upper layer uses slabs to allocate tx cmds 2011-08-29 15:30:32 -04:00
iwl-agn.c iwlagn: move the mapping ac to queue / fifo to transport 2011-08-29 15:30:32 -04:00
iwl-agn.h iwlagn: iwl-pci doesn't include iwl-dev any more 2011-08-29 15:30:30 -04:00
iwl-bus.h iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-commands.h iwlagn: iwl_tid_data moves to iwl-shared 2011-08-29 15:30:31 -04:00
iwl-core.c iwlagn: move the check_empty logic to the transport layer 2011-08-29 15:33:00 -04:00
iwl-core.h iwlagn: iwl-pci doesn't include iwl-dev any more 2011-08-29 15:30:30 -04:00
iwl-csr.h iwlagn: implement WoWLAN 2011-07-21 07:31:31 -07:00
iwl-debug.h iwlagn: add missing includes 2011-08-29 15:30:28 -04:00
iwl-debugfs.c iwlagn: iwl_tid_data moves to iwl-shared 2011-08-29 15:30:31 -04:00
iwl-dev.h iwlagn: move the mapping ac to queue / fifo to transport 2011-08-29 15:30:32 -04:00
iwl-devtrace.c iwlagn: change Copyright to 2011 2011-04-07 15:51:37 -04:00
iwl-devtrace.h iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-eeprom.c iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-eeprom.h iwlagn: Rename iwlcore prefix 2011-08-29 15:25:29 -04:00
iwl-fh.h iwlagn: add missing includes 2011-08-29 15:30:28 -04:00
iwl-helpers.h iwlagn: move the mapping ac to queue / fifo to transport 2011-08-29 15:30:32 -04:00
iwl-io.c iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-io.h iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-led.c iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-led.h iwlagn: use direct call for led functions 2011-04-18 08:47:43 -07:00
iwl-pci.c iwlagn: adding special "D" SKU for 2000 series 2011-08-29 15:30:30 -04:00
iwl-pci.h iwlagn: adding special "D" SKU for 2000 series 2011-08-29 15:30:30 -04:00
iwl-power.c iwlagn: remove dereferences of priv from transport 2011-08-29 15:30:31 -04:00
iwl-power.h iwlagn: move PCI power related functions to the PCI layer 2011-06-18 08:17:29 -07:00
iwl-prph.h iwlagn: cmd_queue moves to iwl_shared 2011-08-29 15:25:31 -04:00
iwl-rx.c iwlagn: move the mapping ac to queue / fifo to transport 2011-08-29 15:30:32 -04:00
iwl-scan.c iwlagn: move iwl_free_pages to iwl-shared.h 2011-08-29 15:25:35 -04:00
iwl-shared.h iwlagn: move the check_empty logic to the transport layer 2011-08-29 15:33:00 -04:00
iwl-sta.c iwlagn: move iwl_free_pages to iwl-shared.h 2011-08-29 15:25:35 -04:00
iwl-sta.h iwlagn: priv->sta_lock moves to iwl_shared 2011-08-29 15:25:32 -04:00
iwl-sv-open.c iwlagn: remove dereferences of priv from transport 2011-08-29 15:30:31 -04:00
iwl-testmode.h iwlagn: allow application own the uCode operation 2011-07-11 15:02:08 -04:00
iwl-trans-int-pcie.h iwlagn: move the check_empty logic to the transport layer 2011-08-29 15:33:00 -04:00
iwl-trans-rx-pcie.c iwlagn: remove dereferences of priv from transport 2011-08-29 15:30:31 -04:00
iwl-trans-tx-pcie.c iwlagn: move the check_empty logic to the transport layer 2011-08-29 15:33:00 -04:00
iwl-trans.c iwlagn: move the check_empty logic to the transport layer 2011-08-29 15:33:00 -04:00
iwl-trans.h iwlagn: move the check_empty logic to the transport layer 2011-08-29 15:33:00 -04:00
Kconfig iwlagn: support new P2P implementation 2011-08-08 16:04:04 -04:00
Makefile iwlagn: move all the ICT related functions to iwl-trans-rx-pcie.c 2011-07-16 07:39:34 -07:00