ath9k: Adjust the chainmasks properly

This is needed to account for the number of chains in use,
not just the number of chains present.

Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Senthil Balasubramanian 2009-09-17 09:27:33 +05:30 committed by John W. Linville
parent 0a475cc6a0
commit ce143bb044

View File

@ -609,14 +609,24 @@ void ath9k_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan)
AR_PHY_CH1_EXT_CCA, AR_PHY_CH1_EXT_CCA,
AR_PHY_CH2_EXT_CCA AR_PHY_CH2_EXT_CCA
}; };
u8 chainmask; u8 chainmask, rx_chain_status;
rx_chain_status = REG_READ(ah, AR_PHY_RX_CHAINMASK);
if (AR_SREV_9285(ah)) if (AR_SREV_9285(ah))
chainmask = 0x9; chainmask = 0x9;
else if (AR_SREV_9280(ah) || AR_SREV_9287(ah)) else if (AR_SREV_9280(ah) || AR_SREV_9287(ah)) {
if ((rx_chain_status & 0x2) || (rx_chain_status & 0x4))
chainmask = 0x1B; chainmask = 0x1B;
else else
chainmask = 0x09;
} else {
if (rx_chain_status & 0x4)
chainmask = 0x3F; chainmask = 0x3F;
else if (rx_chain_status & 0x2)
chainmask = 0x1B;
else
chainmask = 0x09;
}
h = ah->nfCalHist; h = ah->nfCalHist;