freebsd-skq/sys/dev/ath/ath_hal
adrian c0c76118d8 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
..
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 Fix the keycache behaviour for multicast keycache search. 2011-02-09 15:23:16 +00:00
ar5312 Include the initial support for external EEPROMs. 2011-01-20 07:56:09 +00:00
ar5416 Implement open-loop TX power control (OLC) for Merlin (AR9280) and 2011-03-08 06:59:59 +00:00
ar9001 Call the correct ANI Attach routine. 2011-02-02 03:55:34 +00:00
ar9002 Implement open-loop TX power control (OLC) for Merlin (AR9280) and 2011-03-08 06:59:59 +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 Add an EEPROM op that extracts out the power table offset. 2011-03-06 00:30:43 +00:00
ah_eeprom_v14.h Bring over some AR9280-specific v14 additions that exist in ath9k. 2011-02-07 21:48:26 +00:00
ah_eeprom.h Add an EEPROM op that extracts out the power table offset. 2011-03-06 00:30:43 +00:00
ah_internal.h Change HALDEBUG() to be a macro that conditionally calls the debug output routine. 2011-03-05 21:20:18 +00:00
ah_regdomain.c Add WorldB SKU. 2009-11-18 18:48:18 +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 Add a vocal warning to ath_hal_computetxtime() function is used for non-11n rates. 2011-02-21 18:58:58 +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