From: Felix Fietkau Date: Tue, 20 May 2014 11:09:47 +0000 (+0000) Subject: ath9k: revert a faulty rx path fix X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=86bc08165b8f5d5f2dbc47ed87d9c9a055376ee2 ath9k: revert a faulty rx path fix Signed-off-by: Felix Fietkau SVN-Revision: 40802 --- diff --git a/package/kernel/mac80211/patches/300-pending_work.patch b/package/kernel/mac80211/patches/300-pending_work.patch index 702b17b333..dc1e2650fa 100644 --- a/package/kernel/mac80211/patches/300-pending_work.patch +++ b/package/kernel/mac80211/patches/300-pending_work.patch @@ -1,13 +1,3 @@ -commit 230ab8c1880266c9cfceac962e2d48309dea79a7 -Author: Felix Fietkau -Date: Mon May 19 21:48:56 2014 +0200 - - ath9k: re-schedule rx processing after budget exceeded - - Should improve rx stability under load - - Signed-off-by: Felix Fietkau - commit ff9655bebd25d35ab13c2515a029723b69949720 Author: Felix Fietkau Date: Mon May 19 21:20:49 2014 +0200 @@ -4328,52 +4318,6 @@ Date: Tue Apr 29 17:52:36 2014 +0200 /* Finally check that all iftypes that we're currently * using are actually part of this combination. If they * aren't then we can't use this combination and have ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -444,6 +444,8 @@ void ath9k_tasklet(unsigned long data) - ath9k_ps_wakeup(sc); - spin_lock(&sc->sc_pcu_lock); - -+ sc->intrstatus = 0; -+ - if (status & ATH9K_INT_FATAL) { - type = RESET_TYPE_FATAL_INT; - ath9k_queue_reset(sc, type); -@@ -512,10 +514,12 @@ void ath9k_tasklet(unsigned long data) - if (status & rxmask) { - /* Check for high priority Rx first */ - if ((ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) && -- (status & ATH9K_INT_RXHP)) -- ath_rx_tasklet(sc, 0, true); -+ (status & ATH9K_INT_RXHP) && -+ ath_rx_tasklet(sc, 0, true)) -+ sc->intrstatus |= ATH9K_INT_RXHP; - -- ath_rx_tasklet(sc, 0, false); -+ if (ath_rx_tasklet(sc, 0, false)) -+ sc->intrstatus |= ATH9K_INT_RXLP; - } - - if (status & ATH9K_INT_TX) { -@@ -543,6 +547,9 @@ void ath9k_tasklet(unsigned long data) - - /* re-enable hardware interrupt */ - ath9k_hw_enable_interrupts(ah); -+ if (sc->intrstatus) -+ tasklet_schedule(&sc->intr_tq); -+ - out: - spin_unlock(&sc->sc_pcu_lock); - ath9k_ps_restore(sc); -@@ -609,7 +616,7 @@ irqreturn_t ath_isr(int irq, void *dev) - return IRQ_NONE; - - /* Cache the status */ -- sc->intrstatus = status; -+ sc->intrstatus |= status; - - if (status & SCHED_INTR) - sched = true; --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c @@ -34,7 +34,8 @@ static inline bool ath9k_check_auto_slee @@ -4437,10 +4381,3 @@ Date: Tue Apr 29 17:52:36 2014 +0200 } if (!budget--) -@@ -1135,5 +1137,5 @@ requeue: - ath9k_hw_set_interrupts(ah); - } - -- return 0; -+ return !budget; - } diff --git a/package/kernel/mac80211/patches/521-ath9k_cur_txpower.patch b/package/kernel/mac80211/patches/521-ath9k_cur_txpower.patch index d4d2989f6b..35643230b0 100644 --- a/package/kernel/mac80211/patches/521-ath9k_cur_txpower.patch +++ b/package/kernel/mac80211/patches/521-ath9k_cur_txpower.patch @@ -14,7 +14,7 @@ out: spin_unlock_bh(&sc->sc_pcu_lock); -@@ -1411,6 +1415,7 @@ static int ath9k_config(struct ieee80211 +@@ -1404,6 +1408,7 @@ static int ath9k_config(struct ieee80211 sc->config.txpowlimit = 2 * conf->power_level; ath9k_cmn_update_txpow(ah, sc->curtxpow, sc->config.txpowlimit, &sc->curtxpow); diff --git a/package/kernel/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch b/package/kernel/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch index 2ea3fe08b9..aaefa2f2d9 100644 --- a/package/kernel/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch +++ b/package/kernel/mac80211/patches/523-ath9k_use_configured_antenna_gain.patch @@ -21,7 +21,7 @@ if (ant_gain > max_gain) --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -1411,7 +1411,10 @@ static int ath9k_config(struct ieee80211 +@@ -1404,7 +1404,10 @@ static int ath9k_config(struct ieee80211 } if (changed & IEEE80211_CONF_CHANGE_POWER) { diff --git a/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch b/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch index 3db34bb8b9..764e5e260e 100644 --- a/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch +++ b/package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch @@ -125,7 +125,7 @@ REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV, AR_BTCOEX_WL_LNADIV_FORCE_ON); --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -612,6 +612,11 @@ irqreturn_t ath_isr(int irq, void *dev) +@@ -605,6 +605,11 @@ irqreturn_t ath_isr(int irq, void *dev) ath9k_debug_sync_cause(sc, sync_cause); status &= ah->imask; /* discard unasked-for bits */