On Tue, Jun 24, 2014 at 02:02:12PM +0200, Felix Fietkau wrote: > 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. > Completely agree. That looks neat. Let me upload v2 set. -Rajkumar -- 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