Changeset 38305


Ignore:
Timestamp:
2013-10-05T14:12:57+02:00 (4 years ago)
Author:
nbd
Message:

ath9k: fix tx queueing issues after background scans

Signed-off-by: Felix Fietkau <nbd@…>

Backport of r38304

Location:
branches/attitude_adjustment/package/mac80211/patches
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/attitude_adjustment/package/mac80211/patches/300-pending_work.patch

    r38258 r38305  
    384384--- a/drivers/net/wireless/ath/ath9k/main.c 
    385385+++ b/drivers/net/wireless/ath/ath9k/main.c 
    386 @@ -2094,7 +2094,7 @@ static void ath9k_wow_add_pattern(struct 
     386@@ -209,6 +209,7 @@ static bool ath_complete_reset(struct at 
     387        struct ath_hw *ah = sc->sc_ah; 
     388        struct ath_common *common = ath9k_hw_common(ah); 
     389        unsigned long flags; 
     390+       int i; 
     391  
     392        if (ath_startrecv(sc) != 0) { 
     393                ath_err(common, "Unable to restart recv logic\n"); 
     394@@ -236,6 +237,15 @@ static bool ath_complete_reset(struct at 
     395                } 
     396        work: 
     397                ath_restart_work(sc); 
     398+ 
     399+               for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { 
     400+                       if (!ATH_TXQ_SETUP(sc, i)) 
     401+                               continue; 
     402+ 
     403+                       spin_lock_bh(&sc->tx.txq[i].axq_lock); 
     404+                       ath_txq_schedule(sc, &sc->tx.txq[i]); 
     405+                       spin_unlock_bh(&sc->tx.txq[i].axq_lock); 
     406+               } 
     407        } 
     408  
     409        if ((ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB) && sc->ant_rx != 3) 
     410@@ -543,21 +553,10 @@ chip_reset: 
     411  
     412 static int ath_reset(struct ath_softc *sc) 
     413 { 
     414-       int i, r; 
     415+       int r; 
     416  
     417        ath9k_ps_wakeup(sc); 
     418- 
     419        r = ath_reset_internal(sc, NULL); 
     420- 
     421-       for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { 
     422-               if (!ATH_TXQ_SETUP(sc, i)) 
     423-                       continue; 
     424- 
     425-               spin_lock_bh(&sc->tx.txq[i].axq_lock); 
     426-               ath_txq_schedule(sc, &sc->tx.txq[i]); 
     427-               spin_unlock_bh(&sc->tx.txq[i].axq_lock); 
     428-       } 
     429- 
     430        ath9k_ps_restore(sc); 
     431  
     432        return r; 
     433@@ -2094,7 +2093,7 @@ static void ath9k_wow_add_pattern(struct 
    387434 { 
    388435        struct ath_hw *ah = sc->sc_ah; 
  • branches/attitude_adjustment/package/mac80211/patches/512-ath9k_channelbw_debugfs.patch

    r37728 r38305  
    8181--- a/drivers/net/wireless/ath/ath9k/main.c 
    8282+++ b/drivers/net/wireless/ath/ath9k/main.c 
    83 @@ -1139,7 +1139,7 @@ int ath9k_spectral_scan_config(struct ie 
     83@@ -1138,7 +1138,7 @@ int ath9k_spectral_scan_config(struct ie 
    8484        return 0; 
    8585 } 
     
    9090        struct ath_softc *sc = hw->priv; 
    9191        struct ath_hw *ah = sc->sc_ah; 
    92 @@ -1195,9 +1195,11 @@ static int ath9k_config(struct ieee80211 
     92@@ -1194,9 +1194,11 @@ static int ath9k_config(struct ieee80211 
    9393                struct ieee80211_channel *curchan = hw->conf.chandef.chan; 
    9494                enum nl80211_channel_type channel_type = 
     
    102102                if (ah->curchan) 
    103103                        old_pos = ah->curchan - &ah->channels[0]; 
    104 @@ -1233,7 +1235,23 @@ static int ath9k_config(struct ieee80211 
     104@@ -1232,7 +1234,23 @@ static int ath9k_config(struct ieee80211 
    105105                        memset(&sc->survey[pos], 0, sizeof(struct survey_info)); 
    106106                } 
  • branches/attitude_adjustment/package/mac80211/patches/521-ath9k_cur_txpower.patch

    r37266 r38305  
    11--- a/drivers/net/wireless/ath/ath9k/main.c 
    22+++ b/drivers/net/wireless/ath/ath9k/main.c 
    3 @@ -1258,6 +1258,8 @@ int ath9k_config(struct ieee80211_hw *hw 
     3@@ -1257,6 +1257,8 @@ int ath9k_config(struct ieee80211_hw *hw 
    44                        return -EINVAL; 
    55                } 
     
    1010                 * The most recent snapshot of channel->noisefloor for the old 
    1111                 * channel is only available after the hardware reset. Copy it to 
    12 @@ -1294,6 +1296,7 @@ int ath9k_config(struct ieee80211_hw *hw 
     12@@ -1293,6 +1295,7 @@ int ath9k_config(struct ieee80211_hw *hw 
    1313                sc->config.txpowlimit = 2 * conf->power_level; 
    1414                ath9k_cmn_update_txpow(ah, sc->curtxpow, 
  • branches/attitude_adjustment/package/mac80211/patches/524-ath9k_use_configured_antenna_gain.patch

    r37729 r38305  
    2222--- a/drivers/net/wireless/ath/ath9k/main.c 
    2323+++ b/drivers/net/wireless/ath/ath9k/main.c 
    24 @@ -1292,7 +1292,10 @@ int ath9k_config(struct ieee80211_hw *hw 
     24@@ -1291,7 +1291,10 @@ int ath9k_config(struct ieee80211_hw *hw 
    2525        } 
    2626  
  • branches/attitude_adjustment/package/mac80211/patches/553-ath9k_debugfs_diag.patch

    r37729 r38305  
    126126--- a/drivers/net/wireless/ath/ath9k/main.c 
    127127+++ b/drivers/net/wireless/ath/ath9k/main.c 
    128 @@ -462,6 +462,11 @@ irqreturn_t ath_isr(int irq, void *dev) 
     128@@ -472,6 +472,11 @@ irqreturn_t ath_isr(int irq, void *dev) 
    129129        ath9k_hw_getisr(ah, &status);   /* NB: clears ISR too */ 
    130130        status &= ah->imask;    /* discard unasked-for bits */ 
  • branches/attitude_adjustment/package/mac80211/patches/560-ath9k_tx_queueing_rework.patch

    r37920 r38305  
    9191--- a/drivers/net/wireless/ath/ath9k/main.c 
    9292+++ b/drivers/net/wireless/ath/ath9k/main.c 
    93 @@ -1403,9 +1403,6 @@ static void ath9k_sta_notify(struct ieee 
     93@@ -1402,9 +1402,6 @@ static void ath9k_sta_notify(struct ieee 
    9494        struct ath_softc *sc = hw->priv; 
    9595        struct ath_node *an = (struct ath_node *) sta->drv_priv; 
Note: See TracChangeset for help on using the changeset viewer.