* [PATCH] ath9k: Use suitable macros with 4k eeprom data @ 2009-03-06 15:08 Vasanthakumar Thiagarajan 2009-03-06 15:08 ` [PATCH] ath9k: Set IEEE80211_TX_CTL_RATE_CTRL_PROBE in rate control for probe rates Vasanthakumar Thiagarajan 0 siblings, 1 reply; 4+ messages in thread From: Vasanthakumar Thiagarajan @ 2009-03-06 15:08 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Luis.Rodriguez, Jouni.Malinen, ath9k-devel This patch improves range and connection stability in AR9285. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> --- drivers/net/wireless/ath9k/eeprom.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/ath9k/eeprom.c b/drivers/net/wireless/ath9k/eeprom.c index 8a9e062..dd280cb 100644 --- a/drivers/net/wireless/ath9k/eeprom.c +++ b/drivers/net/wireless/ath9k/eeprom.c @@ -679,7 +679,7 @@ static void ath9k_hw_get_4k_gain_boundaries_pdadcs(struct ath_hw *ah, vpdTableI[i][sizeCurrVpdTable - 2]); vpdStep = (int16_t)((vpdStep < 1) ? 1 : vpdStep); - if (tgtIndex > maxIndex) { + if (tgtIndex >= maxIndex) { while ((ss <= tgtIndex) && (k < (AR5416_NUM_PDADC_VALUES - 1))) { tmpVal = (int16_t) TMP_VAL_VPD_TABLE; @@ -713,11 +713,11 @@ static bool ath9k_hw_set_4k_power_cal_table(struct ath_hw *ah, u8 *pCalBChans = NULL; u16 pdGainOverlap_t2; static u8 pdadcValues[AR5416_NUM_PDADC_VALUES]; - u16 gainBoundaries[AR5416_PD_GAINS_IN_MASK]; + u16 gainBoundaries[AR5416_EEP4K_PD_GAINS_IN_MASK]; u16 numPiers, i, j; int16_t tMinCalPower; u16 numXpdGain, xpdMask; - u16 xpdGainValues[AR5416_NUM_PD_GAINS] = { 0, 0, 0, 0 }; + u16 xpdGainValues[AR5416_EEP4K_NUM_PD_GAINS] = { 0, 0 }; u32 reg32, regOffset, regChainOffset; xpdMask = pEepData->modalHeader.xpdGain; @@ -732,16 +732,16 @@ static bool ath9k_hw_set_4k_power_cal_table(struct ath_hw *ah, } pCalBChans = pEepData->calFreqPier2G; - numPiers = AR5416_NUM_2G_CAL_PIERS; + numPiers = AR5416_EEP4K_NUM_2G_CAL_PIERS; numXpdGain = 0; - for (i = 1; i <= AR5416_PD_GAINS_IN_MASK; i++) { - if ((xpdMask >> (AR5416_PD_GAINS_IN_MASK - i)) & 1) { - if (numXpdGain >= AR5416_NUM_PD_GAINS) + for (i = 1; i <= AR5416_EEP4K_PD_GAINS_IN_MASK; i++) { + if ((xpdMask >> (AR5416_EEP4K_PD_GAINS_IN_MASK - i)) & 1) { + if (numXpdGain >= AR5416_EEP4K_NUM_PD_GAINS) break; xpdGainValues[numXpdGain] = - (u16)(AR5416_PD_GAINS_IN_MASK - i); + (u16)(AR5416_EEP4K_PD_GAINS_IN_MASK - i); numXpdGain++; } } @@ -754,7 +754,7 @@ static bool ath9k_hw_set_4k_power_cal_table(struct ath_hw *ah, xpdGainValues[1]); REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3, 0); - for (i = 0; i < AR5416_MAX_CHAINS; i++) { + for (i = 0; i < AR5416_EEP4K_MAX_CHAINS; i++) { if (AR_SREV_5416_20_OR_LATER(ah) && (ah->rxchainmask == 5 || ah->txchainmask == 5) && (i != 0)) { -- 1.5.5.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] ath9k: Set IEEE80211_TX_CTL_RATE_CTRL_PROBE in rate control for probe rates 2009-03-06 15:08 [PATCH] ath9k: Use suitable macros with 4k eeprom data Vasanthakumar Thiagarajan @ 2009-03-06 15:08 ` Vasanthakumar Thiagarajan 2009-03-06 15:28 ` [ath9k-devel] " Sujith 0 siblings, 1 reply; 4+ messages in thread From: Vasanthakumar Thiagarajan @ 2009-03-06 15:08 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Luis.Rodriguez, Jouni.Malinen, ath9k-devel Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> --- drivers/net/wireless/ath9k/rc.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/ath9k/rc.c b/drivers/net/wireless/ath9k/rc.c index 8327356..a35b525 100644 --- a/drivers/net/wireless/ath9k/rc.c +++ b/drivers/net/wireless/ath9k/rc.c @@ -750,7 +750,8 @@ static u8 ath_rc_ratefind_ht(struct ath_softc *sc, static void ath_rc_rate_set_series(struct ath_rate_table *rate_table, struct ieee80211_tx_rate *rate, struct ieee80211_tx_rate_control *txrc, - u8 tries, u8 rix, int rtsctsenable) + u8 tries, u8 rix, int rtsctsenable, + bool is_probe) { rate->count = tries; rate->idx = rix; @@ -765,6 +766,8 @@ static void ath_rc_rate_set_series(struct ath_rate_table *rate_table, rate->flags |= IEEE80211_TX_RC_SHORT_GI; if (WLAN_RC_PHY_HT(rate_table->info[rix].phy)) rate->flags |= IEEE80211_TX_RC_MCS; + if (is_probe) + rate->flags |= IEEE80211_TX_CTL_RATE_CTRL_PROBE; } static void ath_rc_rate_set_rtscts(struct ath_softc *sc, @@ -854,7 +857,7 @@ static void ath_rc_ratefind(struct ath_softc *sc, /* set one try for probe rates. For the * probes don't enable rts */ ath_rc_rate_set_series(rate_table, &rates[i++], txrc, - 1, nrix, 0); + 1, nrix, 0, is_probe); try_per_rate = (ATH_11N_TXMAXTRY/4); /* Get the next tried/allowed rate. No RTS for the next series @@ -863,12 +866,12 @@ static void ath_rc_ratefind(struct ath_softc *sc, nrix = ath_rc_rate_getidx(sc, ath_rc_priv, rate_table, nrix, 1, 0); ath_rc_rate_set_series(rate_table, &rates[i++], txrc, - try_per_rate, nrix, 0); + try_per_rate, nrix, 0, is_probe); } else { try_per_rate = (ATH_11N_TXMAXTRY/4); /* Set the choosen rate. No RTS for first series entry. */ ath_rc_rate_set_series(rate_table, &rates[i++], txrc, - try_per_rate, nrix, 0); + try_per_rate, nrix, 0, is_probe); } /* Fill in the other rates for multirate retry */ @@ -884,7 +887,7 @@ static void ath_rc_ratefind(struct ath_softc *sc, rate_table, nrix, 1, min_rate); /* All other rates in the series have RTS enabled */ ath_rc_rate_set_series(rate_table, &rates[i], txrc, - try_num, nrix, 1); + try_num, nrix, 1, is_probe); } /* -- 1.5.5.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [ath9k-devel] [PATCH] ath9k: Set IEEE80211_TX_CTL_RATE_CTRL_PROBE in rate control for probe rates 2009-03-06 15:08 ` [PATCH] ath9k: Set IEEE80211_TX_CTL_RATE_CTRL_PROBE in rate control for probe rates Vasanthakumar Thiagarajan @ 2009-03-06 15:28 ` Sujith 2009-03-12 8:41 ` Vasanthakumar Thiagarajan 0 siblings, 1 reply; 4+ messages in thread From: Sujith @ 2009-03-06 15:28 UTC (permalink / raw) To: Vasanthakumar Thiagarajan Cc: linville, ath9k-devel, Jouni.Malinen, linux-wireless, Luis.Rodriguez Vasanthakumar Thiagarajan wrote: > --- > drivers/net/wireless/ath9k/rc.c | 13 ++++++++----- > 1 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/wireless/ath9k/rc.c b/drivers/net/wireless/ath9k/rc.c > index 8327356..a35b525 100644 > --- a/drivers/net/wireless/ath9k/rc.c > +++ b/drivers/net/wireless/ath9k/rc.c > @@ -750,7 +750,8 @@ static u8 ath_rc_ratefind_ht(struct ath_softc *sc, > static void ath_rc_rate_set_series(struct ath_rate_table *rate_table, > struct ieee80211_tx_rate *rate, > struct ieee80211_tx_rate_control *txrc, > - u8 tries, u8 rix, int rtsctsenable) > + u8 tries, u8 rix, int rtsctsenable, > + bool is_probe) > { > rate->count = tries; > rate->idx = rix; > @@ -765,6 +766,8 @@ static void ath_rc_rate_set_series(struct ath_rate_table *rate_table, > rate->flags |= IEEE80211_TX_RC_SHORT_GI; > if (WLAN_RC_PHY_HT(rate_table->info[rix].phy)) > rate->flags |= IEEE80211_TX_RC_MCS; > + if (is_probe) > + rate->flags |= IEEE80211_TX_CTL_RATE_CTRL_PROBE; > } > IEEE80211_TX_CTL_RATE_CTRL_PROBE is to be used with flags@ieee80211_tx_info and is not a per-rate flag. Sujith ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ath9k-devel] [PATCH] ath9k: Set IEEE80211_TX_CTL_RATE_CTRL_PROBE in rate control for probe rates 2009-03-06 15:28 ` [ath9k-devel] " Sujith @ 2009-03-12 8:41 ` Vasanthakumar Thiagarajan 0 siblings, 0 replies; 4+ messages in thread From: Vasanthakumar Thiagarajan @ 2009-03-12 8:41 UTC (permalink / raw) To: Sujith Cc: Vasanth Thiagarajan, linville@tuxdriver.com, ath9k-devel@lists.ath9k.org, Jouni Malinen, linux-wireless@vger.kernel.org, Luis Rodriguez On Fri, Mar 06, 2009 at 08:58:39PM +0530, Sujith wrote: > Vasanthakumar Thiagarajan wrote: > > --- > > drivers/net/wireless/ath9k/rc.c | 13 ++++++++----- > > 1 files changed, 8 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/net/wireless/ath9k/rc.c b/drivers/net/wireless/ath9k/rc.c > > index 8327356..a35b525 100644 > > --- a/drivers/net/wireless/ath9k/rc.c > > +++ b/drivers/net/wireless/ath9k/rc.c > > @@ -750,7 +750,8 @@ static u8 ath_rc_ratefind_ht(struct ath_softc *sc, > > static void ath_rc_rate_set_series(struct ath_rate_table *rate_table, > > struct ieee80211_tx_rate *rate, > > struct ieee80211_tx_rate_control *txrc, > > - u8 tries, u8 rix, int rtsctsenable) > > + u8 tries, u8 rix, int rtsctsenable, > > + bool is_probe) > > { > > rate->count = tries; > > rate->idx = rix; > > @@ -765,6 +766,8 @@ static void ath_rc_rate_set_series(struct ath_rate_table *rate_table, > > rate->flags |= IEEE80211_TX_RC_SHORT_GI; > > if (WLAN_RC_PHY_HT(rate_table->info[rix].phy)) > > rate->flags |= IEEE80211_TX_RC_MCS; > > + if (is_probe) > > + rate->flags |= IEEE80211_TX_CTL_RATE_CTRL_PROBE; > > } > > > > IEEE80211_TX_CTL_RATE_CTRL_PROBE is to be used with flags@ieee80211_tx_info > and is not a per-rate flag. oops, thanks. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-03-12 8:41 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-03-06 15:08 [PATCH] ath9k: Use suitable macros with 4k eeprom data Vasanthakumar Thiagarajan 2009-03-06 15:08 ` [PATCH] ath9k: Set IEEE80211_TX_CTL_RATE_CTRL_PROBE in rate control for probe rates Vasanthakumar Thiagarajan 2009-03-06 15:28 ` [ath9k-devel] " Sujith 2009-03-12 8:41 ` Vasanthakumar Thiagarajan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox