opnsense-src/sys/dev/ath
Adrian Chadd 534f8ec8b2 Make sure that the AR_MISC_MODE value from the initvals are properly respected.
This commit really is "fix the OFDM duration calculation to match reality when
running in 802.11g mode."

The AR5212 init vals set AR_MISC_MODE to 0x0 and all the bits that can be set are
set through code.

The AR5416 and later initvals set AR_MISC_MODE to various other values (with
the AR5212 AR_MISC_MODE options cleared), which include AR_PCU_CCK_SIFS_MODE .
This adds 6uS to SIFS on non-CCK frames when transmitting.

This fixes the issue where _DATA_ 802.11g OFDM frames were being TX'ed with
the ACK duration set to 38uS, not 44uS as on the AR5212 (and other devices.)

The AR5212 TX pathway obeys the software-programmed duration field in the packet,
but the 11n TX pathway overrides that with a hardware-calculated duration. This
was getting it wrong because of the above AR_MISC_MODE setting. I've verified
that 11g data OFDM frames are now being TXed with the correct ACK+SIFS duration
programmed in.
2011-03-19 03:15:28 +00:00
..
ath_hal Make sure that the AR_MISC_MODE value from the initvals are properly respected. 2011-03-19 03:15:28 +00:00
ath_rate The sample rate module currently does the slightly wrong thing when 2011-03-03 20:41:59 +00:00
ah_osdep.c Change HALDEBUG() to be a macro that conditionally calls the debug output routine. 2011-03-05 21:20:18 +00:00
ah_osdep.h Fix AR5416 and later parts when building with AH_DEBUG or similar defined: 2009-07-06 20:51:54 +00:00
if_ath.c Break the keycache management functions out into if_ath_keycache.c . 2011-03-02 17:19:54 +00:00
if_ath_debug.c Break out the debug macros from if_ath.c into if_ath_debug.[ch] . 2011-01-29 05:08:21 +00:00
if_ath_debug.h Break out the debug macros from if_ath.c into if_ath_debug.[ch] . 2011-01-29 05:08:21 +00:00
if_ath_keycache.c Break the keycache management functions out into if_ath_keycache.c . 2011-03-02 17:19:54 +00:00
if_ath_keycache.h Break the keycache management functions out into if_ath_keycache.c . 2011-03-02 17:19:54 +00:00
if_ath_misc.h Migrate the sysctl related routines (statistics, debugging, etc) out of 2011-03-02 16:03:19 +00:00
if_ath_pci.c The module name convention is foo, not if_foo. 2009-05-15 17:02:11 +00:00
if_ath_sysctl.c Migrate the sysctl related routines (statistics, debugging, etc) out of 2011-03-02 16:03:19 +00:00
if_ath_sysctl.h Migrate the sysctl related routines (statistics, debugging, etc) out of 2011-03-02 16:03:19 +00:00
if_ath_tx.c Shuffle around the RTS/CTS rate/duration logic. 2011-02-22 00:37:53 +00:00
if_ath_tx.h Migrate the TX path code out of if_ath and into a separate source file. 2011-01-29 11:35:23 +00:00
if_ath_tx_ht.c The number of streams is not based on the interface stream count, but the 2011-03-13 08:23:59 +00:00
if_ath_tx_ht.h The current code used the fields in ath_set11nratescenario() . Use them 2011-02-12 02:14:19 +00:00
if_athioctl.h Add a new counter which tracks frames TX'ed with HT protection. 2011-02-21 19:19:05 +00:00
if_athrate.h Add a new method to the rate control modules which extract out the 2011-02-01 08:10:18 +00:00
if_athvar.h Expose the 4k transaction workaround hooks to the driver, but don't (yet) 2011-02-09 16:37:29 +00:00