Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5c38ef0 authored by Sujith's avatar Sujith Committed by John W. Linville
Browse files

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: default avatarSujith <Sujith.Manoharan@atheros.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c6483cfe
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -1321,7 +1321,7 @@ static void ath_rc_tx_status(struct ath_softc *sc,
				 * 40 to 20 => don't update */

				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;

				rix = ath_rc_get_rateindex(rate_table, &rates[i]);
@@ -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 ((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;
	}

	rix = ath_rc_get_rateindex(rate_table, &rates[i]);
	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,
			ath_rc_priv->valid_phy_rateidx[i][j] = 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) {
		/* No working rate, just initialize valid rates */
+0 −1
Original line number Diff line number Diff line
@@ -176,7 +176,6 @@ struct ath_rate_priv {
	u8 ht_cap;
	u8 valid_phy_ratecnt[WLAN_RC_PHY_MAX];
	u8 valid_phy_rateidx[WLAN_RC_PHY_MAX][RATE_TABLE_SIZE];
	u8 rc_phy_mode;
	u8 rate_max_phy;
	u32 rssi_time;
	u32 rssi_down_time;