freebsd-dev/sys/dev/ath
Adrian Chadd 48c1d36479 Implement open-loop TX power control (OLC) for Merlin (AR9280) and
generally tidy up the TX power programming code.

Enforce that the TX power offset for Merlin is -5 dBm, rather than
any other value programmable in the EEPROM. This requires some
further code to be ported over from ath9k, so until that is done
and tested, fail to attach NICs whose TX power offset isn't -5
dBm.

This improves both legacy and HT transmission on my merlin board.
It allows for stable MCS TX up to MCS15.

Specifics:

* Refactor out a bunch of the TX power calibration code -
  setting/obtaining the power detector / gain boundaries,
  programming the PDADC
* Take the -5 dBm TX power offset into account on Merlin -
  "0" in the per-rate TX power register means -5 dBm, not
  0 dBm
* When doing OLC
* Enforce min (0) and max (AR5416_MAX_RATE_POWER) when fiddling
  with the TX power, to avoid the TX power values from wrapping
  when low.
* Implement the 1 dBm cck power offset when doing OLC
* Implement temperature compensation for 2.4ghz mode when doing OLC
* Implement an AR9280 specific TX power calibration routine which
  includes the OLC twiddles, leaving the earlier chipset path
  (AR5416, AR9160) alone

Whilst here, use these refactored routines for the AR9285 TX power
calibration/programming code and enforce correct overflow/underflow
handling when fiddling with TX power values.

Obtained from:	linux ath9k
2011-03-08 06:59:59 +00:00
..
ath_hal Implement open-loop TX power control (OLC) for Merlin (AR9280) and 2011-03-08 06:59:59 +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_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_ht.c Disable trying to do HT/40 and short-GI TX. 2011-03-03 03:02:06 +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_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.c Break the keycache management functions out into if_ath_keycache.c . 2011-03-02 17:19:54 +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