diff options
author | sam <sam@FreeBSD.org> | 2003-11-01 03:37:33 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2003-11-01 03:37:33 +0000 |
commit | 6a50a2893c026592f15cd2108e577c869d1ce37e (patch) | |
tree | bb021cef66292ddd9af163cb2e619f2c5156e97f /sys/dev/ath | |
parent | ec55e68d035503fdb4064298978d774aa7c8f32c (diff) | |
download | FreeBSD-src-6a50a2893c026592f15cd2108e577c869d1ce37e.zip FreeBSD-src-6a50a2893c026592f15cd2108e577c869d1ce37e.tar.gz |
o check hal ABI version to catch driver-HAL mismatches
o print MAC, PHY, and radio h/w revisions at attach
Diffstat (limited to 'sys/dev/ath')
-rw-r--r-- | sys/dev/ath/if_ath.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index f464f96..f1f8154 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -196,6 +196,22 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) error = ENXIO; goto bad; } + if (ah->ah_abi != HAL_ABI_VERSION) { + if_printf(ifp, "HAL ABI mismatch detected (0x%x != 0x%x)\n", + ah->ah_abi, HAL_ABI_VERSION); + error = ENXIO; + goto bad; + } + if_printf(ifp, "mac %d.%d phy %d.%d", + ah->ah_macVersion, ah->ah_macRev, + ah->ah_phyRev >> 4, ah->ah_phyRev & 0xf); + if (ah->ah_analog5GhzRev) + printf(" 5ghz radio %d.%d", + ah->ah_analog5GhzRev >> 4, ah->ah_analog5GhzRev & 0xf); + if (ah->ah_analog2GhzRev) + printf(" 2ghz radio %d.%d", + ah->ah_analog2GhzRev >> 4, ah->ah_analog2GhzRev & 0xf); + printf("\n"); sc->sc_ah = ah; sc->sc_invalid = 0; /* ready to go, enable interrupt handling */ |