freebsd-skq/sys/dev/ath/ath_hal
adrian e85dde4087 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
..
ah_regdomain Migrate the regulatory database definitions into separate header files 2011-03-10 03:13:56 +00:00
ar5210 There's apparently a bug with Merlin (AR9280) and later chipsets where 2011-02-08 12:49:01 +00:00
ar5211 There's apparently a bug with Merlin (AR9280) and later chipsets where 2011-02-08 12:49:01 +00:00
ar5212 Make sure that the AR_MISC_MODE value from the initvals are properly respected. 2011-03-19 03:15:28 +00:00
ar5312 Include the initial support for external EEPROMs. 2011-01-20 07:56:09 +00:00
ar5416 Make sure that the AR_MISC_MODE value from the initvals are properly respected. 2011-03-19 03:15:28 +00:00
ar9001 Call the correct ANI Attach routine. 2011-02-02 03:55:34 +00:00
ar9002 Fix typo that snuck in. 2011-03-14 02:32:10 +00:00
ah_debug.h * fix HAL_DEBUG_INTERRUPT to be a separate bit, it was overlapping with 2011-01-26 09:37:43 +00:00
ah_decode.h Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ah_desc.h purge HAL_TXSTAT_ALTRATE; you can figure this out by checking ts_finaltsi 2009-06-13 23:36:54 +00:00
ah_devid.h Include the device ids for the AR2427. 2011-01-20 09:37:53 +00:00
ah_diagcodes.h Break out the diagnostic codes from ah_internal.h and place them in ah_diagcodes.h. 2011-01-20 04:57:26 +00:00
ah_eeprom_v1.c Don't shadow the global variable 'version'. 2010-05-29 16:10:07 +00:00
ah_eeprom_v1.h Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ah_eeprom_v3.c Revert previous commit and add myself to the list of people who should 2009-09-08 13:19:05 +00:00
ah_eeprom_v3.h Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ah_eeprom_v4k.c Fix the Atheros V4K EEPROM definitions to match those in ath9k. 2011-01-25 05:35:09 +00:00
ah_eeprom_v4k.h * Re-format the v4k header to be consistent 2011-01-25 07:37:12 +00:00
ah_eeprom_v14.c Introduce the Merlin PWDCLKIND workaround. 2011-03-10 02:09:06 +00:00
ah_eeprom_v14.h Introduce the Merlin PWDCLKIND workaround. 2011-03-10 02:09:06 +00:00
ah_eeprom.h Introduce the Merlin PWDCLKIND workaround. 2011-03-10 02:09:06 +00:00
ah_internal.h Move out some of the shared eeprom board value calculation routines into ah.c 2011-03-13 05:54:05 +00:00
ah_regdomain.c Migrate the regulatory database definitions into separate header files 2011-03-10 03:13:56 +00:00
ah_regdomain.h Migrate the regulatory database definitions into separate header files 2011-03-10 03:13:56 +00:00
ah_soc.h Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ah.c Move out some of the shared eeprom board value calculation routines into ah.c 2011-03-13 05:54:05 +00:00
ah.h Expose the 4k transaction workaround hooks to the driver, but don't (yet) 2011-02-09 16:37:29 +00:00