Changeset 28170 for branches/backfire


Ignore:
Timestamp:
2011-09-04T21:06:35+02:00 (5 years ago)
Author:
nbd
Message:

ath9k: merge latest changes from trunk (as of r28169)

Location:
branches/backfire/package/mac80211/patches
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/mac80211/patches/581-ath9k_use_reset_work.patch

    r28140 r28170  
    99 void ath_hw_pll_work(struct work_struct *work); 
    1010 void ath_paprd_calibrate(struct work_struct *work); 
    11 @@ -559,6 +560,7 @@ struct ath_ant_comb { 
    12  #define SC_OP_RXFLUSH                BIT(7) 
    13  #define SC_OP_LED_ASSOCIATED         BIT(8) 
    14  #define SC_OP_LED_ON                 BIT(9) 
    15 +#define SC_OP_HW_RESET               BIT(10) 
    16  #define SC_OP_TSF_RESET              BIT(11) 
    17  #define SC_OP_BT_PRIORITY_DETECTED   BIT(12) 
    18  #define SC_OP_BT_SCAN               BIT(13) 
    19 @@ -609,6 +611,7 @@ struct ath_softc { 
     11@@ -609,6 +610,7 @@ struct ath_softc { 
    2012        struct mutex mutex; 
    2113        struct work_struct paprd_work; 
     
    2517  
    2618        unsigned int hw_busy_count; 
    27 @@ -655,7 +658,6 @@ struct ath_softc { 
     19@@ -655,7 +657,6 @@ struct ath_softc { 
    2820 }; 
    2921  
     
    152144        } 
    153145  
    154 @@ -968,13 +899,14 @@ void ath_radio_disable(struct ath_softc  
     146@@ -968,7 +899,7 @@ void ath_radio_disable(struct ath_softc  
    155147        ath9k_ps_restore(sc); 
    156148 } 
     
    161153        struct ath_hw *ah = sc->sc_ah; 
    162154        struct ath_common *common = ath9k_hw_common(ah); 
    163         struct ieee80211_hw *hw = sc->hw; 
    164         int r; 
    165   
    166 +       sc->sc_flags &= ~SC_OP_HW_RESET; 
    167         sc->hw_busy_count = 0; 
    168   
    169         /* Stop ANI */ 
    170 @@ -1035,6 +967,84 @@ int ath_reset(struct ath_softc *sc, bool 
     155@@ -1035,6 +966,84 @@ int ath_reset(struct ath_softc *sc, bool 
    171156        return r; 
    172157 } 
     
    253238 /* mac80211 callbacks */ 
    254239 /**********************/ 
    255 @@ -1227,6 +1237,7 @@ static void ath9k_stop(struct ieee80211_ 
     240@@ -1227,6 +1236,7 @@ static void ath9k_stop(struct ieee80211_ 
    256241        cancel_delayed_work_sync(&sc->hw_pll_work); 
    257242        cancel_work_sync(&sc->paprd_work); 
     
    263248--- a/drivers/net/wireless/ath/ath9k/xmit.c 
    264249+++ b/drivers/net/wireless/ath/ath9k/xmit.c 
    265 @@ -603,8 +603,10 @@ static void ath_tx_complete_aggr(struct  
    266   
     250@@ -604,7 +604,7 @@ static void ath_tx_complete_aggr(struct  
    267251        rcu_read_unlock(); 
    268252  
    269 -       if (needreset) 
     253        if (needreset) 
    270254-               ath_reset(sc, false); 
    271 +       if (needreset) { 
    272 +               sc->sc_flags |= SC_OP_HW_RESET; 
    273255+               ieee80211_queue_work(sc->hw, &sc->hw_reset_work); 
    274 +       } 
    275256 } 
    276257  
    277258 static bool ath_lookup_legacy(struct ath_buf *bf) 
    278 @@ -1357,7 +1359,7 @@ void ath_txq_schedule(struct ath_softc * 
     259@@ -1357,7 +1357,7 @@ void ath_txq_schedule(struct ath_softc * 
    279260        struct ath_atx_ac *ac, *ac_tmp, *last_ac; 
    280261        struct ath_atx_tid *tid, *last_tid; 
    281262  
    282263-       if (list_empty(&txq->axq_acq) || 
    283 +       if ((sc->sc_flags & SC_OP_HW_RESET) || list_empty(&txq->axq_acq) || 
     264+       if (work_pending(&sc->hw_reset_work) || list_empty(&txq->axq_acq) || 
    284265            txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH) 
    285266                return; 
    286267  
    287 @@ -2184,6 +2186,9 @@ static void ath_tx_processq(struct ath_s 
     268@@ -2184,6 +2184,9 @@ static void ath_tx_processq(struct ath_s 
    288269  
    289270        spin_lock_bh(&txq->axq_lock); 
    290271        for (;;) { 
    291 +               if (sc->sc_flags & SC_OP_HW_RESET) 
     272+               if (work_pending(&sc->hw_reset_work)) 
    292273+                       break; 
    293274+ 
     
    295276                        txq->axq_link = NULL; 
    296277                        if (sc->sc_flags & SC_OP_TXAGGR) 
    297 @@ -2271,9 +2276,7 @@ static void ath_tx_complete_poll_work(st 
     278@@ -2271,9 +2274,7 @@ static void ath_tx_complete_poll_work(st 
    298279        if (needreset) { 
    299280                ath_dbg(ath9k_hw_common(sc->sc_ah), ATH_DBG_RESET, 
     
    306287  
    307288        ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, 
    308 @@ -2306,6 +2309,9 @@ void ath_tx_edma_tasklet(struct ath_soft 
     289@@ -2306,6 +2307,9 @@ void ath_tx_edma_tasklet(struct ath_soft 
    309290        int status; 
    310291  
    311292        for (;;) { 
    312 +               if (sc->sc_flags & SC_OP_HW_RESET) 
     293+               if (work_pending(&sc->hw_reset_work)) 
    313294+                       break; 
    314295+ 
  • branches/backfire/package/mac80211/patches/582-ath9k_merge_reset_functions.patch

    r28140 r28170  
    119119  
    120120        ath9k_cmn_update_txpow(ah, sc->curtxpow, 
    121 @@ -297,21 +270,95 @@ static int ath_set_channel(struct ath_so 
     121@@ -297,21 +270,93 @@ static int ath_set_channel(struct ath_so 
    122122        ath9k_hw_set_interrupts(ah, ah->imask); 
    123123        ath9k_hw_enable_interrupts(ah); 
     
    154154+ 
    155155+       spin_lock_bh(&sc->sc_pcu_lock); 
    156 + 
    157 +       sc->sc_flags &= ~SC_OP_HW_RESET; 
    158156  
    159157+       if (!(sc->sc_flags & SC_OP_OFFCHANNEL)) { 
     
    218216 } 
    219217  
    220 @@ -824,28 +871,13 @@ static void ath_radio_enable(struct ath_ 
     218@@ -824,28 +869,13 @@ static void ath_radio_enable(struct ath_ 
    221219                        channel->center_freq, r); 
    222220        } 
     
    248246  
    249247        ath9k_ps_restore(sc); 
    250 @@ -858,11 +890,10 @@ void ath_radio_disable(struct ath_softc  
     248@@ -858,11 +888,10 @@ void ath_radio_disable(struct ath_softc  
    251249        int r; 
    252250  
     
    262260        /* 
    263261         * Keep the LED on when the radio is disabled 
    264 @@ -873,13 +904,7 @@ void ath_radio_disable(struct ath_softc  
     262@@ -873,13 +902,7 @@ void ath_radio_disable(struct ath_softc  
    265263                ath9k_hw_cfg_gpio_input(ah, ah->led_pin); 
    266264        } 
     
    277275        if (!ah->curchan) 
    278276                ah->curchan = ath9k_cmn_get_curchannel(hw, ah); 
    279 @@ -901,49 +926,11 @@ void ath_radio_disable(struct ath_softc  
     277@@ -901,48 +924,11 @@ void ath_radio_disable(struct ath_softc  
    280278  
    281279 static int ath_reset(struct ath_softc *sc, bool retry_tx) 
     
    286284        int r; 
    287285  
    288 -       sc->sc_flags &= ~SC_OP_HW_RESET; 
    289286-       sc->hw_busy_count = 0; 
    290287- 
     
    328325        if (retry_tx) { 
    329326                int i; 
    330 @@ -956,12 +943,6 @@ static int ath_reset(struct ath_softc *s 
     327@@ -955,12 +941,6 @@ static int ath_reset(struct ath_softc *s 
    331328                } 
    332329        } 
     
    341338  
    342339        return r; 
    343 @@ -971,9 +952,7 @@ void ath_reset_work(struct work_struct * 
     340@@ -970,9 +950,7 @@ void ath_reset_work(struct work_struct * 
    344341 { 
    345342        struct ath_softc *sc = container_of(work, struct ath_softc, hw_reset_work); 
     
    351348  
    352349 void ath_hw_check(struct work_struct *work) 
    353 @@ -994,11 +973,8 @@ void ath_hw_check(struct work_struct *wo 
     350@@ -993,11 +971,8 @@ void ath_hw_check(struct work_struct *wo 
    354351        ath_dbg(common, ATH_DBG_RESET, "Possible baseband hang, " 
    355352                "busy=%d (try %d)\n", busy, sc->hw_busy_count + 1); 
     
    365362        } else if (busy >= 0) 
    366363                sc->hw_busy_count = 0; 
    367 @@ -1018,9 +994,7 @@ static void ath_hw_pll_rx_hang_check(str 
     364@@ -1017,9 +992,7 @@ static void ath_hw_pll_rx_hang_check(str 
    368365                        /* Rx is hung for more than 500ms. Reset it */ 
    369366                        ath_dbg(common, ATH_DBG_RESET, 
     
    376373                } 
    377374        } else 
    378 @@ -1091,28 +1065,6 @@ static int ath9k_start(struct ieee80211_ 
     375@@ -1090,28 +1063,6 @@ static int ath9k_start(struct ieee80211_ 
    379376                goto mutex_unlock; 
    380377        } 
     
    405402        ah->imask = ATH9K_INT_TX | ATH9K_INT_RXEOL | 
    406403                    ATH9K_INT_RXORN | ATH9K_INT_FATAL | 
    407 @@ -1135,12 +1087,14 @@ static int ath9k_start(struct ieee80211_ 
     404@@ -1134,12 +1085,14 @@ static int ath9k_start(struct ieee80211_ 
    408405  
    409406        /* Disable BMISS interrupt when we're not associated */ 
     
    424421        if ((ah->btcoex_hw.scheme != ATH_BTCOEX_CFG_NONE) && 
    425422            !ah->btcoex_hw.enabled) { 
    426 @@ -1233,11 +1187,7 @@ static void ath9k_stop(struct ieee80211_ 
     423@@ -1232,11 +1185,7 @@ static void ath9k_stop(struct ieee80211_ 
    427424  
    428425        mutex_lock(&sc->mutex); 
     
    437434        if (sc->sc_flags & SC_OP_INVALID) { 
    438435                ath_dbg(common, ATH_DBG_ANY, "Device not present\n"); 
    439 @@ -2354,9 +2304,11 @@ static void ath9k_flush(struct ieee80211 
     436@@ -2353,9 +2302,11 @@ static void ath9k_flush(struct ieee80211 
    440437        ath9k_ps_wakeup(sc); 
    441438        spin_lock_bh(&sc->sc_pcu_lock); 
  • branches/backfire/package/mac80211/patches/583-ath9k_antenna_control.patch

    r28138 r28170  
    5858--- a/drivers/net/wireless/ath/ath9k/ath9k.h 
    5959+++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
    60 @@ -655,6 +655,7 @@ struct ath_softc { 
     60@@ -654,6 +654,7 @@ struct ath_softc { 
    6161        struct ath_descdma txsdma; 
    6262  
     
    6666  
    6767 void ath9k_tasklet(unsigned long data); 
    68 @@ -675,6 +676,7 @@ int ath9k_init_device(u16 devid, struct  
     68@@ -674,6 +675,7 @@ int ath9k_init_device(u16 devid, struct  
    6969                    const struct ath_bus_ops *bus_ops); 
    7070 void ath9k_deinit_device(struct ath_softc *sc); 
     
    9999  
    100100        return true; 
    101 @@ -2385,6 +2401,59 @@ static int ath9k_get_stats(struct ieee80 
     101@@ -2383,6 +2399,59 @@ static int ath9k_get_stats(struct ieee80 
    102102        return 0; 
    103103 } 
     
    159159        .tx                 = ath9k_tx, 
    160160        .start              = ath9k_start, 
    161 @@ -2411,4 +2480,6 @@ struct ieee80211_ops ath9k_ops = { 
     161@@ -2409,4 +2478,6 @@ struct ieee80211_ops ath9k_ops = { 
    162162        .tx_frames_pending  = ath9k_tx_frames_pending, 
    163163        .tx_last_beacon     = ath9k_tx_last_beacon, 
Note: See TracChangeset for help on using the changeset viewer.