summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/ath_hal
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2010-08-12 06:11:44 +0000
committeradrian <adrian@FreeBSD.org>2010-08-12 06:11:44 +0000
commit85bba21fcdb6f335e45e56dc17e3e0b1c14289b7 (patch)
tree15437c12c82c03e18cc55703a04503751ea68ac9 /sys/dev/ath/ath_hal
parent6a989e2e780ccf97cb01301ba5e071fe51858fa3 (diff)
downloadFreeBSD-src-85bba21fcdb6f335e45e56dc17e3e0b1c14289b7.zip
FreeBSD-src-85bba21fcdb6f335e45e56dc17e3e0b1c14289b7.tar.gz
Ensure that the correct rxchainmask is used when doing calibration in the
AR5416 and later chipsets. ath_hal_calibrateN() calls the HAL calibrateN function with rxchainmask=0x1. This is not necessarily the case for AR5416 and later chipsets.
Diffstat (limited to 'sys/dev/ath/ath_hal')
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_cal.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c b/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c
index 82b3009..30daa1d 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c
@@ -407,6 +407,13 @@ ar5416PerCalibrationN(struct ath_hal *ah, struct ieee80211_channel *chan,
*isCalDone = AH_TRUE;
+ /*
+ * Since ath_hal calls the PerCal method with rxchainmask=0x1;
+ * override it with the current chainmask. The upper levels currently
+ * doesn't know about the chainmask.
+ */
+ rxchainmask = AH5416(ah)->ah_rx_chainmask;
+
/* Invalid channel check */
ichan = ath_hal_checkchannel(ah, chan);
if (ichan == AH_NULL) {
OpenPOWER on IntegriCloud