On Fri, Mar 15, 2013 at 02:53:31PM +0100, Felix Fietkau wrote: > The commit 'ath9k_hw: fix calibration issues on chainmask that don't > include chain 0' changed the hardware chainmask to the chip chainmask > for the duration of the calibration, but the revert to user > configuration in the reset path runs too early. > > That causes some issues with limiting the number of antennas (including > spurious failure in hardware-generated packets). > > Fix this by reverting the chainmask after the essential parts of the > calibration that need the workaround, and before NF calibration is run. > > Signed-off-by: Felix Fietkau <nbd@xxxxxxxxxxx> > Reported-by: Wojciech Dubowik <Wojciech.Dubowik@xxxxxxxxxxx> > Tested-by: Wojciech Dubowik <Wojciech.Dubowik@xxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx This applies to v3.8 as well with the following changes, do you want it there as well? diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c index 56317b0..e99f481 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c @@ -976,6 +976,7 @@ static bool ar9003_hw_init_cal(struct ath_hw *ah, AR_PHY_CL_TAB_1, AR_PHY_CL_TAB_2 }; + /* Use chip chainmask only for calibration */ ar9003_hw_set_chain_masks(ah, ah->caps.rx_chainmask, ah->caps.tx_chainmask); if (rtt) { @@ -1131,6 +1132,9 @@ skip_tx_iqcal: ar9003_hw_rtt_disable(ah); } + /* Revert chainmask to runtime parameters */ + ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask); + /* Initialize list pointers */ ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL; ah->supp_cals = IQ_MISMATCH_CAL; -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html