Changeset 29240


Ignore:
Timestamp:
2011-11-18T12:27:19+01:00 (6 years ago)
Author:
nbd
Message:

mac80211: update to wireless-testing 2011-11-15

Location:
trunk/package/mac80211
Files:
3 deleted
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/Makefile

    r29116 r29240  
    1111PKG_NAME:=mac80211 
    1212 
    13 PKG_VERSION:=2011-11-04 
     13PKG_VERSION:=2011-11-15 
    1414PKG_RELEASE:=1 
    1515PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources 
    16 PKG_MD5SUM:=baed52c81864c72887a6d3a88447e0d0 
     16PKG_MD5SUM:=0bb667c7fecbc244840d806df0604661 
    1717 
    1818PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2 
  • trunk/package/mac80211/patches/050-compat_firmware.patch

    r27870 r29240  
    6060 { 
    6161        /* pm-qos for kernels <= 2.6.24, this is a no-op on newer kernels */ 
    62 @@ -45,15 +56,15 @@ static int __init compat_init(void) 
     62@@ -46,7 +57,8 @@ static int __init compat_init(void) 
    6363               COMPAT_BASE_TREE " " COMPAT_BASE_TREE_VERSION 
    6464               "\n"); 
     
    7070 module_init(compat_init); 
    7171  
    72  static void __exit compat_exit(void) 
    73  { 
     72@@ -55,7 +67,8 @@ static void __exit compat_exit(void) 
    7473        compat_pm_qos_power_deinit(); 
    75 - 
     74        compat_system_workqueue_destroy(); 
     75  
    7676-        return; 
    7777+       firmware_class_exit(); 
     78+       return; 
    7879 } 
    7980 module_exit(compat_exit); 
  • trunk/package/mac80211/patches/100-disable_pcmcia_compat.patch

    r24948 r29240  
    5252 #include <pcmcia/cistpl.h> 
    5353 #include <pcmcia/ds.h> 
    54 @@ -65,9 +65,9 @@ static inline struct sk_buff *netdev_all 
     54@@ -68,9 +68,9 @@ static inline struct sk_buff *netdev_all 
    5555        return skb; 
    5656 } 
  • trunk/package/mac80211/patches/120-pr_fmt_warnings.patch

    r28245 r29240  
    148148 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    149149  
    150  #include <linux/moduleparam.h> 
     150 #include <linux/module.h> 
    151151--- a/drivers/net/wireless/libertas/mesh.c 
    152152+++ b/drivers/net/wireless/libertas/mesh.c 
  • trunk/package/mac80211/patches/140-mesh_pathtbl_backport.patch

    r28386 r29240  
    11--- a/net/mac80211/mesh_pathtbl.c 
    22+++ b/net/mac80211/mesh_pathtbl.c 
    3 @@ -844,7 +844,6 @@ static void table_flush_by_iface(struct  
     3@@ -841,7 +841,6 @@ static void table_flush_by_iface(struct  
    44        struct hlist_node *p; 
    55        int i; 
  • trunk/package/mac80211/patches/300-pending_work.patch

    r28771 r29240  
     1--- a/drivers/net/wireless/ath/ath9k/main.c 
     2+++ b/drivers/net/wireless/ath/ath9k/main.c 
     3@@ -118,7 +118,7 @@ void ath9k_ps_restore(struct ath_softc * 
     4        if (--sc->ps_usecount != 0) 
     5                goto unlock; 
     6  
     7-       if (sc->ps_idle) 
     8+       if (sc->ps_idle && (sc->ps_flags & PS_WAIT_FOR_TX_ACK)) 
     9                mode = ATH9K_PM_FULL_SLEEP; 
     10        else if (sc->ps_enabled && 
     11                 !(sc->ps_flags & (PS_WAIT_FOR_BEACON | 
     12@@ -332,7 +332,8 @@ static int ath_reset_internal(struct ath 
     13                hchan = ah->curchan; 
     14        } 
     15  
     16-       if (fastcc && !ath9k_hw_check_alive(ah)) 
     17+       if (fastcc && (ah->chip_fullsleep || 
     18+           !ath9k_hw_check_alive(ah))) 
     19                fastcc = false; 
     20  
     21        if (!ath_prepare_reset(sc, retry_tx, flush)) 
     22@@ -882,82 +883,6 @@ chip_reset: 
     23 #undef SCHED_INTR 
     24 } 
     25  
     26-static void ath_radio_enable(struct ath_softc *sc, struct ieee80211_hw *hw) 
     27-{ 
     28-       struct ath_hw *ah = sc->sc_ah; 
     29-       struct ath_common *common = ath9k_hw_common(ah); 
     30-       struct ieee80211_channel *channel = hw->conf.channel; 
     31-       int r; 
     32- 
     33-       ath9k_ps_wakeup(sc); 
     34-       spin_lock_bh(&sc->sc_pcu_lock); 
     35-       atomic_set(&ah->intr_ref_cnt, -1); 
     36- 
     37-       ath9k_hw_configpcipowersave(ah, false); 
     38- 
     39-       if (!ah->curchan) 
     40-               ah->curchan = ath9k_cmn_get_curchannel(sc->hw, ah); 
     41- 
     42-       r = ath9k_hw_reset(ah, ah->curchan, ah->caldata, false); 
     43-       if (r) { 
     44-               ath_err(common, 
     45-                       "Unable to reset channel (%u MHz), reset status %d\n", 
     46-                       channel->center_freq, r); 
     47-       } 
     48- 
     49-       ath_complete_reset(sc, true); 
     50- 
     51-       /* Enable LED */ 
     52-       ath9k_hw_cfg_output(ah, ah->led_pin, 
     53-                           AR_GPIO_OUTPUT_MUX_AS_OUTPUT); 
     54-       ath9k_hw_set_gpio(ah, ah->led_pin, 0); 
     55- 
     56-       spin_unlock_bh(&sc->sc_pcu_lock); 
     57- 
     58-       ath9k_ps_restore(sc); 
     59-} 
     60- 
     61-void ath_radio_disable(struct ath_softc *sc, struct ieee80211_hw *hw) 
     62-{ 
     63-       struct ath_hw *ah = sc->sc_ah; 
     64-       struct ieee80211_channel *channel = hw->conf.channel; 
     65-       int r; 
     66- 
     67-       ath9k_ps_wakeup(sc); 
     68- 
     69-       ath_cancel_work(sc); 
     70- 
     71-       spin_lock_bh(&sc->sc_pcu_lock); 
     72- 
     73-       /* 
     74-        * Keep the LED on when the radio is disabled 
     75-        * during idle unassociated state. 
     76-        */ 
     77-       if (!sc->ps_idle) { 
     78-               ath9k_hw_set_gpio(ah, ah->led_pin, 1); 
     79-               ath9k_hw_cfg_gpio_input(ah, ah->led_pin); 
     80-       } 
     81- 
     82-       ath_prepare_reset(sc, false, true); 
     83- 
     84-       if (!ah->curchan) 
     85-               ah->curchan = ath9k_cmn_get_curchannel(hw, ah); 
     86- 
     87-       r = ath9k_hw_reset(ah, ah->curchan, ah->caldata, false); 
     88-       if (r) { 
     89-               ath_err(ath9k_hw_common(sc->sc_ah), 
     90-                       "Unable to reset channel (%u MHz), reset status %d\n", 
     91-                       channel->center_freq, r); 
     92-       } 
     93- 
     94-       ath9k_hw_phy_disable(ah); 
     95- 
     96-       ath9k_hw_configpcipowersave(ah, true); 
     97- 
     98-       spin_unlock_bh(&sc->sc_pcu_lock); 
     99-       ath9k_ps_restore(sc); 
     100-} 
     101- 
     102 static int ath_reset(struct ath_softc *sc, bool retry_tx) 
     103 { 
     104        int r; 
     105@@ -1093,6 +1018,9 @@ static int ath9k_start(struct ieee80211_ 
     106         * and then setup of the interrupt mask. 
     107         */ 
     108        spin_lock_bh(&sc->sc_pcu_lock); 
     109+ 
     110+       atomic_set(&ah->intr_ref_cnt, -1); 
     111+ 
     112        r = ath9k_hw_reset(ah, init_channel, ah->caldata, false); 
     113        if (r) { 
     114                ath_err(common, 
     115@@ -1131,6 +1059,18 @@ static int ath9k_start(struct ieee80211_ 
     116                goto mutex_unlock; 
     117        } 
     118  
     119+       if (ah->led_pin >= 0) { 
     120+               ath9k_hw_cfg_output(ah, ah->led_pin, 
     121+                                   AR_GPIO_OUTPUT_MUX_AS_OUTPUT); 
     122+               ath9k_hw_set_gpio(ah, ah->led_pin, 0); 
     123+       } 
     124+ 
     125+       /* 
     126+        * Reset key cache to sane defaults (all entries cleared) instead of 
     127+        * semi-random values after suspend/resume. 
     128+        */ 
     129+       ath9k_cmn_init_crypto(sc->sc_ah); 
     130+ 
     131        spin_unlock_bh(&sc->sc_pcu_lock); 
     132  
     133        if ((ah->btcoex_hw.scheme != ATH_BTCOEX_CFG_NONE) && 
     134@@ -1176,6 +1116,13 @@ static void ath9k_tx(struct ieee80211_hw 
     135                } 
     136        } 
     137  
     138+       /* 
     139+        * Cannot tx while the hardware is in full sleep, it first needs a full 
     140+        * chip reset to recover from that 
     141+        */ 
     142+       if (unlikely(sc->sc_ah->power_mode == ATH9K_PM_FULL_SLEEP)) 
     143+               goto exit; 
     144+ 
     145        if (unlikely(sc->sc_ah->power_mode != ATH9K_PM_AWAKE)) { 
     146                /* 
     147                 * We are using PS-Poll and mac80211 can request TX while in 
     148@@ -1222,6 +1169,7 @@ static void ath9k_stop(struct ieee80211_ 
     149        struct ath_softc *sc = hw->priv; 
     150        struct ath_hw *ah = sc->sc_ah; 
     151        struct ath_common *common = ath9k_hw_common(ah); 
     152+       bool prev_idle; 
     153  
     154        mutex_lock(&sc->mutex); 
     155  
     156@@ -1252,35 +1200,45 @@ static void ath9k_stop(struct ieee80211_ 
     157         * before setting the invalid flag. */ 
     158        ath9k_hw_disable_interrupts(ah); 
     159  
     160-       if (!(sc->sc_flags & SC_OP_INVALID)) { 
     161-               ath_drain_all_txq(sc, false); 
     162-               ath_stoprecv(sc); 
     163-               ath9k_hw_phy_disable(ah); 
     164-       } else 
     165-               sc->rx.rxlink = NULL; 
     166+       spin_unlock_bh(&sc->sc_pcu_lock); 
     167+ 
     168+       /* we can now sync irq and kill any running tasklets, since we already 
     169+        * disabled interrupts and not holding a spin lock */ 
     170+       synchronize_irq(sc->irq); 
     171+       tasklet_kill(&sc->intr_tq); 
     172+       tasklet_kill(&sc->bcon_tasklet); 
     173+ 
     174+       prev_idle = sc->ps_idle; 
     175+       sc->ps_idle = true; 
     176+ 
     177+       spin_lock_bh(&sc->sc_pcu_lock); 
     178+ 
     179+       if (ah->led_pin >= 0) { 
     180+               ath9k_hw_set_gpio(ah, ah->led_pin, 1); 
     181+               ath9k_hw_cfg_gpio_input(ah, ah->led_pin); 
     182+       } 
     183+ 
     184+       ath_prepare_reset(sc, false, true); 
     185  
     186        if (sc->rx.frag) { 
     187                dev_kfree_skb_any(sc->rx.frag); 
     188                sc->rx.frag = NULL; 
     189        } 
     190  
     191-       /* disable HAL and put h/w to sleep */ 
     192-       ath9k_hw_disable(ah); 
     193+       if (!ah->curchan) 
     194+               ah->curchan = ath9k_cmn_get_curchannel(hw, ah); 
     195  
     196-       spin_unlock_bh(&sc->sc_pcu_lock); 
     197+       ath9k_hw_reset(ah, ah->curchan, ah->caldata, false); 
     198+       ath9k_hw_phy_disable(ah); 
     199  
     200-       /* we can now sync irq and kill any running tasklets, since we already 
     201-        * disabled interrupts and not holding a spin lock */ 
     202-       synchronize_irq(sc->irq); 
     203-       tasklet_kill(&sc->intr_tq); 
     204-       tasklet_kill(&sc->bcon_tasklet); 
     205+       ath9k_hw_configpcipowersave(ah, true); 
     206  
     207-       ath9k_ps_restore(sc); 
     208+       spin_unlock_bh(&sc->sc_pcu_lock); 
     209  
     210-       sc->ps_idle = true; 
     211-       ath_radio_disable(sc, hw); 
     212+       ath9k_ps_restore(sc); 
     213  
     214        sc->sc_flags |= SC_OP_INVALID; 
     215+       sc->ps_idle = prev_idle; 
     216  
     217        mutex_unlock(&sc->mutex); 
     218  
     219@@ -1620,8 +1578,8 @@ static int ath9k_config(struct ieee80211 
     220        struct ath_hw *ah = sc->sc_ah; 
     221        struct ath_common *common = ath9k_hw_common(ah); 
     222        struct ieee80211_conf *conf = &hw->conf; 
     223-       bool disable_radio = false; 
     224  
     225+       ath9k_ps_wakeup(sc); 
     226        mutex_lock(&sc->mutex); 
     227  
     228        /* 
     229@@ -1632,13 +1590,8 @@ static int ath9k_config(struct ieee80211 
     230         */ 
     231        if (changed & IEEE80211_CONF_CHANGE_IDLE) { 
     232                sc->ps_idle = !!(conf->flags & IEEE80211_CONF_IDLE); 
     233-               if (!sc->ps_idle) { 
     234-                       ath_radio_enable(sc, hw); 
     235-                       ath_dbg(common, ATH_DBG_CONFIG, 
     236-                               "not-idle: enabling radio\n"); 
     237-               } else { 
     238-                       disable_radio = true; 
     239-               } 
     240+               if (sc->ps_idle) 
     241+                       ath_cancel_work(sc); 
     242        } 
     243  
     244        /* 
     245@@ -1745,18 +1698,12 @@ static int ath9k_config(struct ieee80211 
     246                ath_dbg(common, ATH_DBG_CONFIG, 
     247                        "Set power: %d\n", conf->power_level); 
     248                sc->config.txpowlimit = 2 * conf->power_level; 
     249-               ath9k_ps_wakeup(sc); 
     250                ath9k_cmn_update_txpow(ah, sc->curtxpow, 
     251                                       sc->config.txpowlimit, &sc->curtxpow); 
     252-               ath9k_ps_restore(sc); 
     253-       } 
     254- 
     255-       if (disable_radio) { 
     256-               ath_dbg(common, ATH_DBG_CONFIG, "idle: disabling radio\n"); 
     257-               ath_radio_disable(sc, hw); 
     258        } 
     259  
     260        mutex_unlock(&sc->mutex); 
     261+       ath9k_ps_restore(sc); 
     262  
     263        return 0; 
     264 } 
     265@@ -2324,9 +2271,6 @@ static void ath9k_flush(struct ieee80211 
     266                return; 
     267        } 
     268  
     269-       if (drop) 
     270-               timeout = 1; 
     271- 
     272        for (j = 0; j < timeout; j++) { 
     273                bool npend = false; 
     274  
     275@@ -2344,21 +2288,22 @@ static void ath9k_flush(struct ieee80211 
     276                } 
     277  
     278                if (!npend) 
     279-                   goto out; 
     280+                   break; 
     281        } 
     282  
     283-       ath9k_ps_wakeup(sc); 
     284-       spin_lock_bh(&sc->sc_pcu_lock); 
     285-       drain_txq = ath_drain_all_txq(sc, false); 
     286-       spin_unlock_bh(&sc->sc_pcu_lock); 
     287+       if (drop) { 
     288+               ath9k_ps_wakeup(sc); 
     289+               spin_lock_bh(&sc->sc_pcu_lock); 
     290+               drain_txq = ath_drain_all_txq(sc, false); 
     291+               spin_unlock_bh(&sc->sc_pcu_lock); 
     292  
     293-       if (!drain_txq) 
     294-               ath_reset(sc, false); 
     295+               if (!drain_txq) 
     296+                       ath_reset(sc, false); 
     297  
     298-       ath9k_ps_restore(sc); 
     299-       ieee80211_wake_queues(hw); 
     300+               ath9k_ps_restore(sc); 
     301+               ieee80211_wake_queues(hw); 
     302+       } 
     303  
     304-out: 
     305        ieee80211_queue_delayed_work(hw, &sc->tx_complete_work, 0); 
     306        mutex_unlock(&sc->mutex); 
     307 } 
     308--- a/drivers/net/wireless/ath/ath9k/pci.c 
     309+++ b/drivers/net/wireless/ath/ath9k/pci.c 
     310@@ -307,12 +307,11 @@ static int ath_pci_suspend(struct device 
     311        struct ieee80211_hw *hw = pci_get_drvdata(pdev); 
     312        struct ath_softc *sc = hw->priv; 
     313  
     314-       ath9k_hw_set_gpio(sc->sc_ah, sc->sc_ah->led_pin, 1); 
     315- 
     316        /* The device has to be moved to FULLSLEEP forcibly. 
     317         * Otherwise the chip never moved to full sleep, 
     318         * when no interface is up. 
     319         */ 
     320+       ath9k_hw_disable(sc->sc_ah); 
     321        ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_FULL_SLEEP); 
     322  
     323        return 0; 
     324@@ -334,22 +333,6 @@ static int ath_pci_resume(struct device  
     325        if ((val & 0x0000ff00) != 0) 
     326                pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); 
     327  
     328-       ath9k_ps_wakeup(sc); 
     329-       /* Enable LED */ 
     330-       ath9k_hw_cfg_output(sc->sc_ah, sc->sc_ah->led_pin, 
     331-                           AR_GPIO_OUTPUT_MUX_AS_OUTPUT); 
     332-       ath9k_hw_set_gpio(sc->sc_ah, sc->sc_ah->led_pin, 0); 
     333- 
     334-         /* 
     335-          * Reset key cache to sane defaults (all entries cleared) instead of 
     336-          * semi-random values after suspend/resume. 
     337-          */ 
     338-       ath9k_cmn_init_crypto(sc->sc_ah); 
     339-       ath9k_ps_restore(sc); 
     340- 
     341-       sc->ps_idle = true; 
     342-       ath_radio_disable(sc, hw); 
     343- 
     344        return 0; 
     345 } 
     346  
     347--- a/drivers/net/wireless/ath/ath9k/xmit.c 
     348+++ b/drivers/net/wireless/ath/ath9k/xmit.c 
     349@@ -1955,7 +1955,7 @@ static void ath_tx_complete(struct ath_s 
     350                skb_pull(skb, padsize); 
     351        } 
     352  
     353-       if (sc->ps_flags & PS_WAIT_FOR_TX_ACK) { 
     354+       if ((sc->ps_flags & PS_WAIT_FOR_TX_ACK) && !txq->axq_depth) { 
     355                sc->ps_flags &= ~PS_WAIT_FOR_TX_ACK; 
     356                ath_dbg(common, ATH_DBG_PS, 
     357                        "Going back to sleep after having received TX status (0x%lx)\n", 
    1358--- a/include/net/cfg80211.h 
    2359+++ b/include/net/cfg80211.h 
    3 @@ -1122,6 +1122,7 @@ struct cfg80211_ibss_params { 
     360@@ -1130,6 +1130,7 @@ struct cfg80211_ibss_params { 
    4361        u8 *ssid; 
    5362        u8 *bssid; 
     
    9366        u8 ssid_len, ie_len; 
    10367        u16 beacon_interval; 
    11 @@ -3188,6 +3189,16 @@ void cfg80211_gtk_rekey_notify(struct ne 
    12  void cfg80211_pmksa_candidate_notify(struct net_device *dev, int index, 
    13                                      const u8 *bssid, bool preauth, gfp_t gfp); 
     368@@ -3292,6 +3293,16 @@ void cfg80211_report_obss_beacon(struct  
     369                                 const u8 *frame, size_t len, 
     370                                 int freq, gfp_t gfp); 
    14371  
    15372+/** 
     
    28385--- a/net/mac80211/agg-rx.c 
    29386+++ b/net/mac80211/agg-rx.c 
    30 @@ -180,6 +180,10 @@ static void ieee80211_send_addba_resp(st 
     387@@ -182,6 +182,10 @@ static void ieee80211_send_addba_resp(st 
    31388                memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); 
    32389        else if (sdata->vif.type == NL80211_IFTYPE_STATION) 
     
    41398--- a/net/mac80211/agg-tx.c 
    42399+++ b/net/mac80211/agg-tx.c 
    43 @@ -77,10 +77,13 @@ static void ieee80211_send_addba_request 
    44         memcpy(mgmt->da, da, ETH_ALEN); 
     400@@ -79,10 +79,13 @@ static void ieee80211_send_addba_request 
    45401        memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); 
    46402        if (sdata->vif.type == NL80211_IFTYPE_AP || 
    47 -           sdata->vif.type == NL80211_IFTYPE_AP_VLAN) 
    48 +           sdata->vif.type == NL80211_IFTYPE_AP_VLAN || 
     403            sdata->vif.type == NL80211_IFTYPE_AP_VLAN || 
     404-           sdata->vif.type == NL80211_IFTYPE_MESH_POINT) 
     405+           sdata->vif.type == NL80211_IFTYPE_MESH_POINT || 
    49406+           sdata->vif.type == NL80211_IFTYPE_WDS) 
    50407                memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); 
     
    56413        mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 
    57414                                          IEEE80211_STYPE_ACTION); 
    58 @@ -397,7 +400,9 @@ int ieee80211_start_tx_ba_session(struct 
    59          */ 
     415@@ -394,7 +397,9 @@ int ieee80211_start_tx_ba_session(struct 
    60416        if (sdata->vif.type != NL80211_IFTYPE_STATION && 
     417            sdata->vif.type != NL80211_IFTYPE_MESH_POINT && 
    61418            sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
    62419-           sdata->vif.type != NL80211_IFTYPE_AP) 
     
    85442--- a/net/mac80211/ht.c 
    86443+++ b/net/mac80211/ht.c 
    87 @@ -199,6 +199,8 @@ void ieee80211_send_delba(struct ieee802 
     444@@ -201,6 +201,8 @@ void ieee80211_send_delba(struct ieee802 
    88445                memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); 
    89446        else if (sdata->vif.type == NL80211_IFTYPE_STATION) 
     
    104461        lockdep_assert_held(&ifibss->mtx); 
    105462  
    106 @@ -104,8 +105,16 @@ static void __ieee80211_sta_join_ibss(st 
     463@@ -105,8 +106,16 @@ static void __ieee80211_sta_join_ibss(st 
    107464  
    108465        sdata->drop_unencrypted = capability & WLAN_CAPABILITY_PRIVACY ? 1 : 0; 
     
    123480  
    124481        sband = local->hw.wiphy->bands[chan->band]; 
    125 @@ -171,6 +180,18 @@ static void __ieee80211_sta_join_ibss(st 
     482@@ -172,6 +181,18 @@ static void __ieee80211_sta_join_ibss(st 
    126483                memcpy(skb_put(skb, ifibss->ie_len), 
    127484                       ifibss->ie, ifibss->ie_len); 
     
    142499                pos = skb_put(skb, 9); 
    143500                *pos++ = WLAN_EID_VENDOR_SPECIFIC; 
    144 @@ -194,6 +215,7 @@ static void __ieee80211_sta_join_ibss(st 
     501@@ -195,6 +216,7 @@ static void __ieee80211_sta_join_ibss(st 
    145502        bss_change |= BSS_CHANGED_BEACON; 
    146503        bss_change |= BSS_CHANGED_BEACON_ENABLED; 
     
    150507        sdata->vif.bss_conf.ibss_joined = true; 
    151508        ieee80211_bss_info_change_notify(sdata, bss_change); 
    152 @@ -266,6 +288,7 @@ static void ieee80211_rx_bss_info(struct 
     509@@ -268,6 +290,7 @@ static void ieee80211_rx_bss_info(struct 
    153510        u64 beacon_timestamp, rx_timestamp; 
    154511        u32 supp_rates = 0; 
     
    158515        if (elems->ds_params && elems->ds_params_len == 1) 
    159516                freq = ieee80211_channel_to_frequency(elems->ds_params[0], 
    160 @@ -275,7 +298,10 @@ static void ieee80211_rx_bss_info(struct 
     517@@ -277,7 +300,10 @@ static void ieee80211_rx_bss_info(struct 
    161518  
    162519        channel = ieee80211_get_channel(local->hw.wiphy, freq); 
     
    170527  
    171528        if (sdata->vif.type == NL80211_IFTYPE_ADHOC && 
    172 @@ -313,8 +339,41 @@ static void ieee80211_rx_bss_info(struct 
     529@@ -315,8 +341,41 @@ static void ieee80211_rx_bss_info(struct 
    173530                                                GFP_ATOMIC); 
    174531                } 
     
    214571                rcu_read_unlock(); 
    215572        } 
    216 @@ -896,10 +955,15 @@ int ieee80211_ibss_join(struct ieee80211 
     573@@ -898,10 +957,15 @@ int ieee80211_ibss_join(struct ieee80211 
    217574        struct sk_buff *skb; 
    218575  
     
    234591        if (!skb) 
    235592                return -ENOMEM; 
    236 @@ -920,13 +984,15 @@ int ieee80211_ibss_join(struct ieee80211 
     593@@ -922,13 +986,15 @@ int ieee80211_ibss_join(struct ieee80211 
    237594        sdata->vif.bss_conf.beacon_int = params->beacon_interval; 
    238595  
     
    254611--- a/net/mac80211/ieee80211_i.h 
    255612+++ b/net/mac80211/ieee80211_i.h 
    256 @@ -465,6 +465,7 @@ struct ieee80211_if_ibss { 
     613@@ -470,6 +470,7 @@ struct ieee80211_if_ibss { 
    257614        u8 ssid_len, ie_len; 
    258615        u8 *ie; 
     
    262619        unsigned long ibss_join_req; 
    263620        /* probe response/beacon for IBSS */ 
    264 @@ -1339,6 +1340,12 @@ void ieee80211_recalc_smps(struct ieee80 
    265  size_t ieee80211_ie_split(const u8 *ies, size_t ielen, 
    266                           const u8 *ids, int n_ids, size_t offset); 
    267  size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); 
    268 +u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_supported_band *sband, 
    269 +                             u16 cap); 
    270 +u8 *ieee80211_ie_build_ht_info(u8 *pos, 
    271 +                               struct ieee80211_sta_ht_cap *ht_cap, 
    272 +                               struct ieee80211_channel *channel, 
    273 +                               enum nl80211_channel_type channel_type); 
    274   
    275  /* internal work items */ 
    276  void ieee80211_work_init(struct ieee80211_local *local); 
    277 @@ -1367,6 +1374,8 @@ ieee80211_get_channel_mode(struct ieee80 
    278  bool ieee80211_set_channel_type(struct ieee80211_local *local, 
    279                                 struct ieee80211_sub_if_data *sdata, 
    280                                 enum nl80211_channel_type chantype); 
    281 +enum nl80211_channel_type 
    282 +ieee80211_ht_info_to_channel_type(struct ieee80211_ht_info *ht_info); 
    283   
    284  #ifdef CONFIG_MAC80211_NOINLINE 
    285  #define debug_noinline noinline 
    286621--- a/net/mac80211/iface.c 
    287622+++ b/net/mac80211/iface.c 
     
    294629        int res; 
    295630        u32 hw_reconf_flags = 0; 
    296 @@ -290,27 +289,6 @@ static int ieee80211_do_open(struct net_ 
     631@@ -309,27 +308,6 @@ static int ieee80211_do_open(struct net_ 
    297632  
    298633        set_bit(SDATA_STATE_RUNNING, &sdata->state); 
     
    322657         * set_multicast_list will be invoked by the networking core 
    323658         * which will check whether any increments here were done in 
    324 @@ -344,8 +322,7 @@ static int ieee80211_do_open(struct net_ 
     659@@ -356,8 +334,7 @@ static int ieee80211_do_open(struct net_ 
    325660        netif_tx_start_all_queues(dev); 
    326661  
    327662        return 0; 
    328663- err_del_interface: 
    329 -       drv_remove_interface(local, &sdata->vif); 
     664-       drv_remove_interface(local, sdata); 
    330665+ 
    331666  err_stop: 
    332667        if (!local->open_count) 
    333668                drv_stop(local); 
    334 @@ -716,6 +693,70 @@ static void ieee80211_if_setup(struct ne 
     669@@ -732,6 +709,70 @@ static void ieee80211_if_setup(struct ne 
    335670        dev->destructor = free_netdev; 
    336671 } 
     
    403738 { 
    404739        struct ieee80211_sub_if_data *sdata = 
    405 @@ -820,6 +861,9 @@ static void ieee80211_iface_work(struct  
     740@@ -836,6 +877,9 @@ static void ieee80211_iface_work(struct  
    406741                                break; 
    407742                        ieee80211_mesh_rx_queued_mgmt(sdata, skb); 
     
    413748                        WARN(1, "frame for unexpected interface type"); 
    414749                        break; 
     750--- a/net/mac80211/mlme.c 
     751+++ b/net/mac80211/mlme.c 
     752@@ -1359,9 +1359,6 @@ static void __ieee80211_connection_loss( 
     753        ieee80211_set_disassoc(sdata, true, true); 
     754        mutex_unlock(&ifmgd->mtx); 
     755  
     756-       mutex_lock(&local->mtx); 
     757-       ieee80211_recalc_idle(local); 
     758-       mutex_unlock(&local->mtx); 
     759        /* 
     760         * must be outside lock due to cfg80211, 
     761         * but that's not a problem. 
     762@@ -1370,6 +1367,10 @@ static void __ieee80211_connection_loss( 
     763                                       IEEE80211_STYPE_DEAUTH, 
     764                                       WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY, 
     765                                       NULL, true); 
     766+ 
     767+       mutex_lock(&local->mtx); 
     768+       ieee80211_recalc_idle(local); 
     769+       mutex_unlock(&local->mtx); 
     770 } 
     771  
     772 void ieee80211_beacon_connection_loss_work(struct work_struct *work) 
     773@@ -2136,9 +2137,6 @@ static void ieee80211_sta_connection_los 
     774  
     775        ieee80211_set_disassoc(sdata, true, true); 
     776        mutex_unlock(&ifmgd->mtx); 
     777-       mutex_lock(&local->mtx); 
     778-       ieee80211_recalc_idle(local); 
     779-       mutex_unlock(&local->mtx); 
     780        /* 
     781         * must be outside lock due to cfg80211, 
     782         * but that's not a problem. 
     783@@ -2146,6 +2144,11 @@ static void ieee80211_sta_connection_los 
     784        ieee80211_send_deauth_disassoc(sdata, bssid, 
     785                        IEEE80211_STYPE_DEAUTH, reason, 
     786                        NULL, true); 
     787+ 
     788+       mutex_lock(&local->mtx); 
     789+       ieee80211_recalc_idle(local); 
     790+       mutex_unlock(&local->mtx); 
     791+ 
     792        mutex_lock(&ifmgd->mtx); 
     793 } 
     794  
     795--- a/net/mac80211/offchannel.c 
     796+++ b/net/mac80211/offchannel.c 
     797@@ -212,8 +212,6 @@ static void ieee80211_hw_roc_start(struc 
     798                return; 
     799        } 
     800  
     801-       ieee80211_recalc_idle(local); 
     802- 
     803        if (local->hw_roc_skb) { 
     804                sdata = IEEE80211_DEV_TO_SUB_IF(local->hw_roc_dev); 
     805                ieee80211_tx_skb(sdata, local->hw_roc_skb); 
     806@@ -227,6 +225,8 @@ static void ieee80211_hw_roc_start(struc 
     807                                          GFP_KERNEL); 
     808        } 
     809  
     810+       ieee80211_recalc_idle(local); 
     811+ 
     812        mutex_unlock(&local->mtx); 
     813 } 
     814  
    415815--- a/net/mac80211/rx.c 
    416816+++ b/net/mac80211/rx.c 
    417 @@ -2211,7 +2211,9 @@ ieee80211_rx_h_action(struct ieee80211_r 
    418                  */ 
     817@@ -2250,7 +2250,9 @@ ieee80211_rx_h_action(struct ieee80211_r 
    419818                if (sdata->vif.type != NL80211_IFTYPE_STATION && 
     819                    sdata->vif.type != NL80211_IFTYPE_MESH_POINT && 
    420820                    sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
    421821-                   sdata->vif.type != NL80211_IFTYPE_AP) 
     
    426826  
    427827                /* verify action_code is present */ 
    428 @@ -2426,13 +2428,14 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
     828@@ -2465,13 +2467,14 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
    429829  
    430830        if (!ieee80211_vif_is_mesh(&sdata->vif) && 
     
    443843        case cpu_to_le16(IEEE80211_STYPE_DEAUTH): 
    444844        case cpu_to_le16(IEEE80211_STYPE_DISASSOC): 
    445 @@ -2775,10 +2778,16 @@ static int prepare_for_handlers(struct i 
     845@@ -2818,10 +2821,16 @@ static int prepare_for_handlers(struct i 
    446846                } 
    447847                break; 
     
    472872  *     IEEE80211_TX_CTL_CLEAR_PS_FILT control flag) when the next 
    473873  *     frame to this station is transmitted. 
    474 @@ -61,7 +60,6 @@ enum ieee80211_sta_info_flags { 
     874@@ -62,7 +61,6 @@ enum ieee80211_sta_info_flags { 
    475875        WLAN_STA_SHORT_PREAMBLE, 
    476876        WLAN_STA_ASSOC_AP, 
     
    480880        WLAN_STA_MFP, 
    481881        WLAN_STA_BLOCK_BA, 
    482 --- a/net/mac80211/util.c 
    483 +++ b/net/mac80211/util.c 
    484 @@ -836,23 +836,8 @@ int ieee80211_build_preq_ies(struct ieee 
    485                 offset = noffset; 
    486         } 
    487   
    488 -       if (sband->ht_cap.ht_supported) { 
    489 -               u16 cap = sband->ht_cap.cap; 
    490 -               __le16 tmp; 
    491 - 
    492 -               *pos++ = WLAN_EID_HT_CAPABILITY; 
    493 -               *pos++ = sizeof(struct ieee80211_ht_cap); 
    494 -               memset(pos, 0, sizeof(struct ieee80211_ht_cap)); 
    495 -               tmp = cpu_to_le16(cap); 
    496 -               memcpy(pos, &tmp, sizeof(u16)); 
    497 -               pos += sizeof(u16); 
    498 -               *pos++ = sband->ht_cap.ampdu_factor | 
    499 -                        (sband->ht_cap.ampdu_density << 
    500 -                               IEEE80211_HT_AMPDU_PARM_DENSITY_SHIFT); 
    501 -               memcpy(pos, &sband->ht_cap.mcs, sizeof(sband->ht_cap.mcs)); 
    502 -               pos += sizeof(sband->ht_cap.mcs); 
    503 -               pos += 2 + 4 + 1; /* ext info, BF cap, antsel */ 
    504 -       } 
    505 +       if (sband->ht_cap.ht_supported) 
    506 +               pos = ieee80211_ie_build_ht_cap(pos, sband, sband->ht_cap.cap); 
    507   
    508         /* 
    509          * If adding more here, adjust code in main.c 
    510 @@ -1443,3 +1428,100 @@ int ieee80211_add_ext_srates_ie(struct i 
    511         } 
    512         return 0; 
    513  } 
    514 + 
    515 +u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_supported_band *sband, 
    516 +                             u16 cap) 
    517 +{ 
    518 +       __le16 tmp; 
    519 + 
    520 +       *pos++ = WLAN_EID_HT_CAPABILITY; 
    521 +       *pos++ = sizeof(struct ieee80211_ht_cap); 
    522 +       memset(pos, 0, sizeof(struct ieee80211_ht_cap)); 
    523 + 
    524 +       /* capability flags */ 
    525 +       tmp = cpu_to_le16(cap); 
    526 +       memcpy(pos, &tmp, sizeof(u16)); 
    527 +       pos += sizeof(u16); 
    528 + 
    529 +       /* AMPDU parameters */ 
    530 +       *pos++ = sband->ht_cap.ampdu_factor | 
    531 +                (sband->ht_cap.ampdu_density << 
    532 +                       IEEE80211_HT_AMPDU_PARM_DENSITY_SHIFT); 
    533 + 
    534 +       /* MCS set */ 
    535 +       memcpy(pos, &sband->ht_cap.mcs, sizeof(sband->ht_cap.mcs)); 
    536 +       pos += sizeof(sband->ht_cap.mcs); 
    537 + 
    538 +       /* extended capabilities */ 
    539 +       pos += sizeof(__le16); 
    540 + 
    541 +       /* BF capabilities */ 
    542 +       pos += sizeof(__le32); 
    543 + 
    544 +       /* antenna selection */ 
    545 +       pos += sizeof(u8); 
    546 + 
    547 +       return pos; 
    548 +} 
    549 + 
    550 +u8 *ieee80211_ie_build_ht_info(u8 *pos, 
    551 +                              struct ieee80211_sta_ht_cap *ht_cap, 
    552 +                              struct ieee80211_channel *channel, 
    553 +                              enum nl80211_channel_type channel_type) 
    554 +{ 
    555 +       struct ieee80211_ht_info *ht_info; 
    556 +       /* Build HT Information */ 
    557 +       *pos++ = WLAN_EID_HT_INFORMATION; 
    558 +       *pos++ = sizeof(struct ieee80211_ht_info); 
    559 +       ht_info = (struct ieee80211_ht_info *)pos; 
    560 +       ht_info->control_chan = 
    561 +                       ieee80211_frequency_to_channel(channel->center_freq); 
    562 +       switch (channel_type) { 
    563 +       case NL80211_CHAN_HT40MINUS: 
    564 +               ht_info->ht_param = IEEE80211_HT_PARAM_CHA_SEC_BELOW; 
    565 +               break; 
    566 +       case NL80211_CHAN_HT40PLUS: 
    567 +               ht_info->ht_param = IEEE80211_HT_PARAM_CHA_SEC_ABOVE; 
    568 +               break; 
    569 +       case NL80211_CHAN_HT20: 
    570 +       default: 
    571 +               ht_info->ht_param = IEEE80211_HT_PARAM_CHA_SEC_NONE; 
    572 +               break; 
    573 +       } 
    574 +       if (ht_cap->cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) 
    575 +               ht_info->ht_param |= IEEE80211_HT_PARAM_CHAN_WIDTH_ANY; 
    576 +       ht_info->operation_mode = 0x0000; 
    577 +       ht_info->stbc_param = 0x0000; 
    578 + 
    579 +       /* It seems that Basic MCS set and Supported MCS set 
    580 +          are identical for the first 10 bytes */ 
    581 +       memset(&ht_info->basic_set, 0, 16); 
    582 +       memcpy(&ht_info->basic_set, &ht_cap->mcs, 10); 
    583 + 
    584 +       return pos + sizeof(struct ieee80211_ht_info); 
    585 +} 
    586 + 
    587 +enum nl80211_channel_type 
    588 +ieee80211_ht_info_to_channel_type(struct ieee80211_ht_info *ht_info) 
    589 +{ 
    590 +       enum nl80211_channel_type channel_type; 
    591 + 
    592 +       if (!ht_info) 
    593 +               return NL80211_CHAN_NO_HT; 
    594 + 
    595 +       switch (ht_info->ht_param & IEEE80211_HT_PARAM_CHA_SEC_OFFSET) { 
    596 +       case IEEE80211_HT_PARAM_CHA_SEC_NONE: 
    597 +               channel_type = NL80211_CHAN_HT20; 
    598 +               break; 
    599 +       case IEEE80211_HT_PARAM_CHA_SEC_ABOVE: 
    600 +               channel_type = NL80211_CHAN_HT40PLUS; 
    601 +               break; 
    602 +       case IEEE80211_HT_PARAM_CHA_SEC_BELOW: 
    603 +               channel_type = NL80211_CHAN_HT40MINUS; 
    604 +               break; 
    605 +       default: 
    606 +               channel_type = NL80211_CHAN_NO_HT; 
    607 +       } 
    608 + 
    609 +       return channel_type; 
    610 +} 
    611 --- a/net/mac80211/work.c 
    612 +++ b/net/mac80211/work.c 
    613 @@ -118,7 +118,6 @@ static void ieee80211_add_ht_ie(struct s 
    614         u8 *pos; 
    615         u32 flags = channel->flags; 
    616         u16 cap = sband->ht_cap.cap; 
    617 -       __le16 tmp; 
    618   
    619         if (!sband->ht_cap.ht_supported) 
    620                 return; 
    621 @@ -169,34 +168,8 @@ static void ieee80211_add_ht_ie(struct s 
    622         } 
    623   
    624         /* reserve and fill IE */ 
    625 - 
    626         pos = skb_put(skb, sizeof(struct ieee80211_ht_cap) + 2); 
    627 -       *pos++ = WLAN_EID_HT_CAPABILITY; 
    628 -       *pos++ = sizeof(struct ieee80211_ht_cap); 
    629 -       memset(pos, 0, sizeof(struct ieee80211_ht_cap)); 
    630 - 
    631 -       /* capability flags */ 
    632 -       tmp = cpu_to_le16(cap); 
    633 -       memcpy(pos, &tmp, sizeof(u16)); 
    634 -       pos += sizeof(u16); 
    635 - 
    636 -       /* AMPDU parameters */ 
    637 -       *pos++ = sband->ht_cap.ampdu_factor | 
    638 -                (sband->ht_cap.ampdu_density << 
    639 -                       IEEE80211_HT_AMPDU_PARM_DENSITY_SHIFT); 
    640 - 
    641 -       /* MCS set */ 
    642 -       memcpy(pos, &sband->ht_cap.mcs, sizeof(sband->ht_cap.mcs)); 
    643 -       pos += sizeof(sband->ht_cap.mcs); 
    644 - 
    645 -       /* extended capabilities */ 
    646 -       pos += sizeof(__le16); 
    647 - 
    648 -       /* BF capabilities */ 
    649 -       pos += sizeof(__le32); 
    650 - 
    651 -       /* antenna selection */ 
    652 -       pos += sizeof(u8); 
    653 +       ieee80211_ie_build_ht_cap(pos, sband, cap); 
    654  } 
    655   
    656  static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata, 
    657882--- a/net/wireless/chan.c 
    658883+++ b/net/wireless/chan.c 
     
    691916--- a/net/wireless/nl80211.c 
    692917+++ b/net/wireless/nl80211.c 
    693 @@ -4574,13 +4574,34 @@ static int nl80211_join_ibss(struct sk_b 
     918@@ -4604,13 +4604,34 @@ static int nl80211_join_ibss(struct sk_b 
    694919                ibss.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]); 
    695920        } 
  • trunk/package/mac80211/patches/402-ath9k_blink_default.patch

    r27958 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/init.c 
    22+++ b/drivers/net/wireless/ath/ath9k/init.c 
    3 @@ -35,7 +35,7 @@ int ath9k_modparam_nohwcrypt; 
     3@@ -36,7 +36,7 @@ int ath9k_modparam_nohwcrypt; 
    44 module_param_named(nohwcrypt, ath9k_modparam_nohwcrypt, int, 0444); 
    55 MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption"); 
  • trunk/package/mac80211/patches/403-ath9k-fix-invalid-mac-address-handling.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/hw.c 
    22+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    3 @@ -16,6 +16,7 @@ 
    4   
     3@@ -17,6 +17,7 @@ 
    54 #include <linux/io.h> 
    65 #include <linux/slab.h> 
     6 #include <linux/module.h> 
    77+#include <linux/etherdevice.h> 
    88 #include <asm/unaligned.h> 
    99  
    1010 #include "hw.h" 
    11 @@ -464,8 +465,16 @@ static int ath9k_hw_init_macaddr(struct  
     11@@ -465,8 +466,16 @@ static int ath9k_hw_init_macaddr(struct  
    1212                common->macaddr[2 * i] = eeval >> 8; 
    1313                common->macaddr[2 * i + 1] = eeval & 0xff; 
  • trunk/package/mac80211/patches/404-ath_regd_optional.patch

    r26744 r29240  
    11--- a/drivers/net/wireless/ath/regd.c 
    22+++ b/drivers/net/wireless/ath/regd.c 
    3 @@ -193,6 +193,10 @@ ath_reg_apply_beaconing_flags(struct wip 
     3@@ -194,6 +194,10 @@ ath_reg_apply_beaconing_flags(struct wip 
    44        u32 bandwidth = 0; 
    55        int r; 
     
    1212  
    1313                if (!wiphy->bands[band]) 
    14 @@ -252,6 +256,10 @@ ath_reg_apply_active_scan_flags(struct w 
     14@@ -253,6 +257,10 @@ ath_reg_apply_active_scan_flags(struct w 
    1515        u32 bandwidth = 0; 
    1616        int r; 
     
    2121+ 
    2222        sband = wiphy->bands[IEEE80211_BAND_2GHZ]; 
    23   
    24         /* 
    25 @@ -299,6 +307,10 @@ static void ath_reg_apply_radar_flags(st 
     23        if (!sband) 
     24                return; 
     25@@ -302,6 +310,10 @@ static void ath_reg_apply_radar_flags(st 
    2626        struct ieee80211_channel *ch; 
    2727        unsigned int i; 
     
    3434                return; 
    3535  
    36 @@ -466,6 +478,10 @@ ath_regd_init_wiphy(struct ath_regulator 
     36@@ -469,6 +481,10 @@ ath_regd_init_wiphy(struct ath_regulator 
    3737 { 
    3838        const struct ieee80211_regdomain *regd; 
  • trunk/package/mac80211/patches/405-world_regd_fixup.patch

    r26744 r29240  
    11--- a/drivers/net/wireless/ath/regd.c 
    22+++ b/drivers/net/wireless/ath/regd.c 
    3 @@ -37,7 +37,8 @@ 
     3@@ -38,7 +38,8 @@ 
    44                                NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_OFDM) 
    55  
     
    1111 #define ATH9K_5GHZ_5470_5850   REG_RULE(5470-10, 5850+10, 40, 0, 30,\ 
    1212                                NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) 
    13 @@ -55,57 +56,56 @@ 
     13@@ -56,57 +57,56 @@ 
    1414 #define ATH9K_5GHZ_NO_MIDBAND  ATH9K_5GHZ_5150_5350, \ 
    1515                                ATH9K_5GHZ_5725_5850 
  • trunk/package/mac80211/patches/406-regd_no_assoc_hints.patch

    r28392 r29240  
    11--- a/net/wireless/reg.c 
    22+++ b/net/wireless/reg.c 
    3 @@ -1654,6 +1654,8 @@ void regulatory_hint_11d(struct wiphy *w 
     3@@ -1656,6 +1656,8 @@ void regulatory_hint_11d(struct wiphy *w 
    44        enum environment_cap env = ENVIRON_ANY; 
    55        struct regulatory_request *request; 
     
    1010  
    1111        if (unlikely(!last_request)) 
    12 @@ -1860,6 +1862,8 @@ static void restore_regulatory_settings( 
     12@@ -1862,6 +1864,8 @@ static void restore_regulatory_settings( 
    1313  
    1414 void regulatory_hint_disconnect(void) 
  • trunk/package/mac80211/patches/410-ath9k_allow_adhoc_and_ap.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/main.c 
    22+++ b/drivers/net/wireless/ath/ath9k/main.c 
    3 @@ -1486,15 +1486,6 @@ static int ath9k_add_interface(struct ie 
     3@@ -1448,15 +1448,6 @@ static int ath9k_add_interface(struct ie 
    44                } 
    55        } 
     
    1717                "Attach a VIF of type: %d\n", vif->type); 
    1818  
    19 @@ -1520,15 +1511,6 @@ static int ath9k_change_interface(struct 
     19@@ -1482,15 +1473,6 @@ static int ath9k_change_interface(struct 
    2020        mutex_lock(&sc->mutex); 
    2121        ath9k_ps_wakeup(sc); 
  • trunk/package/mac80211/patches/500-ath9k_eeprom_debugfs.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/debug.c 
    22+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    3 @@ -1610,6 +1610,53 @@ static const struct file_operations fops 
     3@@ -1616,6 +1616,53 @@ static const struct file_operations fops 
    44 }; 
    55  
     
    5555 { 
    5656        struct ath_common *common = ath9k_hw_common(ah); 
    57 @@ -1668,6 +1715,9 @@ int ath9k_init_debug(struct ath_hw *ah) 
     57@@ -1674,6 +1721,9 @@ int ath9k_init_debug(struct ath_hw *ah) 
    5858        debugfs_create_u32("gpio_val", S_IRUSR | S_IWUSR, 
    5959                           sc->debug.debugfs_phy, &sc->sc_ah->gpio_val); 
  • trunk/package/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/hw.c 
    22+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    3 @@ -1714,8 +1714,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
     3@@ -1715,8 +1715,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
    44        REG_WRITE(ah, AR_OBS, 8); 
    55  
  • trunk/package/mac80211/patches/511-ath9k_increase_bcbuf.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/ath9k.h 
    22+++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
    3 @@ -364,7 +364,7 @@ struct ath_vif { 
     3@@ -366,7 +366,7 @@ struct ath_vif { 
    44  * number of beacon intervals, the game's up. 
    55  */ 
     
    1212--- a/drivers/net/wireless/ath/ath9k/hw.c 
    1313+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    14 @@ -387,8 +387,8 @@ static void ath9k_hw_init_config(struct  
     14@@ -388,8 +388,8 @@ static void ath9k_hw_init_config(struct  
    1515 { 
    1616        int i; 
  • trunk/package/mac80211/patches/512-ath9k_reduce_rxbuf.patch

    r28245 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/ath9k.h 
    22+++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
    3 @@ -120,7 +120,7 @@ void ath_descdma_cleanup(struct ath_soft 
     3@@ -121,7 +121,7 @@ void ath_descdma_cleanup(struct ath_soft 
    44 /* RX / TX */ 
    55 /***********/ 
  • trunk/package/mac80211/patches/513-ath9k_channelbw_debugfs.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/ath9k.h 
    22+++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
    3 @@ -587,6 +587,7 @@ struct ath_softc { 
     3@@ -591,6 +591,7 @@ struct ath_softc { 
    44        struct ieee80211_hw *hw; 
    55        struct device *dev; 
     
    1111--- a/drivers/net/wireless/ath/ath9k/debug.c 
    1212+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    13 @@ -1718,6 +1718,9 @@ int ath9k_init_debug(struct ath_hw *ah) 
     13@@ -1724,6 +1724,9 @@ int ath9k_init_debug(struct ath_hw *ah) 
    1414        debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc, 
    1515                            &fops_eeprom); 
     
    2323--- a/drivers/net/wireless/ath/ath9k/main.c 
    2424+++ b/drivers/net/wireless/ath/ath9k/main.c 
    25 @@ -1649,9 +1649,10 @@ static int ath9k_config(struct ieee80211 
     25@@ -1606,9 +1606,10 @@ static int ath9k_config(struct ieee80211 
    2626  
    2727        if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { 
     
    3535  
    3636                if (ah->curchan) 
    37 @@ -1704,7 +1705,23 @@ static int ath9k_config(struct ieee80211 
     37@@ -1661,7 +1662,23 @@ static int ath9k_config(struct ieee80211 
    3838                        memset(&sc->survey[pos], 0, sizeof(struct survey_info)); 
    3939                } 
     
    6262--- a/drivers/net/wireless/ath/ath9k/hw.c 
    6363+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    64 @@ -1548,6 +1548,10 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
     64@@ -1549,6 +1549,10 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
    6565            caldata->rtt_hist.num_readings) 
    6666                allow_fbs = true; 
  • trunk/package/mac80211/patches/521-mac80211_ht_change_rate_update.patch

    r27071 r29240  
    11--- a/net/mac80211/main.c 
    22+++ b/net/mac80211/main.c 
    3 @@ -239,7 +239,9 @@ void ieee80211_bss_info_change_notify(st 
     3@@ -237,7 +237,9 @@ void ieee80211_bss_info_change_notify(st 
    44                                      u32 changed) 
    55 { 
     
    1111        if (!changed) 
    1212                return; 
    13 @@ -269,6 +271,22 @@ void ieee80211_bss_info_change_notify(st 
     13@@ -267,6 +269,22 @@ void ieee80211_bss_info_change_notify(st 
    1414  
    1515        switch (sdata->vif.type) { 
  • trunk/package/mac80211/patches/522-mac80211_reduce_txqueuelen.patch

    r28392 r29240  
    11--- a/net/mac80211/iface.c 
    22+++ b/net/mac80211/iface.c 
    3 @@ -683,6 +683,7 @@ static const struct net_device_ops ieee8 
     3@@ -699,6 +699,7 @@ static const struct net_device_ops ieee8 
    44 static void ieee80211_if_setup(struct net_device *dev) 
    55 { 
  • trunk/package/mac80211/patches/530-mac80211_cur_txpower.patch

    r28711 r29240  
    11--- a/include/net/mac80211.h 
    22+++ b/include/net/mac80211.h 
    3 @@ -815,7 +815,7 @@ enum ieee80211_smps_mode { 
     3@@ -816,7 +816,7 @@ enum ieee80211_smps_mode { 
    44  */ 
    55 struct ieee80211_conf { 
     
    1212--- a/net/mac80211/cfg.c 
    1313+++ b/net/mac80211/cfg.c 
    14 @@ -1615,7 +1615,7 @@ static int ieee80211_get_tx_power(struct 
     14@@ -1677,7 +1677,7 @@ static int ieee80211_get_tx_power(struct 
    1515 { 
    1616        struct ieee80211_local *local = wiphy_priv(wiphy); 
     
    2323--- a/net/mac80211/main.c 
    2424+++ b/net/mac80211/main.c 
    25 @@ -210,6 +210,7 @@ int ieee80211_hw_config(struct ieee80211 
     25@@ -208,6 +208,7 @@ int ieee80211_hw_config(struct ieee80211 
    2626  
    2727        if (local->hw.conf.power_level != power) { 
  • trunk/package/mac80211/patches/531-ath9k_cur_txpower.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/main.c 
    22+++ b/drivers/net/wireless/ath/ath9k/main.c 
    3 @@ -1727,6 +1727,8 @@ static int ath9k_config(struct ieee80211 
     3@@ -1684,6 +1684,8 @@ static int ath9k_config(struct ieee80211 
    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 @@ -1744,6 +1746,7 @@ static int ath9k_config(struct ieee80211 
     12@@ -1699,6 +1701,7 @@ static int ath9k_config(struct ieee80211 
     13                sc->config.txpowlimit = 2 * conf->power_level; 
    1314                ath9k_cmn_update_txpow(ah, sc->curtxpow, 
    1415                                       sc->config.txpowlimit, &sc->curtxpow); 
    15                 ath9k_ps_restore(sc); 
    1616+               conf->cur_power_level = sc->curtxpow / 2; 
    1717        } 
    1818  
    19         if (disable_radio) { 
     19        mutex_unlock(&sc->mutex); 
  • trunk/package/mac80211/patches/540-ath9k_limit_qlen.patch

    r28711 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/ath9k.h 
    22+++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
    3 @@ -237,6 +237,7 @@ struct ath_atx_tid { 
     3@@ -238,6 +238,7 @@ struct ath_atx_tid { 
    44        struct ath_node *an; 
    55        struct ath_atx_ac *ac; 
     
    99        u16 seq_next; 
    1010        u16 baw_size; 
    11 @@ -282,6 +283,9 @@ struct ath_tx_control { 
     11@@ -284,6 +285,9 @@ struct ath_tx_control { 
    1212  *  (axq_qnum). 
    1313  */ 
     
    2121--- a/drivers/net/wireless/ath/ath9k/debug.c 
    2222+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    23 @@ -1679,6 +1679,10 @@ int ath9k_init_debug(struct ath_hw *ah) 
     23@@ -1685,6 +1685,10 @@ int ath9k_init_debug(struct ath_hw *ah) 
    2424                            sc, &fops_wiphy); 
    2525        debugfs_create_file("xmit", S_IRUSR, sc->debug.debugfs_phy, sc, 
     
    5858                u16 seqno = bf->bf_state.seqno; 
    5959  
    60 @@ -821,6 +831,7 @@ static enum ATH_AGGR_STATUS ath_tx_form_ 
     60@@ -824,6 +834,7 @@ static enum ATH_AGGR_STATUS ath_tx_form_ 
    6161                        ath_tx_addto_baw(sc, tid, seqno); 
    6262                bf->bf_state.ndelim = ndelim; 
     
    6666                list_add_tail(&bf->list, bf_q); 
    6767                if (bf_prev) 
    68 @@ -1680,6 +1691,8 @@ static void ath_tx_send_ampdu(struct ath 
     68@@ -1683,6 +1694,8 @@ static void ath_tx_send_ampdu(struct ath 
    6969        /* Add sub-frame to BAW */ 
    7070        ath_tx_addto_baw(sc, tid, bf->bf_state.seqno); 
     
    7575        TX_STAT_INC(txctl->txq->axq_qnum, a_queued_hw); 
    7676        bf->bf_lastbf = bf; 
    77 @@ -1808,23 +1821,13 @@ error: 
     77@@ -1811,23 +1824,13 @@ error: 
    7878  
    7979 /* FIXME: tx power */ 
     
    101101        if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) && tid) { 
    102102                /* 
    103 @@ -1859,6 +1862,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
     103@@ -1862,6 +1865,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
    104104        struct ieee80211_vif *vif = info->control.vif; 
    105105        struct ath_softc *sc = hw->priv; 
     
    109109        int frmlen = skb->len + FCS_LEN; 
    110110        int q; 
    111 @@ -1901,6 +1905,24 @@ int ath_tx_start(struct ieee80211_hw *hw 
     111@@ -1904,6 +1908,24 @@ int ath_tx_start(struct ieee80211_hw *hw 
    112112  
    113113        setup_frame_info(hw, skb, frmlen); 
     
    134134         * At this point, the vif, hw_key and sta pointers in the tx control 
    135135         * info are no longer valid (overwritten by the ath_frame_info data. 
    136 @@ -1915,7 +1937,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
     136@@ -1918,7 +1940,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
    137137        } 
    138138        spin_unlock_bh(&txq->axq_lock); 
  • trunk/package/mac80211/patches/541-ath9k_sw_retry_reduce.patch

    r28392 r29240  
    5252--- a/drivers/net/wireless/ath/ath9k/ath9k.h 
    5353+++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
    54 @@ -542,7 +542,7 @@ struct ath_ant_comb { 
     54@@ -546,7 +546,7 @@ struct ath_ant_comb { 
    5555 #define DEFAULT_CACHELINE       32 
    5656 #define ATH_REGCLASSIDS_MAX     10 
  • trunk/package/mac80211/patches/542-ath9k_ar9280_cold_reset.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/hw.c 
    22+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    3 @@ -1381,10 +1381,16 @@ static bool ath9k_hw_set_reset_reg(struc 
     3@@ -1382,10 +1382,16 @@ static bool ath9k_hw_set_reset_reg(struc 
    44 static bool ath9k_hw_chip_reset(struct ath_hw *ah, 
    55                                struct ath9k_channel *chan) 
  • trunk/package/mac80211/patches/550-ath9k_debug_remove_packet_rssi.patch

    r28392 r29240  
    11--- a/drivers/net/wireless/ath/ath9k/debug.c 
    22+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    3 @@ -963,34 +963,6 @@ static ssize_t read_file_recv(struct fil 
     3@@ -969,34 +969,6 @@ static ssize_t read_file_recv(struct fil 
    44                        "%18s : %10u\n", "DECRYPT BUSY ERR", 
    55                        sc->debug.stats.rxstats.decrypt_busy_err); 
     
    3636        PHY_ERR("TIMING", ATH9K_PHYERR_TIMING); 
    3737        PHY_ERR("PARITY", ATH9K_PHYERR_PARITY); 
    38 @@ -1067,16 +1039,6 @@ void ath_debug_stat_rx(struct ath_softc  
     38@@ -1073,16 +1045,6 @@ void ath_debug_stat_rx(struct ath_softc  
    3939                RX_PHY_ERR_INC(phyerr); 
    4040        } 
  • trunk/package/mac80211/patches/551-ath9k_per_chain_signal_strength.patch

    r28711 r29240  
    11--- a/include/net/mac80211.h 
    22+++ b/include/net/mac80211.h 
    3 @@ -683,6 +683,9 @@ enum mac80211_rx_flags { 
     3@@ -684,6 +684,9 @@ enum mac80211_rx_flags { 
    44  * @mactime: value in microseconds of the 64-bit Time Synchronization Function 
    55  *     (TSF) timer when the first data symbol (MPDU) arrived at the hardware. 
     
    1111  * @signal: signal strength when receiving this frame, either in dBm, in dB or 
    1212  *     unspecified depending on the hardware capabilities flags 
    13 @@ -696,6 +699,10 @@ enum mac80211_rx_flags { 
     13@@ -697,6 +700,10 @@ enum mac80211_rx_flags { 
    1414 struct ieee80211_rx_status { 
    1515        u64 mactime; 
     
    2424--- a/net/mac80211/sta_info.h 
    2525+++ b/net/mac80211/sta_info.h 
    26 @@ -300,6 +300,11 @@ struct sta_info { 
     26@@ -302,6 +302,11 @@ struct sta_info { 
    2727        unsigned long rx_dropped; 
    2828        int last_signal; 
     
    3838--- a/net/mac80211/rx.c 
    3939+++ b/net/mac80211/rx.c 
    40 @@ -1244,6 +1244,7 @@ ieee80211_rx_h_sta_process(struct ieee80 
     40@@ -1267,6 +1267,7 @@ ieee80211_rx_h_sta_process(struct ieee80 
    4141        struct sk_buff *skb = rx->skb; 
    4242        struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); 
     
    4646        if (!sta) 
    4747                return RX_CONTINUE; 
    48 @@ -1286,6 +1287,19 @@ ieee80211_rx_h_sta_process(struct ieee80 
     48@@ -1309,6 +1310,19 @@ ieee80211_rx_h_sta_process(struct ieee80 
    4949        sta->last_signal = status->signal; 
    5050        ewma_add(&sta->avg_signal, -status->signal); 
     
    7979--- a/include/net/cfg80211.h 
    8080+++ b/include/net/cfg80211.h 
    81 @@ -498,6 +498,8 @@ struct station_parameters { 
     81@@ -505,6 +505,8 @@ struct station_parameters { 
    8282  * @STATION_INFO_CONNECTED_TIME: @connected_time filled 
    8383  * @STATION_INFO_ASSOC_REQ_IES: @assoc_req_ies filled 
     
    8888 enum station_info_flags { 
    8989        STATION_INFO_INACTIVE_TIME      = 1<<0, 
    90 @@ -518,7 +520,9 @@ enum station_info_flags { 
     90@@ -525,7 +527,9 @@ enum station_info_flags { 
    9191        STATION_INFO_BSS_PARAM          = 1<<15, 
    9292        STATION_INFO_CONNECTED_TIME     = 1<<16, 
     
    9999  
    100100 /** 
    101 @@ -598,6 +602,9 @@ struct sta_bss_parameters { 
     101@@ -605,6 +609,9 @@ struct sta_bss_parameters { 
    102102  * @plink_state: mesh peer link state 
    103103  * @signal: signal strength of last received packet in dBm 
     
    109109  * @rxrate: current unicast bitrate to this station 
    110110  * @rx_packets: packets received from this station 
    111 @@ -627,6 +634,11 @@ struct station_info { 
     111@@ -635,6 +642,11 @@ struct station_info { 
    112112        u8 plink_state; 
    113113        s8 signal; 
     
    190190--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    191191+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    192 @@ -451,12 +451,12 @@ int ath9k_hw_process_rxdesc_edma(struct  
     192@@ -452,12 +452,12 @@ int ath9k_hw_process_rxdesc_edma(struct  
    193193  
    194194        /* XXX: Keycache */ 
     
    211211--- a/drivers/net/wireless/ath/ath9k/mac.c 
    212212+++ b/drivers/net/wireless/ath/ath9k/mac.c 
    213 @@ -558,25 +558,25 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a 
     213@@ -559,25 +559,25 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a 
    214214  
    215215        if (ads.ds_rxstatus8 & AR_PostDelimCRCErr) { 
     
    251251--- a/drivers/net/wireless/ath/ath9k/debug.c 
    252252+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    253 @@ -1041,12 +1041,12 @@ void ath_debug_stat_rx(struct ath_softc  
     253@@ -1047,12 +1047,12 @@ void ath_debug_stat_rx(struct ath_softc  
    254254  
    255255        spin_lock(&sc->debug.samp_lock); 
     
    272272--- a/include/linux/nl80211.h 
    273273+++ b/include/linux/nl80211.h 
    274 @@ -1549,6 +1549,8 @@ enum nl80211_sta_bss_param { 
     274@@ -1621,6 +1621,8 @@ enum nl80211_sta_bss_param { 
    275275  *     containing info as possible, see &enum nl80211_sta_bss_param 
    276276  * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected 
     
    281281  * @NL80211_STA_INFO_MAX: highest possible station info attribute 
    282282  */ 
    283 @@ -1571,6 +1573,8 @@ enum nl80211_sta_info { 
     283@@ -1643,6 +1645,8 @@ enum nl80211_sta_info { 
    284284        NL80211_STA_INFO_BSS_PARAM, 
    285285        NL80211_STA_INFO_CONNECTED_TIME, 
     
    292292--- a/net/wireless/nl80211.c 
    293293+++ b/net/wireless/nl80211.c 
    294 @@ -2257,6 +2257,33 @@ nla_put_failure: 
     294@@ -2287,6 +2287,33 @@ nla_put_failure: 
    295295        return false; 
    296296 } 
     
    326326                                int flags, struct net_device *dev, 
    327327                                const u8 *mac_addr, struct station_info *sinfo) 
    328 @@ -2303,6 +2330,18 @@ static int nl80211_send_station(struct s 
     328@@ -2333,6 +2360,18 @@ static int nl80211_send_station(struct s 
    329329        if (sinfo->filled & STATION_INFO_SIGNAL_AVG) 
    330330                NLA_PUT_U8(msg, NL80211_STA_INFO_SIGNAL_AVG, 
  • trunk/package/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch

    r28245 r29240  
    118118        /* 
    119119         * Capabilities 
    120 @@ -960,6 +962,11 @@ struct rt2x00_dev { 
     120@@ -961,6 +963,11 @@ struct rt2x00_dev { 
    121121        const struct firmware *fw; 
    122122  
     
    240240--- a/drivers/net/wireless/rt2x00/rt2x00dev.c 
    241241+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 
    242 @@ -1142,6 +1142,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de 
    243         INIT_WORK(&rt2x00dev->intf_work, rt2x00lib_intf_scheduled); 
    244         INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup); 
     242@@ -1145,6 +1145,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de 
     243                    BIT(NL80211_IFTYPE_MESH_POINT) | 
     244                    BIT(NL80211_IFTYPE_WDS); 
    245245  
    246246+       retval = rt2x00lib_load_eeprom_file(rt2x00dev); 
     
    249249+ 
    250250        /* 
    251          * Let the driver probe the device to detect the capabilities. 
     251         * Initialize work. 
    252252         */ 
    253 @@ -1243,6 +1247,11 @@ void rt2x00lib_remove_dev(struct rt2x00_ 
     253@@ -1261,6 +1265,11 @@ void rt2x00lib_remove_dev(struct rt2x00_ 
    254254         * Free queue structures. 
    255255         */ 
  • trunk/package/mac80211/patches/605-rt2x00-pci-eeprom.patch

    r28994 r29240  
    1 Index: compat-wireless-2011-11-04/drivers/net/wireless/rt2x00/rt2800pci.c 
    2 =================================================================== 
    3 --- compat-wireless-2011-11-04.orig/drivers/net/wireless/rt2x00/rt2800pci.c     2011-11-12 19:34:24.760314206 +0100 
    4 +++ compat-wireless-2011-11-04/drivers/net/wireless/rt2x00/rt2800pci.c  2011-11-12 19:34:24.956314211 +0100 
    5 @@ -84,7 +84,7 @@ 
     1--- a/drivers/net/wireless/rt2x00/rt2800pci.c 
     2+++ b/drivers/net/wireless/rt2x00/rt2800pci.c 
     3@@ -84,7 +84,7 @@ static void rt2800pci_mcu_status(struct  
    64        rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0); 
    75 } 
     
    1210        memcpy(rt2x00dev->eeprom, rt2x00dev->eeprom_file->data, EEPROM_SIZE); 
    1311 } 
    14 @@ -938,8 +938,9 @@ 
     12@@ -938,8 +938,9 @@ static int rt2800pci_validate_eeprom(str 
    1513        /* 
    1614         * Read EEPROM into buffer 
     
    2422                rt2800pci_read_eeprom_efuse(rt2x00dev); 
    2523        else 
    26 Index: compat-wireless-2011-11-04/drivers/net/wireless/rt2x00/rt2x00pci.c 
    27 =================================================================== 
    28 --- compat-wireless-2011-11-04.orig/drivers/net/wireless/rt2x00/rt2x00pci.c     2011-11-12 19:34:24.704314204 +0100 
    29 +++ compat-wireless-2011-11-04/drivers/net/wireless/rt2x00/rt2x00pci.c  2011-11-12 19:34:24.956314211 +0100 
    30 @@ -255,6 +255,7 @@ 
     24--- a/drivers/net/wireless/rt2x00/rt2x00pci.c 
     25+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c 
     26@@ -255,6 +255,7 @@ exit: 
    3127 int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops) 
    3228 { 
     
    3632        int retval; 
    3733  
    38 @@ -299,6 +300,12 @@ 
     34@@ -299,6 +300,12 @@ int rt2x00pci_probe(struct pci_dev *pci_ 
    3935        rt2x00dev->irq = pci_dev->irq; 
    4036        rt2x00dev->name = pci_name(pci_dev); 
Note: See TracChangeset for help on using the changeset viewer.