Skip to content
Snippets Groups Projects
Commit 21b04c62 authored by Helmut Schaa's avatar Helmut Schaa Committed by Felix Fietkau
Browse files

ath9k: Fix TX99 support


The patch 300-ath9k-force-rx_clear-when-disabling-rx.patch broke TX99 support
in ath9k. Fix the patch by only applying rx_clear if TX99 mode is not used.

Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
parent 262cec2f
No related branches found
No related tags found
No related merge requests found
...@@ -3,15 +3,16 @@ Date: Sun, 7 Jun 2015 13:53:35 +0200 ...@@ -3,15 +3,16 @@ Date: Sun, 7 Jun 2015 13:53:35 +0200
Subject: [PATCH] ath9k: force rx_clear when disabling rx Subject: [PATCH] ath9k: force rx_clear when disabling rx
This makes stopping Rx more reliable and should reduce the frequency of This makes stopping Rx more reliable and should reduce the frequency of
Rx related DMA stop warnings Rx related DMA stop warnings. Don't use rx_clear in TX99 mode.
Cc: stable@vger.kernel.org Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
--- ---
--- a/drivers/net/wireless/ath/ath9k/mac.c --- a/drivers/net/wireless/ath/ath9k/mac.c
+++ b/drivers/net/wireless/ath/ath9k/mac.c +++ b/drivers/net/wireless/ath/ath9k/mac.c
@@ -677,13 +677,15 @@ void ath9k_hw_startpcureceive(struct ath @@ -677,13 +677,18 @@ void ath9k_hw_startpcureceive(struct ath
ath9k_ani_reset(ah, is_scanning); ath9k_ani_reset(ah, is_scanning);
...@@ -24,8 +25,11 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> ...@@ -24,8 +25,11 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
void ath9k_hw_abortpcurecv(struct ath_hw *ah) void ath9k_hw_abortpcurecv(struct ath_hw *ah)
{ {
- REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_ABORT | AR_DIAG_RX_DIS); - REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_ABORT | AR_DIAG_RX_DIS);
+ REG_SET_BIT(ah, AR_DIAG_SW, + u32 reg = AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT;
+ AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT | AR_DIAG_FORCE_RX_CLEAR); +
+ if (!config_enabled(CPTCFG_ATH9K_TX99))
+ reg |= AR_DIAG_FORCE_RX_CLEAR;
+ REG_SET_BIT(ah, AR_DIAG_SW, reg);
ath9k_hw_disable_mib_counters(ah); ath9k_hw_disable_mib_counters(ah);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment