freebsd-skq/sys/dev/ath/ath_hal/ar5212
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
..
ar2316.c Overhaul regulatory support: 2009-01-28 18:00:22 +00:00
ar2317.c Overhaul regulatory support: 2009-01-28 18:00:22 +00:00
ar2413.c Overhaul regulatory support: 2009-01-28 18:00:22 +00:00
ar2425.c Add PCIE power control api: 2009-02-24 01:07:06 +00:00
ar5111.c Overhaul regulatory support: 2009-01-28 18:00:22 +00:00
ar5112.c Overhaul regulatory support: 2009-01-28 18:00:22 +00:00
ar5212_ani.c ANI changes #1 - split out the ANI polling from the RxMonitor hook. 2011-01-21 05:21:00 +00:00
ar5212_attach.c There's apparently a bug with Merlin (AR9280) and later chipsets where 2011-02-08 12:49:01 +00:00
ar5212_beacon.c Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ar5212_eeprom.c Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ar5212_gpio.c 5416 and later parts mux the gpio outputs; extend the api to include 2009-02-24 00:12:16 +00:00
ar5212_interrupts.c Remove extraneous semicolons, no functional changes. 2010-01-07 21:01:37 +00:00
ar5212_keycache.c Fix the keycache behaviour for multicast keycache search. 2011-02-09 15:23:16 +00:00
ar5212_misc.c Make sure that the AR_MISC_MODE value from the initvals are properly respected. 2011-03-19 03:15:28 +00:00
ar5212_phy.c o eliminate a << in calculating the tx time for turbo mode by pre-multiplying 2009-04-13 21:01:08 +00:00
ar5212_power.c Add support for the AR9285 chipset, which is found on many netbooks 2010-01-29 10:10:14 +00:00
ar5212_recv.c Make sure that the AR_MISC_MODE value from the initvals are properly respected. 2011-03-19 03:15:28 +00:00
ar5212_reset.c The Atheros AR71xx CPUs, when paired with the AR5212 parts, has a bug 2010-05-01 16:36:14 +00:00
ar5212_rfgain.c eliminate gainFCorrection; just have ar5212GetGainFCorrection return 2009-02-05 21:13:31 +00:00
ar5212_xmit.c Add a new HAL method to retrieve the completion schedule. It sets 2011-01-20 05:49:15 +00:00
ar5212.h For chips that are full reset in ar5416ChipReset(), save and restore the TSF. 2011-03-09 04:39:35 +00:00
ar5212.ini Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ar5212desc.h Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ar5212phy.h Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ar5212reg.h Add support for the AR9285 chipset, which is found on many netbooks 2010-01-29 10:10:14 +00:00
ar5311reg.h Replace Id keyword with FreeBSD keyword and set the svn props correctly. 2010-03-03 17:32:32 +00:00
ar5413.c Add PCIE power control api: 2009-02-24 01:07:06 +00:00