On 2014-06-24 13:37, Rajkumar Manoharan wrote: > Fix tx gain table index on fast channel change for AR953x. > > Signed-off-by: Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/ar9003_phy.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c > index 8927fc3..1ef17e1 100644 > --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c > +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c > @@ -1552,12 +1552,15 @@ static int ar9003_hw_fast_chan_change(struct ath_hw *ah, > u8 *ini_reloaded) > { > unsigned int regWrites = 0; > - u32 modesIndex; > + u32 modesIndex, txgain_index = 0; > > - if (IS_CHAN_5GHZ(chan)) > + if (IS_CHAN_5GHZ(chan)) { > modesIndex = IS_CHAN_HT40(chan) ? 2 : 1; > - else > + } else { > + if (AR_SREV_9531(ah)) > + txgain_index = 1; > modesIndex = IS_CHAN_HT40(chan) ? 3 : 4; > + } How about putting this here: if (AR_SREV_9531(ah)) txgain_index = 1; else txgain_index = modesIndex; > > if (modesIndex == ah->modes_index) { > *ini_reloaded = false; > @@ -1573,7 +1576,10 @@ static int ar9003_hw_fast_chan_change(struct ath_hw *ah, > ar9003_hw_prog_ini(ah, &ah->ini_radio_post_sys2ant, > modesIndex); > > - REG_WRITE_ARRAY(&ah->iniModesTxGain, modesIndex, regWrites); > + if (AR_SREV_9531(ah)) > + REG_WRITE_ARRAY(&ah->iniModesTxGain, txgain_index, regWrites); > + else > + REG_WRITE_ARRAY(&ah->iniModesTxGain, modesIndex, regWrites); And then we can change this part to always use txgain_index instead of modesIndex, without the extra SREV check. - 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