d1915e7308
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! |
||
---|---|---|
.. | ||
ah_regdomain | ||
ar5210 | ||
ar5211 | ||
ar5212 | ||
ar5312 | ||
ar5416 | ||
ar9001 | ||
ar9002 | ||
ah_debug.h | ||
ah_decode.h | ||
ah_desc.h | ||
ah_devid.h | ||
ah_diagcodes.h | ||
ah_eeprom_v1.c | ||
ah_eeprom_v1.h | ||
ah_eeprom_v3.c | ||
ah_eeprom_v3.h | ||
ah_eeprom_v4k.c | ||
ah_eeprom_v4k.h | ||
ah_eeprom_v14.c | ||
ah_eeprom_v14.h | ||
ah_eeprom.h | ||
ah_internal.h | ||
ah_regdomain.c | ||
ah_regdomain.h | ||
ah_soc.h | ||
ah.c | ||
ah.h |