On 2010-12-01 8:32 AM, Vasanthakumar Thiagarajan wrote: > Signed-off-by: Vasanthakumar Thiagarajan <vasanth@xxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c > index 9ce6846..71316ec 100644 > --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c > +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c > @@ -3639,9 +3639,13 @@ static void ar9003_hw_atten_apply(struct ath_hw *ah, struct ath9k_channel *chan) > AR_PHY_EXT_ATTEN_CTL_1, > AR_PHY_EXT_ATTEN_CTL_2, > }; > + u8 max_chains = AR9300_MAX_CHAINS; > + > + if (AR_SREV_9485(ah)) > + max_chains = 1; > > /* Test value. if 0 then attenuation is unused. Don't load anything. */ > - for (i = 0; i < 3; i++) { > + for (i = 0; i < max_chains; i++) { > value = ar9003_hw_atten_chain_get(ah, i, chan); > REG_RMW_FIELD(ah, ext_atten_reg[i], > AR_PHY_EXT_ATTEN_CTL_XATTEN1_DB, value); Since the issue of having second/third chain registers unimplemented in certain chips is going to be the same on AR9344 and other WiSoC chips as well, how about adding an ath9k_hw variable max_hw_chains and using that wherever extended chain registers would be accessed. That would save us from having to throw around new SREV checks over and over again for the same issue. - Felix -- 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