opnsense-src/sys/dev/ath
Adrian Chadd 788e6aa99c Break out ath_draintxq() into a method and un-methodize ath_tx_processq().
Now that I understand what's going on with this, I've realised that
it's going to be quite difficult to implement a processq method in
the EDMA case.  Because there's a separate TX status FIFO, I can't
just run processq() on each EDMA TXQ to see what's finished.
i have to actually run the TX status queue and handle individual
TXQs.

So:

* unmethodize ath_tx_processq();
* leave ath_tx_draintxq() as a method, as it only uses the completion status
  for debugging rather than actively completing the frames (ie, all frames
  here are failed);
* Methodize ath_draintxq().

The EDMA ath_draintxq() will have to take care of running the TX
completion FIFO before (potentially) freeing frames in the queue.

The only two places where ath_tx_draintxq() (on a single TXQ) are used:

* ath_draintxq(); and
* the CABQ handling in the beacon setup code - it drains the CABQ before
  populating the CABQ with frames for a new beacon (when doing multi-VAP
  operation.)

So it's quite possible that once I methodize the CABQ and beacon handling,
I can just drop ath_tx_draintxq() in its entirety.

Finally, it's also quite possible that I can remove ath_tx_draintxq()
in the future and just "teach" it to not check the status when doing
EDMA.
2012-08-12 00:37:29 +00:00
..
ath_dfs/null In a complete lack of foresight on my part, my previous commit broke 2012-06-24 08:47:19 +00:00
ath_hal Commit device IDs for the (eventually upcoming) AR9380 HAL. 2012-08-07 23:45:43 +00:00
ath_rate Fix a case of "mis-located braces". 2012-08-01 00:18:02 +00:00
ah_osdep.c Fix the HAL debugging to only use one bit to mark a message as unmaskable. 2012-07-01 02:34:32 +00:00
ah_osdep.h Migrate the ath_hal_filltxdesc() API to take a list of buffer/seglen values. 2012-08-05 10:12:27 +00:00
if_ath.c Break out ath_draintxq() into a method and un-methodize ath_tx_processq(). 2012-08-12 00:37:29 +00:00
if_ath_ahb.c Flesh out a new DMA map for the EDMA TX completion status, as well 2012-07-23 02:49:25 +00:00
if_ath_beacon.c Extend the beacon code slightly to support AP mode beaconing for the 2012-08-11 23:26:19 +00:00
if_ath_beacon.h Extend the beacon code slightly to support AP mode beaconing for the 2012-08-11 23:26:19 +00:00
if_ath_debug.c Add the AR9380 HAL to the TX descriptor debugging, in order to dump all 2012-08-11 22:39:27 +00:00
if_ath_debug.h Map ATH_KTR_* to 0 when ATH_DEBUG is not defined. This effectively NOPs 2012-07-11 12:10:13 +00:00
if_ath_keycache.c Add a 'vap' to ath_keyset(). 2011-11-08 19:25:52 +00:00
if_ath_keycache.h Add a 'vap' to ath_keyset(). 2011-11-08 19:25:52 +00:00
if_ath_led.c Bring over the initial 802.11n bluetooth coexistence support code. 2012-06-26 22:16:53 +00:00
if_ath_led.h Refactor out the software LED config code into a common function, called 2011-12-26 05:46:22 +00:00
if_ath_misc.h Break out ath_draintxq() into a method and un-methodize ath_tx_processq(). 2012-08-12 00:37:29 +00:00
if_ath_pci.c Flesh out a new DMA map for the EDMA TX completion status, as well 2012-07-23 02:49:25 +00:00
if_ath_rx.c Remove unnecessary debugging printf()s. 2012-08-06 22:54:10 +00:00
if_ath_rx.h Convert sc_rxpending to a per-EDMA queue, and use that for the legacy code. 2012-07-10 00:02:19 +00:00
if_ath_rx_edma.c Remove unnecessary debugging printf()s. 2012-08-06 22:54:10 +00:00
if_ath_rx_edma.h Begin abstracting out the RX path in preparation for RX EDMA support. 2012-07-03 06:59:12 +00:00
if_ath_sysctl.c Handle RX Keymiss events. 2012-07-15 20:51:41 +00:00
if_ath_sysctl.h Break out most of the HAL related tweaks into a per-HAL instance, 2011-06-23 02:38:36 +00:00
if_ath_tdma.c Migrate the TDMA management functions out of if_ath.c into if_ath_tdma.c. 2012-05-20 02:49:42 +00:00
if_ath_tdma.h Migrate the TDMA management functions out of if_ath.c into if_ath_tdma.c. 2012-05-20 02:49:42 +00:00
if_ath_tsf.h Migrate the bulk of the RX routines out from if_ath.c to if_ath_rx.[ch]. 2012-05-20 02:05:10 +00:00
if_ath_tx.c Break out ath_draintxq() into a method and un-methodize ath_tx_processq(). 2012-08-12 00:37:29 +00:00
if_ath_tx.h Break out ath_draintxq() into a method and un-methodize ath_tx_processq(). 2012-08-12 00:37:29 +00:00
if_ath_tx_edma.c Break out ath_draintxq() into a method and un-methodize ath_tx_processq(). 2012-08-12 00:37:29 +00:00
if_ath_tx_edma.h Begin separating out the TX DMA setup in preparation for TX EDMA support. 2012-07-23 03:52:18 +00:00
if_ath_tx_ht.c Shuffle the call to ath_hal_setuplasttxdesc() to _after_ the rate control 2012-07-31 17:08:29 +00:00
if_ath_tx_ht.h Introduce TX aggregation and software TX queue management 2011-11-08 22:43:13 +00:00
if_athdfs.h Change the ath_dfs_process_phy_err() method to take an mbuf rather than 2012-06-24 08:09:06 +00:00
if_athioctl.h Placeholder ioctl for an upcoming rate control statistics API change. 2012-07-31 02:18:10 +00:00
if_athrate.h Create an ioctl API for fetching the current rate control information. 2012-07-20 01:27:20 +00:00
if_athvar.h Break out ath_draintxq() into a method and un-methodize ath_tx_processq(). 2012-08-12 00:37:29 +00:00