freebsd-skq/sys/dev/ath/ath_hal
Adrian Chadd d1915e7308 Fix the OWL revision checks.
A quick story, which is partially documented in the commit.

The silicon revision in Linux ath9k and the Atheros HAL use an
AR_SREV_REVISION mask of 0x07.

FreeBSD's HAL uses the AR5212 AR_SREV_REVISION mask of 0x0F.

Thus the OWL silicon revisions were coming through as 0xA, 0xB,
0xC, rather than 0x0, 0x1 and 0x2.

My ath9k-sourced AR_SREV_OWL_<X> macros were thus using the wrong
silicon revision values and wouldn't correctly match.

This commit does a few things:

* Change the AR_SREV_OWL_<x> macros to use the AR_SREV_REVISION_OWL_*
  values, not AR_XSREV_REVISION_OWL macros;
* Disable AR_XSREV_REVISION_OWL_* values;
* Modify the IS_5416 to properly check the MAC is OWL, rather than
  potentially matching on non-OWL revisions (which shouldn't happen
  unless there's a silicon revision of higher than 0x9 in a later
  chip..)
* Add a couple more macros from the Atheros HAL for compatibility.

The main difference now is that the Atheros HAL defines
AR_SREV_OWL_{20,22}_OR_LATER subtly differently - it fails on all HOWL
silicon. The AR_SREV_5416_*_OR_LATER macros match on the relevant OWL
version -and- all HOWL versions, along with subsequent versions.

A subsequent commit is going to migrate the uses of AR_SREV_OWL_X_OR_LATER
to AR_SREV_5416_X_OR_LATER to match what's going on in the Atheros HAL.

There's only two uses of AR_SREV_OWL_X_OR_LATER which currently don't
apply to FreeBSD but it may do in the future.

Yes, it's all confusing!
2011-05-07 02:54:52 +00:00
..
ah_regdomain Migrate the regulatory database definitions into separate header files 2011-03-10 03:13:56 +00:00
ar5210 Add a HAL capability bit for supporting self-linked RX descriptors and disable it for the 11n chipsets. 2011-04-04 14:52:31 +00:00
ar5211 Add a HAL capability bit for supporting self-linked RX descriptors and disable it for the 11n chipsets. 2011-04-04 14:52:31 +00:00
ar5212 Add some more OS_MARK probes to the RX DMA setup/teardown code path. 2011-04-07 13:14:51 +00:00
ar5312 Include the initial support for external EEPROMs. 2011-01-20 07:56:09 +00:00
ar5416 Fix the OWL revision checks. 2011-05-07 02:54:52 +00:00
ar9001 Introduce AR9130 (HOWL) WMAC support to the FreeBSD HAL. 2011-04-28 12:47:40 +00:00
ar9002 Use the refactored ar5416WriteTxPowerRateRegisters() call in the ar9285 code. 2011-04-24 15:48:07 +00:00
ah_debug.h More kite diversity related changes. 2011-04-13 15:08:51 +00:00
ah_decode.h Add some more OS_MARK probes to the RX DMA setup/teardown code path. 2011-04-07 13:14:51 +00:00
ah_desc.h Extend the RX descriptor block to include two more EVM words. 2011-04-08 06:29:41 +00:00
ah_devid.h Introduce AR9130 (HOWL) WMAC support to the FreeBSD HAL. 2011-04-28 12:47:40 +00:00
ah_diagcodes.h Reserve a new diagnostic code for the channel survey code I'll add soon. 2011-03-19 14:37:13 +00:00
ah_eeprom_v1.c
ah_eeprom_v1.h
ah_eeprom_v3.c
ah_eeprom_v3.h
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 Bring over a pdadc calibration fix from ath9k - unused power detector 2011-04-22 10:57:46 +00:00
ah_eeprom_v14.c Introduce AR9130 (HOWL) WMAC support to the FreeBSD HAL. 2011-04-28 12:47:40 +00:00
ah_eeprom_v14.h The second regdomain word is a set of bitflags describing 2011-04-22 10:59:20 +00:00
ah_eeprom.h Introduce the Merlin PWDCLKIND workaround. 2011-03-10 02:09:06 +00:00
ah_internal.h Add OS_REG_RMW, which mirrors ath9k's REG_RMW. 2011-04-13 03:05:15 +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
ah.c Introduce AR9130 (HOWL) WMAC support to the FreeBSD HAL. 2011-04-28 12:47:40 +00:00
ah.h Add global TX timeout handling. 2011-04-18 12:15:43 +00:00