提交 f5c38ef0 编写于 作者: S Sujith 提交者: John W. Linville

ath9k: Fix bug in determining HT40 mode

This patch fixes a bug in checking for HT40 mode.
The STA's mode can be determined from the cached HT capabilities,
use that and remove the redundant variable 'rc_phy_mode'.
Signed-off-by: NSujith <Sujith.Manoharan@atheros.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 c6483cfe
...@@ -1321,7 +1321,7 @@ static void ath_rc_tx_status(struct ath_softc *sc, ...@@ -1321,7 +1321,7 @@ static void ath_rc_tx_status(struct ath_softc *sc,
* 40 to 20 => don't update */ * 40 to 20 => don't update */
if ((flags & IEEE80211_TX_RC_40_MHZ_WIDTH) && if ((flags & IEEE80211_TX_RC_40_MHZ_WIDTH) &&
(ath_rc_priv->rc_phy_mode != WLAN_RC_40_FLAG)) !(ath_rc_priv->ht_cap & WLAN_RC_40_FLAG))
return; return;
rix = ath_rc_get_rateindex(rate_table, &rates[i]); rix = ath_rc_get_rateindex(rate_table, &rates[i]);
...@@ -1346,9 +1346,8 @@ static void ath_rc_tx_status(struct ath_softc *sc, ...@@ -1346,9 +1346,8 @@ static void ath_rc_tx_status(struct ath_softc *sc,
/* If HT40 and we have switched mode from 40 to 20 => don't update */ /* If HT40 and we have switched mode from 40 to 20 => don't update */
if ((flags & IEEE80211_TX_RC_40_MHZ_WIDTH) && if ((flags & IEEE80211_TX_RC_40_MHZ_WIDTH) &&
(ath_rc_priv->rc_phy_mode != WLAN_RC_40_FLAG)) { !(ath_rc_priv->ht_cap & WLAN_RC_40_FLAG))
return; return;
}
rix = ath_rc_get_rateindex(rate_table, &rates[i]); rix = ath_rc_get_rateindex(rate_table, &rates[i]);
ath_rc_update_ht(sc, ath_rc_priv, tx_info_priv, rix, ath_rc_update_ht(sc, ath_rc_priv, tx_info_priv, rix,
...@@ -1421,7 +1420,6 @@ static void ath_rc_init(struct ath_softc *sc, ...@@ -1421,7 +1420,6 @@ static void ath_rc_init(struct ath_softc *sc,
ath_rc_priv->valid_phy_rateidx[i][j] = 0; ath_rc_priv->valid_phy_rateidx[i][j] = 0;
ath_rc_priv->valid_phy_ratecnt[i] = 0; ath_rc_priv->valid_phy_ratecnt[i] = 0;
} }
ath_rc_priv->rc_phy_mode = ath_rc_priv->ht_cap & WLAN_RC_40_FLAG;
if (!rateset->rs_nrates) { if (!rateset->rs_nrates) {
/* No working rate, just initialize valid rates */ /* No working rate, just initialize valid rates */
......
...@@ -176,7 +176,6 @@ struct ath_rate_priv { ...@@ -176,7 +176,6 @@ struct ath_rate_priv {
u8 ht_cap; u8 ht_cap;
u8 valid_phy_ratecnt[WLAN_RC_PHY_MAX]; u8 valid_phy_ratecnt[WLAN_RC_PHY_MAX];
u8 valid_phy_rateidx[WLAN_RC_PHY_MAX][RATE_TABLE_SIZE]; u8 valid_phy_rateidx[WLAN_RC_PHY_MAX][RATE_TABLE_SIZE];
u8 rc_phy_mode;
u8 rate_max_phy; u8 rate_max_phy;
u32 rssi_time; u32 rssi_time;
u32 rssi_down_time; u32 rssi_down_time;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册