freebsd-dev/sys/dev/ath
Adrian Chadd 2b200bb4ce Extend the non-aggregate TX descriptor chain routine to be aware of:
* the descriptor ID, and
* the multi-buffer support that the EDMA chips support.

This is required for successful MAC transmission of multi-descriptor
frames.  The MAC simply hangs if there are NULL buffers + 0 length pointers,
but the descriptor did have TxMore set.

This won't be done for the 11n aggregate path, as that will be modified
to use the newer API (ie, ath_hal_filltxdesc() and then set first|middle|
last_aggr), which will deprecate some of the current code.

TODO:

* Populate the numTxMaps field in the HAL, then make sure that's fetched
  by the driver.  Then I can undo that hack.

Tested:

* AR9380, AP mode, TX'ing non-aggregate 802.11n frames;
* AR9280, STA/AP mode, doing aggregate and non-aggregate traffic.
2012-08-15 08:14:16 +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 Bump up the rate control table size to incorporate 3 stream entries. 2012-08-15 08:06:06 +00:00
ath_rate Add a missing comma. 2012-08-15 07:50:42 +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_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 the TX completion code into a separate function, so it can be 2012-08-14 22:32:20 +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_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_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_sysctl.c Dump out the TX FIFO depth. 2012-08-14 22:34:22 +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_edma.c Revert the ath_tx_draintxq() method, and instead teach it the minimum 2012-08-12 00:46:15 +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_ath_tx.c Extend the non-aggregate TX descriptor chain routine to be aware of: 2012-08-15 08:14:16 +00:00
if_ath_tx.h Revert the ath_tx_draintxq() method, and instead teach it the minimum 2012-08-12 00:46:15 +00:00
if_ath.c Implement a sequential descriptor ID value and stuff it in the ath_buf. 2012-08-15 06:48:34 +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 Implement a sequential descriptor ID value and stuff it in the ath_buf. 2012-08-15 06:48:34 +00:00