diff options
Diffstat (limited to 'package/kernel/mac80211/patches/330-ath9k-use-rmw-buffer-in-ath9k_hw_set_operating_mode-.patch')
-rw-r--r-- | package/kernel/mac80211/patches/330-ath9k-use-rmw-buffer-in-ath9k_hw_set_operating_mode-.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/330-ath9k-use-rmw-buffer-in-ath9k_hw_set_operating_mode-.patch b/package/kernel/mac80211/patches/330-ath9k-use-rmw-buffer-in-ath9k_hw_set_operating_mode-.patch new file mode 100644 index 0000000000..6ce3f40f05 --- /dev/null +++ b/package/kernel/mac80211/patches/330-ath9k-use-rmw-buffer-in-ath9k_hw_set_operating_mode-.patch @@ -0,0 +1,43 @@ +From: Oleksij Rempel <linux@rempel-privat.de> +Date: Sun, 22 Mar 2015 19:29:57 +0100 +Subject: [PATCH] ath9k: use rmw buffer in ath9k_hw_set_operating_mode + and ath9k_hw_reset + +Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -1227,6 +1227,7 @@ static void ath9k_hw_set_operating_mode( + u32 mask = AR_STA_ID1_STA_AP | AR_STA_ID1_ADHOC; + u32 set = AR_STA_ID1_KSRCH_MODE; + ++ ENABLE_REG_RMW_BUFFER(ah); + switch (opmode) { + case NL80211_IFTYPE_ADHOC: + if (!AR_SREV_9340_13(ah)) { +@@ -1248,6 +1249,7 @@ static void ath9k_hw_set_operating_mode( + break; + } + REG_RMW(ah, AR_STA_ID1, set, mask); ++ REG_RMW_BUFFER_FLUSH(ah); + } + + void ath9k_hw_get_delta_slope_vals(struct ath_hw *ah, u32 coef_scaled, +@@ -1960,6 +1962,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st + if (!ath9k_hw_mci_is_enabled(ah)) + REG_WRITE(ah, AR_OBS, 8); + ++ ENABLE_REG_RMW_BUFFER(ah); + if (ah->config.rx_intr_mitigation) { + REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, ah->config.rimt_last); + REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, ah->config.rimt_first); +@@ -1969,6 +1972,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st + REG_RMW_FIELD(ah, AR_TIMT, AR_TIMT_LAST, 300); + REG_RMW_FIELD(ah, AR_TIMT, AR_TIMT_FIRST, 750); + } ++ REG_RMW_BUFFER_FLUSH(ah); + + ath9k_hw_init_bb(ah, chan); + |