Changeset 31347


Ignore:
Timestamp:
2012-04-19T20:32:39+02:00 (6 years ago)
Author:
nbd
Message:

mac80211: update to 2012-04-17, adds some build fixes and juhosg's ar9380 tx power fix

Location:
trunk/package/mac80211
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/Makefile

    r31322 r31347  
    1111PKG_NAME:=mac80211 
    1212 
    13 PKG_VERSION:=2012-04-13 
     13PKG_VERSION:=2012-04-17 
    1414PKG_RELEASE:=1 
    1515PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources 
    16 PKG_MD5SUM:=0f6d364e5261fd3d26291b45f0363fd1 
     16PKG_MD5SUM:=2607092b22b5cb552dc3c79921c85369 
    1717 
    1818PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2 
  • trunk/package/mac80211/patches/005-disable_ssb_build.patch

    r31322 r31347  
    3131  
    3232@@ -351,7 +352,7 @@ endif #CONFIG_PCMCIA 
    33  # CONFIG_SSB_DEBUG=y 
     33 # export CONFIG_SSB_DEBUG=y 
    3434 export CONFIG_SSB_DRIVER_PCICORE=y 
    3535 export CONFIG_B43_SSB=y 
  • trunk/package/mac80211/patches/006-disable_bcma_build.patch

    r31322 r31347  
    2121+# export CONFIG_BCMA_BLOCKIO=y 
    2222+# export CONFIG_BCMA_HOST_PCI=y 
    23  # CONFIG_BCMA_DEBUG=y 
     23 # export CONFIG_BCMA_DEBUG=y 
    2424-export CONFIG_B43_BCMA=y 
    2525-export CONFIG_B43_BCMA_EXTRA=y 
  • trunk/package/mac80211/patches/013-disable_b43_nphy.patch

    r31322 r31347  
    99+# export CONFIG_B43_PHY_N=y 
    1010+# export CONFIG_B43_PHY_HT=y 
    11  # CONFIG_B43_PHY_LCN=y 
    12  # CONFIG_B43_DEBUG=y 
     11 # export CONFIG_B43_PHY_LCN=y 
     12 # export CONFIG_B43_DEBUG=y 
    1313  
  • trunk/package/mac80211/patches/110-disable_usb_compat.patch

    r31322 r31347  
    4242  
    4343 export CONFIG_ATH9K_HTC=m 
    44  # CONFIG_ATH9K_HTC_DEBUGFS=y 
     44 # export CONFIG_ATH9K_HTC_DEBUGFS=y 
  • trunk/package/mac80211/patches/120-pr_fmt_warnings.patch

    r31322 r31347  
    1 --- a/drivers/net/wireless/iwlegacy/3945-mac.c 
    2 +++ b/drivers/net/wireless/iwlegacy/3945-mac.c 
    3 @@ -27,6 +27,7 @@ 
    4   * 
    5   *****************************************************************************/ 
    6   
    7 +#undef pr_fmt 
    8  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    9   
    10  #include <linux/kernel.h> 
    11 --- a/drivers/net/wireless/libertas_tf/cmd.c 
    12 +++ b/drivers/net/wireless/libertas_tf/cmd.c 
    13 @@ -7,6 +7,7 @@ 
    14   *  the Free Software Foundation; either version 2 of the License, or (at 
    15   *  your option) any later version. 
    16   */ 
    17 +#undef pr_fmt 
    18  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    19   
    20  #include <linux/hardirq.h> 
    21 --- a/drivers/net/wireless/libertas_tf/if_usb.c 
    22 +++ b/drivers/net/wireless/libertas_tf/if_usb.c 
    23 @@ -9,6 +9,7 @@ 
    24   */ 
    25  #define DRV_NAME "lbtf_usb" 
    26   
    27 +#undef pr_fmt 
    28  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    29   
    30  #include "libertas_tf.h" 
    31 --- a/drivers/net/wireless/libertas_tf/main.c 
    32 +++ b/drivers/net/wireless/libertas_tf/main.c 
    33 @@ -7,6 +7,7 @@ 
    34   *  the Free Software Foundation; either version 2 of the License, or (at 
    35   *  your option) any later version. 
    36   */ 
    37 +#undef pr_fmt 
    38  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    39   
    40  #include <linux/hardirq.h> 
    41 --- a/net/wireless/core.c 
    42 +++ b/net/wireless/core.c 
    43 @@ -4,6 +4,7 @@ 
    44   * Copyright 2006-2010         Johannes Berg <johannes@sipsolutions.net> 
    45   */ 
    46   
    47 +#undef pr_fmt 
    48  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    49   
    50  #include <linux/if.h> 
    51 --- a/net/wireless/lib80211.c 
    52 +++ b/net/wireless/lib80211.c 
    53 @@ -13,6 +13,7 @@ 
    54   * 
    55   */ 
    56   
    57 +#undef pr_fmt 
    58  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    59   
    60  #include <linux/module.h> 
    61 --- a/net/wireless/lib80211_crypt_tkip.c 
    62 +++ b/net/wireless/lib80211_crypt_tkip.c 
    63 @@ -10,6 +10,7 @@ 
    64   * more details. 
    65   */ 
    66   
    67 +#undef pr_fmt 
    68  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    69   
    70  #include <linux/err.h> 
    71 --- a/net/wireless/reg.c 
    72 +++ b/net/wireless/reg.c 
    73 @@ -42,6 +42,7 @@ 
    74   * 
    75   */ 
    76   
    77 +#undef pr_fmt 
    78  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    79   
    80  #include <linux/kernel.h> 
    81 --- a/drivers/net/wireless/iwlegacy/4965-mac.c 
    82 +++ b/drivers/net/wireless/iwlegacy/4965-mac.c 
    83 @@ -27,6 +27,7 @@ 
    84   * 
    85   *****************************************************************************/ 
    86   
    87 +#undef pr_fmt 
    88  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    89   
    90  #include <linux/kernel.h> 
    91 --- a/drivers/net/wireless/libertas/cfg.c 
    92 +++ b/drivers/net/wireless/libertas/cfg.c 
    93 @@ -6,6 +6,7 @@ 
    94   * 
    95   */ 
    96   
    97 +#undef pr_fmt 
    98  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    99   
    100  #include <linux/hardirq.h> 
    101 --- a/drivers/net/wireless/libertas/if_cs.c 
    102 +++ b/drivers/net/wireless/libertas/if_cs.c 
    103 @@ -21,6 +21,7 @@ 
    104   
    105  */ 
    106   
    107 +#undef pr_fmt 
    108  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    109   
    110  #include <linux/module.h> 
    111 --- a/drivers/net/wireless/libertas/if_sdio.c 
    112 +++ b/drivers/net/wireless/libertas/if_sdio.c 
    113 @@ -26,6 +26,7 @@ 
    114   * if_sdio_card_to_host() to pad the data. 
    115   */ 
    116   
    117 +#undef pr_fmt 
    118  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    119   
    120  #include <linux/kernel.h> 
    121 --- a/drivers/net/wireless/libertas/if_spi.c 
    122 +++ b/drivers/net/wireless/libertas/if_spi.c 
    123 @@ -17,6 +17,7 @@ 
    124   * (at your option) any later version. 
    125   */ 
    126   
    127 +#undef pr_fmt 
    128  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    129   
    130  #include <linux/hardirq.h> 
    131 --- a/drivers/net/wireless/libertas/if_usb.c 
    132 +++ b/drivers/net/wireless/libertas/if_usb.c 
    133 @@ -2,6 +2,7 @@ 
    134   * This file contains functions used in USB interface module. 
    135   */ 
    136   
    137 +#undef pr_fmt 
    138  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    139   
    140  #include <linux/delay.h> 
    141 --- a/drivers/net/wireless/libertas/main.c 
    142 +++ b/drivers/net/wireless/libertas/main.c 
    143 @@ -4,6 +4,7 @@ 
    144   * thread etc.. 
    145   */ 
    146   
    147 +#undef pr_fmt 
    148  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    149   
    150  #include <linux/module.h> 
    151 --- a/drivers/net/wireless/libertas/mesh.c 
    152 +++ b/drivers/net/wireless/libertas/mesh.c 
    153 @@ -1,3 +1,4 @@ 
    154 +#undef pr_fmt 
    155  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    156   
    157  #include <linux/delay.h> 
    158 --- a/drivers/net/wireless/libertas/rx.c 
    159 +++ b/drivers/net/wireless/libertas/rx.c 
    160 @@ -2,6 +2,7 @@ 
    161   * This file contains the handling of RX in wlan driver. 
    162   */ 
    163   
    164 +#undef pr_fmt 
    165  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    166   
    167  #include <linux/etherdevice.h> 
    168 --- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c 
    169 +++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c 
    170 @@ -16,6 +16,7 @@ 
    171   * File contents: support functions for PCI/PCIe 
    172   */ 
    173   
    174 +#undef pr_fmt 
    175  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    176   
    177  #include <linux/delay.h> 
    178 --- a/drivers/net/wireless/brcm80211/brcmsmac/dma.c 
    179 +++ b/drivers/net/wireless/brcm80211/brcmsmac/dma.c 
    180 @@ -14,6 +14,7 @@ 
    181   * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    182   */ 
    183   
    184 +#undef pr_fmt 
    185  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    186   
    187  #include <linux/slab.h> 
    188 --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 
    189 +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 
    190 @@ -15,6 +15,7 @@ 
    191   */ 
    192   
    193  #define __UNDEF_NO_VERSION__ 
    194 +#undef pr_fmt 
    195  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    196   
    197  #include <linux/etherdevice.h> 
    198 --- a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c 
    199 +++ b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c 
    200 @@ -14,6 +14,7 @@ 
    201   * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    202   */ 
    203   
    204 +#undef pr_fmt 
    205  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    206   
    207  #include <linux/kernel.h> 
    208 --- a/drivers/net/wireless/brcm80211/brcmutil/utils.c 
    209 +++ b/drivers/net/wireless/brcm80211/brcmutil/utils.c 
    210 @@ -14,6 +14,7 @@ 
    211   * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    212   */ 
    213   
    214 +#undef pr_fmt 
    215  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    216   
    217  #include <linux/netdevice.h> 
    218 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    219 +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    220 @@ -14,6 +14,7 @@ 
    221   * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    222   */ 
    223   
    224 +#undef pr_fmt 
    225  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    226   
    227  #include <linux/pci_ids.h> 
    2281--- a/drivers/net/wireless/ath/ath5k/ani.c 
    2292+++ b/drivers/net/wireless/ath/ath5k/ani.c 
  • trunk/package/mac80211/patches/300-pending_work.patch

    r31326 r31347  
    11--- a/drivers/net/wireless/ath/ath5k/base.c 
    22+++ b/drivers/net/wireless/ath/ath5k/base.c 
    3 @@ -1171,7 +1171,7 @@ ath5k_check_ibss_tsf(struct ath5k_hw *ah 
    4   
    5         if (ieee80211_is_beacon(mgmt->frame_control) && 
    6             le16_to_cpu(mgmt->u.beacon.capab_info) & WLAN_CAPABILITY_IBSS && 
    7 -           memcmp(mgmt->bssid, common->curbssid, ETH_ALEN) == 0) { 
    8 +           compare_ether_addr(mgmt->bssid, common->curbssid) == 0) { 
    9                 /* 
    10                  * Received an IBSS beacon with the same BSSID. Hardware *must* 
    11                  * have updated the local TSF. We have to work around various 
    12 @@ -1235,7 +1235,7 @@ ath5k_update_beacon_rssi(struct ath5k_hw 
    13   
    14         /* only beacons from our BSSID */ 
    15         if (!ieee80211_is_beacon(mgmt->frame_control) || 
    16 -           memcmp(mgmt->bssid, common->curbssid, ETH_ALEN) != 0) 
    17 +           compare_ether_addr(mgmt->bssid, common->curbssid) != 0) 
    18                 return; 
    19   
    20         ewma_add(&ah->ah_beacon_rssi_avg, rssi); 
    213@@ -2416,6 +2416,22 @@ ath5k_tx_complete_poll_work(struct work_ 
    224 * Initialization routines * 
     
    5234        hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; 
    5335  
    54 --- a/drivers/net/wireless/ath/ath9k/ani.c 
    55 +++ b/drivers/net/wireless/ath/ath9k/ani.c 
    56 @@ -274,7 +274,9 @@ static void ath9k_hw_set_ofdm_nil(struct 
    57                 aniState->rssiThrLow, aniState->rssiThrHigh); 
    58   
    59         if (aniState->update_ani) 
    60 -               aniState->ofdmNoiseImmunityLevel = immunityLevel; 
    61 +               aniState->ofdmNoiseImmunityLevel = 
    62 +                       (immunityLevel > ATH9K_ANI_OFDM_DEF_LEVEL) ? 
    63 +                       immunityLevel : ATH9K_ANI_OFDM_DEF_LEVEL; 
    64   
    65         entry_ofdm = &ofdm_level_table[aniState->ofdmNoiseImmunityLevel]; 
    66         entry_cck = &cck_level_table[aniState->cckNoiseImmunityLevel]; 
    67 @@ -340,7 +342,9 @@ static void ath9k_hw_set_cck_nil(struct  
    68                 immunityLevel = ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI; 
    69   
    70         if (aniState->update_ani) 
    71 -               aniState->cckNoiseImmunityLevel = immunityLevel; 
    72 +               aniState->cckNoiseImmunityLevel = 
    73 +                       (immunityLevel > ATH9K_ANI_CCK_DEF_LEVEL) ? 
    74 +                       immunityLevel : ATH9K_ANI_CCK_DEF_LEVEL; 
    75   
    76         entry_ofdm = &ofdm_level_table[aniState->ofdmNoiseImmunityLevel]; 
    77         entry_cck = &cck_level_table[aniState->cckNoiseImmunityLevel]; 
    7836--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c 
    7937+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c 
     
    14199 skip_tx_iqcal: 
    142100        if (run_agc_cal || !(ah->ah_flags & AH_FASTCC)) { 
     101--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c 
     102+++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c 
     103@@ -4281,18 +4281,10 @@ static int ar9003_hw_tx_power_regwrite(s 
     104 #undef POW_SM 
     105 } 
     106  
     107-static void ar9003_hw_set_target_power_eeprom(struct ath_hw *ah, u16 freq, 
     108-                                             u8 *targetPowerValT2) 
     109+static void ar9003_hw_get_legacy_target_powers(struct ath_hw *ah, u16 freq, 
     110+                                              u8 *targetPowerValT2, 
     111+                                              bool is2GHz) 
     112 { 
     113-       /* XXX: hard code for now, need to get from eeprom struct */ 
     114-       u8 ht40PowerIncForPdadc = 0; 
     115-       bool is2GHz = false; 
     116-       unsigned int i = 0; 
     117-       struct ath_common *common = ath9k_hw_common(ah); 
     118- 
     119-       if (freq < 4000) 
     120-               is2GHz = true; 
     121- 
     122        targetPowerValT2[ALL_TARGET_LEGACY_6_24] = 
     123            ar9003_hw_eeprom_get_tgt_pwr(ah, LEGACY_TARGET_RATE_6_24, freq, 
     124                                         is2GHz); 
     125@@ -4305,6 +4297,11 @@ static void ar9003_hw_set_target_power_e 
     126        targetPowerValT2[ALL_TARGET_LEGACY_54] = 
     127            ar9003_hw_eeprom_get_tgt_pwr(ah, LEGACY_TARGET_RATE_54, freq, 
     128                                         is2GHz); 
     129+} 
     130+ 
     131+static void ar9003_hw_get_cck_target_powers(struct ath_hw *ah, u16 freq, 
     132+                                           u8 *targetPowerValT2) 
     133+{ 
     134        targetPowerValT2[ALL_TARGET_LEGACY_1L_5L] = 
     135            ar9003_hw_eeprom_get_cck_tgt_pwr(ah, LEGACY_TARGET_RATE_1L_5L, 
     136                                             freq); 
     137@@ -4314,6 +4311,11 @@ static void ar9003_hw_set_target_power_e 
     138            ar9003_hw_eeprom_get_cck_tgt_pwr(ah, LEGACY_TARGET_RATE_11L, freq); 
     139        targetPowerValT2[ALL_TARGET_LEGACY_11S] = 
     140            ar9003_hw_eeprom_get_cck_tgt_pwr(ah, LEGACY_TARGET_RATE_11S, freq); 
     141+} 
     142+ 
     143+static void ar9003_hw_get_ht20_target_powers(struct ath_hw *ah, u16 freq, 
     144+                                            u8 *targetPowerValT2, bool is2GHz) 
     145+{ 
     146        targetPowerValT2[ALL_TARGET_HT20_0_8_16] = 
     147            ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_0_8_16, freq, 
     148                                              is2GHz); 
     149@@ -4356,6 +4358,16 @@ static void ar9003_hw_set_target_power_e 
     150        targetPowerValT2[ALL_TARGET_HT20_23] = 
     151            ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_23, freq, 
     152                                              is2GHz); 
     153+} 
     154+ 
     155+static void ar9003_hw_get_ht40_target_powers(struct ath_hw *ah, 
     156+                                                  u16 freq, 
     157+                                                  u8 *targetPowerValT2, 
     158+                                                  bool is2GHz) 
     159+{ 
     160+       /* XXX: hard code for now, need to get from eeprom struct */ 
     161+       u8 ht40PowerIncForPdadc = 0; 
     162+ 
     163        targetPowerValT2[ALL_TARGET_HT40_0_8_16] = 
     164            ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_0_8_16, freq, 
     165                                              is2GHz) + ht40PowerIncForPdadc; 
     166@@ -4399,6 +4411,26 @@ static void ar9003_hw_set_target_power_e 
     167        targetPowerValT2[ALL_TARGET_HT40_23] = 
     168            ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_23, freq, 
     169                                              is2GHz) + ht40PowerIncForPdadc; 
     170+} 
     171+ 
     172+static void ar9003_hw_get_target_power_eeprom(struct ath_hw *ah, 
     173+                                             struct ath9k_channel *chan, 
     174+                                             u8 *targetPowerValT2) 
     175+{ 
     176+       bool is2GHz = IS_CHAN_2GHZ(chan); 
     177+       unsigned int i = 0; 
     178+       struct ath_common *common = ath9k_hw_common(ah); 
     179+       u16 freq = chan->channel; 
     180+ 
     181+       if (is2GHz) 
     182+               ar9003_hw_get_cck_target_powers(ah, freq, targetPowerValT2); 
     183+ 
     184+       ar9003_hw_get_legacy_target_powers(ah, freq, targetPowerValT2, is2GHz); 
     185+       ar9003_hw_get_ht20_target_powers(ah, freq, targetPowerValT2, is2GHz); 
     186+ 
     187+       if (IS_CHAN_HT40(chan)) 
     188+               ar9003_hw_get_ht40_target_powers(ah, freq, targetPowerValT2, 
     189+                                                is2GHz); 
     190  
     191        for (i = 0; i < ar9300RateSize; i++) { 
     192                ath_dbg(common, EEPROM, "TPC[%02d] 0x%08x\n", 
     193@@ -4778,9 +4810,6 @@ static void ar9003_hw_set_power_per_rate 
     194        scaledPower = ath9k_hw_get_scaled_power(ah, powerLimit, 
     195                                                antenna_reduction); 
     196  
     197-       /* 
     198-        * Get target powers from EEPROM - our baseline for TX Power 
     199-        */ 
     200        if (is2ghz) { 
     201                /* Setup for CTL modes */ 
     202                /* CTL_11B, CTL_11G, CTL_2GHT20 */ 
     203@@ -4952,7 +4981,12 @@ static void ath9k_hw_ar9300_set_txpower( 
     204        unsigned int i = 0, paprd_scale_factor = 0; 
     205        u8 pwr_idx, min_pwridx = 0; 
     206  
     207-       ar9003_hw_set_target_power_eeprom(ah, chan->channel, targetPowerValT2); 
     208+       memset(targetPowerValT2, 0 , sizeof(targetPowerValT2)); 
     209+ 
     210+       /* 
     211+        * Get target powers from EEPROM - our baseline for TX Power 
     212+        */ 
     213+       ar9003_hw_get_target_power_eeprom(ah, chan, targetPowerValT2); 
     214  
     215        if (ah->eep_ops->get_eeprom(ah, EEP_PAPRD)) { 
     216                if (IS_CHAN_2GHZ(chan)) 
    143217--- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c 
    144218+++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c 
     
    154228--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c 
    155229+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c 
    156 @@ -524,22 +524,10 @@ static void ar9003_hw_init_bb(struct ath 
     230@@ -526,22 +526,10 @@ static void ar9003_hw_init_bb(struct ath 
    157231         * Value is in 100ns increments. 
    158232         */ 
     
    178252  
    179253 static void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx) 
    180 @@ -690,7 +678,7 @@ static int ar9003_hw_process_ini(struct  
     254@@ -692,7 +680,7 @@ static int ar9003_hw_process_ini(struct  
    181255        ar9003_hw_override_ini(ah); 
    182256        ar9003_hw_set_channel_regs(ah, chan); 
     
    187261        if (AR_SREV_9462(ah)) { 
    188262                if (REG_READ_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_0, 
    189 @@ -721,6 +709,14 @@ static void ar9003_hw_set_rfmode(struct  
     263@@ -723,6 +711,14 @@ static void ar9003_hw_set_rfmode(struct  
    190264  
    191265        if (IS_CHAN_A_FAST_CLOCK(ah, chan)) 
     
    202276        REG_WRITE(ah, AR_PHY_MODE, rfMode); 
    203277 } 
    204 @@ -791,12 +787,8 @@ static bool ar9003_hw_rfbus_req(struct a 
     278@@ -793,12 +789,8 @@ static bool ar9003_hw_rfbus_req(struct a 
    205279 static void ar9003_hw_rfbus_done(struct ath_hw *ah) 
    206280 { 
     
    228302 #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A_S         10 
    229303 #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A                       0x3FF 
    230 --- a/drivers/net/wireless/ath/ath9k/ar9462_2p0_initvals.h 
    231 +++ b/drivers/net/wireless/ath/ath9k/ar9462_2p0_initvals.h 
    232 @@ -1115,9 +1115,9 @@ static const u32 ar9462_2p0_mac_core[][2 
    233         {0x000081f8, 0x00000000}, 
    234         {0x000081fc, 0x00000000}, 
    235         {0x00008240, 0x00100000}, 
    236 -       {0x00008244, 0x0010f400}, 
    237 +       {0x00008244, 0x0010f424}, 
    238         {0x00008248, 0x00000800}, 
    239 -       {0x0000824c, 0x0001e800}, 
    240 +       {0x0000824c, 0x0001e848}, 
    241         {0x00008250, 0x00000000}, 
    242         {0x00008254, 0x00000000}, 
    243         {0x00008258, 0x00000000}, 
    244 --- a/drivers/net/wireless/ath/ath9k/ath9k.h 
    245 +++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
    246 @@ -370,7 +370,7 @@ struct ath_vif { 
    247   * number of beacon intervals, the game's up. 
    248   */ 
    249  #define BSTUCK_THRESH                  9 
    250 -#define        ATH_BCBUF                       4 
    251 +#define        ATH_BCBUF                       8 
    252  #define ATH_DEFAULT_BINTVAL            100 /* TU */ 
    253  #define ATH_DEFAULT_BMISS_LIMIT        10 
    254  #define IEEE80211_MS_TO_TU(x)           (((x) * 1000) / 1024) 
    255 --- a/drivers/net/wireless/ath/ath9k/beacon.c 
    256 +++ b/drivers/net/wireless/ath/ath9k/beacon.c 
    257 @@ -91,7 +91,7 @@ static void ath_beacon_setup(struct ath_ 
    258         info.txpower = MAX_RATE_POWER; 
    259         info.keyix = ATH9K_TXKEYIX_INVALID; 
    260         info.keytype = ATH9K_KEY_TYPE_CLEAR; 
    261 -       info.flags = ATH9K_TXDESC_NOACK | ATH9K_TXDESC_INTREQ; 
    262 +       info.flags = ATH9K_TXDESC_NOACK | ATH9K_TXDESC_CLRDMASK; 
    263   
    264         info.buf_addr[0] = bf->bf_buf_addr; 
    265         info.buf_len[0] = roundup(skb->len, 4); 
    266 @@ -359,6 +359,11 @@ void ath_beacon_tasklet(unsigned long da 
    267         int slot; 
    268         u32 bfaddr, bc = 0; 
    269   
    270 +       if (work_pending(&sc->hw_reset_work)) { 
    271 +               ath_dbg(common, RESET, 
    272 +                       "reset work is pending, skip beaconing now\n"); 
    273 +               return; 
    274 +       } 
    275         /* 
    276          * Check if the previous beacon has gone out.  If 
    277          * not don't try to post another, skip this period 
    278 @@ -369,6 +374,9 @@ void ath_beacon_tasklet(unsigned long da 
    279         if (ath9k_hw_numtxpending(ah, sc->beacon.beaconq) != 0) { 
    280                 sc->beacon.bmisscnt++; 
    281   
    282 +               if (!ath9k_hw_check_alive(ah)) 
    283 +                       ieee80211_queue_work(sc->hw, &sc->hw_check_work); 
    284 + 
    285                 if (sc->beacon.bmisscnt < BSTUCK_THRESH * sc->nbcnvifs) { 
    286                         ath_dbg(common, BSTUCK, 
    287                                 "missed %u consecutive beacons\n", 
    288 @@ -378,6 +386,7 @@ void ath_beacon_tasklet(unsigned long da 
    289                                 ath9k_hw_bstuck_nfcal(ah); 
    290                 } else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) { 
    291                         ath_dbg(common, BSTUCK, "beacon is officially stuck\n"); 
    292 +                       sc->beacon.bmisscnt = 0; 
    293                         sc->sc_flags |= SC_OP_TSF_RESET; 
    294                         ieee80211_queue_work(sc->hw, &sc->hw_reset_work); 
    295                 } 
    296 @@ -650,6 +659,8 @@ static void ath_beacon_config_adhoc(stru 
    297         u32 tsf, intval, nexttbtt; 
    298   
    299         ath9k_reset_beacon_status(sc); 
    300 +       if (!(sc->sc_flags & SC_OP_BEACONS)) 
    301 +               ath9k_hw_settsf64(ah, sc->beacon.bc_tstamp); 
    302   
    303         intval = TU_TO_USEC(conf->beacon_interval); 
    304         tsf = roundup(ath9k_hw_gettsf32(ah) + TU_TO_USEC(FUDGE), intval); 
    305304--- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c 
    306305+++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c 
    307 @@ -824,6 +824,8 @@ static void ath9k_hw_ar9287_set_txpower( 
     306@@ -798,6 +798,8 @@ static void ath9k_hw_ar9287_set_txpower( 
    308307                        regulatory->max_power_level = ratesArray[i]; 
    309308        } 
     
    314313                return; 
    315314  
    316 --- a/drivers/net/wireless/ath/ath9k/gpio.c 
    317 +++ b/drivers/net/wireless/ath/ath9k/gpio.c 
    318 @@ -41,6 +41,9 @@ void ath_init_leds(struct ath_softc *sc) 
    319  { 
    320         int ret; 
    321   
    322 +       if (AR_SREV_9100(sc->sc_ah)) 
    323 +               return; 
    324 + 
    325         if (sc->sc_ah->led_pin < 0) { 
    326                 if (AR_SREV_9287(sc->sc_ah)) 
    327                         sc->sc_ah->led_pin = ATH_LED_PIN_9287; 
    328315--- a/drivers/net/wireless/ath/ath9k/hw.c 
    329316+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    330 @@ -142,6 +142,22 @@ bool ath9k_hw_wait(struct ath_hw *ah, u3 
     317@@ -191,6 +191,22 @@ bool ath9k_hw_wait(struct ath_hw *ah, u3 
    331318 } 
    332319 EXPORT_SYMBOL(ath9k_hw_wait); 
     
    351338                          int column, unsigned int *writecnt) 
    352339 { 
    353 @@ -388,8 +404,8 @@ static void ath9k_hw_init_config(struct  
    354  { 
    355         int i; 
    356   
    357 -       ah->config.dma_beacon_response_time = 2; 
    358 -       ah->config.sw_beacon_response_time = 10; 
    359 +       ah->config.dma_beacon_response_time = 1; 
    360 +       ah->config.sw_beacon_response_time = 6; 
    361         ah->config.additional_swba_backoff = 0; 
    362         ah->config.ack_6mb = 0x0; 
    363         ah->config.cwm_ignore_extcca = 0; 
    364 @@ -971,7 +987,7 @@ void ath9k_hw_init_global_settings(struc 
     340@@ -1020,7 +1036,7 @@ void ath9k_hw_init_global_settings(struc 
    365341        struct ath_common *common = ath9k_hw_common(ah); 
    366342        struct ieee80211_conf *conf = &common->hw->conf; 
     
    371347        int sifstime; 
    372348        int rx_lat = 0, tx_lat = 0, eifs = 0; 
    373 @@ -992,6 +1008,11 @@ void ath9k_hw_init_global_settings(struc 
     349@@ -1041,6 +1057,11 @@ void ath9k_hw_init_global_settings(struc 
    374350                rx_lat = 37; 
    375351        tx_lat = 54; 
     
    383359                eifs = 175; 
    384360                rx_lat *= 2; 
    385 @@ -999,8 +1020,9 @@ void ath9k_hw_init_global_settings(struc 
     361@@ -1048,8 +1069,9 @@ void ath9k_hw_init_global_settings(struc 
    386362                if (IS_CHAN_A_FAST_CLOCK(ah, chan)) 
    387363                    tx_lat += 11; 
     
    394370                eifs = 340; 
    395371                rx_lat = (rx_lat * 4) - 1; 
    396 @@ -1008,8 +1030,9 @@ void ath9k_hw_init_global_settings(struc 
     372@@ -1057,8 +1079,9 @@ void ath9k_hw_init_global_settings(struc 
    397373                if (IS_CHAN_A_FAST_CLOCK(ah, chan)) 
    398374                    tx_lat += 22; 
     
    405381                if (AR_SREV_9287(ah) && AR_SREV_9287_13_OR_LATER(ah)) { 
    406382                        eifs = AR_D_GBL_IFS_EIFS_ASYNC_FIFO; 
    407 @@ -1023,14 +1046,10 @@ void ath9k_hw_init_global_settings(struc 
     383@@ -1072,14 +1095,10 @@ void ath9k_hw_init_global_settings(struc 
    408384                tx_lat = MS(reg, AR_USEC_TX_LAT); 
    409385  
     
    421397  
    422398        /* 
    423 @@ -1040,7 +1059,8 @@ void ath9k_hw_init_global_settings(struc 
     399@@ -1089,7 +1108,8 @@ void ath9k_hw_init_global_settings(struc 
    424400         * BA frames in some implementations, but it has been found to fix ACK 
    425401         * timeout issues in other cases as well. 
     
    431407                ctstimeout += 48 - sifstime - ah->slottime; 
    432408        } 
    433 @@ -1420,6 +1440,10 @@ static bool ath9k_hw_channel_change(stru 
     409@@ -1469,6 +1489,10 @@ static bool ath9k_hw_channel_change(stru 
    434410                                                    CHANNEL_5GHZ)); 
    435411        mode_diff = (chan->chanmode != ah->curchan->chanmode); 
     
    442418                if (ath9k_hw_numtxpending(ah, qnum)) { 
    443419                        ath_dbg(common, QUEUE, 
    444 @@ -1453,7 +1477,7 @@ static bool ath9k_hw_channel_change(stru 
     420@@ -1502,7 +1526,7 @@ static bool ath9k_hw_channel_change(stru 
    445421                return false; 
    446422        } 
     
    451427  
    452428        if (IS_CHAN_OFDM(chan) || IS_CHAN_HT(chan)) 
    453 @@ -2724,7 +2748,8 @@ static int get_antenna_gain(struct ath_h 
     429@@ -2773,7 +2797,8 @@ static int get_antenna_gain(struct ath_h 
    454430        return ah->eep_ops->get_eeprom(ah, gain_param); 
    455431 } 
     
    461437        struct ath_regulatory *reg = ath9k_hw_regulatory(ah); 
    462438        struct ieee80211_channel *channel; 
    463 @@ -2745,7 +2770,7 @@ void ath9k_hw_apply_txpower(struct ath_h 
     439@@ -2794,7 +2819,7 @@ void ath9k_hw_apply_txpower(struct ath_h 
    464440  
    465441        ah->eep_ops->set_txpower(ah, chan, 
     
    470446  
    471447 void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test) 
    472 @@ -2758,7 +2783,7 @@ void ath9k_hw_set_txpowerlimit(struct at 
     448@@ -2807,7 +2832,7 @@ void ath9k_hw_set_txpowerlimit(struct at 
    473449        if (test) 
    474450                channel->max_power = MAX_RATE_POWER / 2; 
     
    490466 void ath9k_hw_write_array(struct ath_hw *ah, struct ar5416IniArray *array, 
    491467                          int column, unsigned int *writecnt); 
    492 @@ -976,7 +978,8 @@ void ath9k_hw_name(struct ath_hw *ah, ch 
     468@@ -982,7 +984,8 @@ void ath9k_hw_name(struct ath_hw *ah, ch 
    493469 /* PHY */ 
    494470 void ath9k_hw_get_delta_slope_vals(struct ath_hw *ah, u32 coef_scaled, 
     
    500476 /* 
    501477  * Code Specific to AR5008, AR9001 or AR9002, 
     478--- a/drivers/net/wireless/ath/ath9k/init.c 
     479+++ b/drivers/net/wireless/ath/ath9k/init.c 
     480@@ -647,6 +647,24 @@ void ath9k_reload_chainmask_settings(str 
     481                setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap); 
     482 } 
     483  
     484+static const struct ieee80211_iface_limit if_limits[] = { 
     485+       { .max = 2048,  .types = BIT(NL80211_IFTYPE_STATION) | 
     486+                                BIT(NL80211_IFTYPE_P2P_CLIENT) | 
     487+                                BIT(NL80211_IFTYPE_WDS) }, 
     488+       { .max = 8,     .types = 
     489+#ifdef CONFIG_MAC80211_MESH 
     490+                                BIT(NL80211_IFTYPE_MESH_POINT) | 
     491+#endif 
     492+                                BIT(NL80211_IFTYPE_AP) | 
     493+                                BIT(NL80211_IFTYPE_P2P_GO) }, 
     494+}; 
     495+ 
     496+static const struct ieee80211_iface_combination if_comb = { 
     497+       .limits = if_limits, 
     498+       .n_limits = ARRAY_SIZE(if_limits), 
     499+       .max_interfaces = 2048, 
     500+       .num_different_channels = 1, 
     501+}; 
     502  
     503 void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw) 
     504 { 
     505@@ -676,6 +694,9 @@ void ath9k_set_hw_capab(struct ath_softc 
     506                BIT(NL80211_IFTYPE_ADHOC) | 
     507                BIT(NL80211_IFTYPE_MESH_POINT); 
     508  
     509+       hw->wiphy->iface_combinations = &if_comb; 
     510+       hw->wiphy->n_iface_combinations = 1; 
     511+ 
     512        if (AR_SREV_5416(sc->sc_ah)) 
     513                hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; 
     514  
    502515--- a/drivers/net/wireless/ath/ath9k/mac.c 
    503516+++ b/drivers/net/wireless/ath/ath9k/mac.c 
     
    528541                                udelay(5); 
    529542  
    530 --- a/drivers/net/wireless/ath/ath9k/main.c 
    531 +++ b/drivers/net/wireless/ath/ath9k/main.c 
    532 @@ -692,17 +692,6 @@ void ath9k_tasklet(unsigned long data) 
    533                 goto out; 
    534         } 
    535   
    536 -       /* 
    537 -        * Only run the baseband hang check if beacons stop working in AP or 
    538 -        * IBSS mode, because it has a high false positive rate. For station 
    539 -        * mode it should not be necessary, since the upper layers will detect 
    540 -        * this through a beacon miss automatically and the following channel 
    541 -        * change will trigger a hardware reset anyway 
    542 -        */ 
    543 -       if (ath9k_hw_numtxpending(ah, sc->beacon.beaconq) != 0 && 
    544 -           !ath9k_hw_check_alive(ah)) 
    545 -               ieee80211_queue_work(sc->hw, &sc->hw_check_work); 
    546 - 
    547         if ((status & ATH9K_INT_TSFOOR) && sc->ps_enabled) { 
    548                 /* 
    549                  * TSF sync does not look correct; remain awake to sync with 
    550543--- a/net/mac80211/agg-rx.c 
    551544+++ b/net/mac80211/agg-rx.c 
     
    597590--- a/net/mac80211/iface.c 
    598591+++ b/net/mac80211/iface.c 
    599 @@ -163,7 +163,8 @@ static int ieee80211_check_queues(struct 
    600                         return -EINVAL; 
    601         } 
    602   
    603 -       if (sdata->vif.type != NL80211_IFTYPE_AP) { 
    604 +       if ((sdata->vif.type != NL80211_IFTYPE_AP) || 
    605 +           !(sdata->local->hw.flags & IEEE80211_HW_QUEUE_CONTROL)) { 
    606                 sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; 
    607                 return 0; 
    608         } 
    609 @@ -281,7 +282,6 @@ static int ieee80211_do_open(struct net_ 
     592@@ -282,7 +282,6 @@ static int ieee80211_do_open(struct net_ 
    610593 { 
    611594        struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 
     
    615598        int res; 
    616599        u32 hw_reconf_flags = 0; 
    617 @@ -427,28 +427,6 @@ static int ieee80211_do_open(struct net_ 
     600@@ -428,28 +427,6 @@ static int ieee80211_do_open(struct net_ 
    618601  
    619602        set_bit(SDATA_STATE_RUNNING, &sdata->state); 
     
    644627         * set_multicast_list will be invoked by the networking core 
    645628         * which will check whether any increments here were done in 
    646 @@ -845,6 +823,70 @@ static void ieee80211_if_setup(struct ne 
     629@@ -846,6 +823,72 @@ static void ieee80211_if_setup(struct ne 
    647630        dev->destructor = free_netdev; 
    648631 } 
     
    704687+ 
    705688+       if (new) { 
    706 +               set_sta_flag(sta, WLAN_STA_AUTHORIZED); 
     689+               sta_info_pre_move_state(sta, IEEE80211_STA_AUTH); 
     690+               sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC); 
     691+               sta_info_pre_move_state(sta, IEEE80211_STA_AUTHORIZED); 
    707692+               rate_control_rate_init(sta); 
    708693+               sta_info_insert_rcu(sta); 
     
    715700 { 
    716701        struct ieee80211_sub_if_data *sdata = 
    717 @@ -949,6 +991,9 @@ static void ieee80211_iface_work(struct  
     702@@ -950,6 +993,9 @@ static void ieee80211_iface_work(struct  
    718703                                break; 
    719704                        ieee80211_mesh_rx_queued_mgmt(sdata, skb); 
     
    727712--- a/net/mac80211/rx.c 
    728713+++ b/net/mac80211/rx.c 
    729 @@ -103,7 +103,7 @@ static void 
    730  ieee80211_add_rx_radiotap_header(struct ieee80211_local *local, 
    731                                  struct sk_buff *skb, 
    732                                  struct ieee80211_rate *rate, 
    733 -                                int rtap_len) 
    734 +                                int rtap_len, bool has_fcs) 
    735  { 
    736         struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); 
    737         struct ieee80211_radiotap_header *rthdr; 
    738 @@ -134,7 +134,7 @@ ieee80211_add_rx_radiotap_header(struct  
    739         } 
    740   
    741         /* IEEE80211_RADIOTAP_FLAGS */ 
    742 -       if (local->hw.flags & IEEE80211_HW_RX_INCLUDES_FCS) 
    743 +       if (has_fcs && (local->hw.flags & IEEE80211_HW_RX_INCLUDES_FCS)) 
    744                 *pos |= IEEE80211_RADIOTAP_F_FCS; 
    745         if (status->flag & (RX_FLAG_FAILED_FCS_CRC | RX_FLAG_FAILED_PLCP_CRC)) 
    746                 *pos |= IEEE80211_RADIOTAP_F_BADFCS; 
    747 @@ -294,7 +294,8 @@ ieee80211_rx_monitor(struct ieee80211_lo 
    748         } 
    749   
    750         /* prepend radiotap information */ 
    751 -       ieee80211_add_rx_radiotap_header(local, skb, rate, needed_headroom); 
    752 +       ieee80211_add_rx_radiotap_header(local, skb, rate, needed_headroom, 
    753 +                                        true); 
    754   
    755         skb_reset_mac_header(skb); 
    756         skb->ip_summed = CHECKSUM_UNNECESSARY; 
    757 @@ -2282,6 +2283,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
     714@@ -2283,6 +2283,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
    758715                    sdata->vif.type != NL80211_IFTYPE_MESH_POINT && 
    759716                    sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
     
    763720                        break; 
    764721  
    765 @@ -2496,14 +2498,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
     722@@ -2497,14 +2498,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
    766723  
    767724        if (!ieee80211_vif_is_mesh(&sdata->vif) && 
     
    781738        case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP): 
    782739        case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP): 
    783 @@ -2567,7 +2570,8 @@ static void ieee80211_rx_cooked_monitor( 
    784                 goto out_free_skb; 
    785   
    786         /* prepend radiotap information */ 
    787 -       ieee80211_add_rx_radiotap_header(local, skb, rate, needed_headroom); 
    788 +       ieee80211_add_rx_radiotap_header(local, skb, rate, needed_headroom, 
    789 +                                        false); 
    790   
    791         skb_set_mac_header(skb, 0); 
    792         skb->ip_summed = CHECKSUM_UNNECESSARY; 
    793 @@ -2836,10 +2840,16 @@ static int prepare_for_handlers(struct i 
     740@@ -2838,10 +2840,16 @@ static int prepare_for_handlers(struct i 
    794741                } 
    795742                break; 
     
    828775        WLAN_STA_MFP, 
    829776        WLAN_STA_BLOCK_BA, 
    830 --- a/drivers/net/wireless/ath/ath9k/init.c 
    831 +++ b/drivers/net/wireless/ath/ath9k/init.c 
    832 @@ -647,6 +647,24 @@ void ath9k_reload_chainmask_settings(str 
    833                 setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap); 
    834  } 
    835   
    836 +static const struct ieee80211_iface_limit if_limits[] = { 
    837 +       { .max = 2048,  .types = BIT(NL80211_IFTYPE_STATION) | 
    838 +                                BIT(NL80211_IFTYPE_P2P_CLIENT) | 
    839 +                                BIT(NL80211_IFTYPE_WDS) }, 
    840 +       { .max = 8,     .types = 
    841 +#ifdef CONFIG_MAC80211_MESH 
    842 +                                BIT(NL80211_IFTYPE_MESH_POINT) | 
    843 +#endif 
    844 +                                BIT(NL80211_IFTYPE_AP) | 
    845 +                                BIT(NL80211_IFTYPE_P2P_GO) }, 
    846 +}; 
    847 + 
    848 +static const struct ieee80211_iface_combination if_comb = { 
    849 +       .limits = if_limits, 
    850 +       .n_limits = ARRAY_SIZE(if_limits), 
    851 +       .max_interfaces = 2048, 
    852 +       .num_different_channels = 1, 
    853 +}; 
    854   
    855  void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw) 
    856  { 
    857 @@ -676,6 +694,9 @@ void ath9k_set_hw_capab(struct ath_softc 
    858                 BIT(NL80211_IFTYPE_ADHOC) | 
    859                 BIT(NL80211_IFTYPE_MESH_POINT); 
    860   
    861 +       hw->wiphy->iface_combinations = &if_comb; 
    862 +       hw->wiphy->n_iface_combinations = 1; 
    863 + 
    864         if (AR_SREV_5416(sc->sc_ah)) 
    865                 hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; 
    866   
    867 --- a/net/mac80211/ibss.c 
    868 +++ b/net/mac80211/ibss.c 
    869 @@ -455,8 +455,8 @@ static void ieee80211_rx_bss_info(struct 
    870                          * fall back to HT20 if we don't use or use 
    871                          * the other extension channel 
    872                          */ 
    873 -                       if ((channel_type == NL80211_CHAN_HT40MINUS || 
    874 -                            channel_type == NL80211_CHAN_HT40PLUS) && 
    875 +                       if (!(channel_type == NL80211_CHAN_HT40MINUS || 
    876 +                             channel_type == NL80211_CHAN_HT40PLUS) || 
    877                             channel_type != sdata->u.ibss.channel_type) 
    878                                 sta_ht_cap_new.cap &= 
    879                                         ~IEEE80211_HT_CAP_SUP_WIDTH_20_40; 
     777--- a/drivers/net/wireless/iwlwifi/iwl-agn.h 
     778+++ b/drivers/net/wireless/iwlwifi/iwl-agn.h 
     779@@ -425,6 +425,7 @@ void iwl_testmode_cleanup(struct iwl_pri 
     780 #ifdef CONFIG_IWLWIFI_DEBUG 
     781 void iwl_print_rx_config_cmd(struct iwl_priv *priv, 
     782                             enum iwl_rxon_context_id ctxid); 
     783+int iwl_alloc_traffic_mem(struct iwl_priv *priv); 
     784 #else 
     785 static inline void iwl_print_rx_config_cmd(struct iwl_priv *priv, 
     786                                           enum iwl_rxon_context_id ctxid) 
     787@@ -510,7 +511,6 @@ void iwl_setup_deferred_work(struct iwl_ 
     788 int iwl_send_wimax_coex(struct iwl_priv *priv); 
     789 int iwl_send_bt_env(struct iwl_priv *priv, u8 action, u8 type); 
     790 void iwl_debug_config(struct iwl_priv *priv); 
     791-int iwl_alloc_traffic_mem(struct iwl_priv *priv); 
     792 void iwl_set_hw_params(struct iwl_priv *priv); 
     793 void iwl_init_context(struct iwl_priv *priv, u32 ucode_flags); 
     794 int iwl_init_drv(struct iwl_priv *priv); 
     795--- a/drivers/net/wireless/libertas/firmware.c 
     796+++ b/drivers/net/wireless/libertas/firmware.c 
     797@@ -5,6 +5,7 @@ 
     798 #include <linux/firmware.h> 
     799 #include <linux/firmware.h> 
     800 #include <linux/module.h> 
     801+#include <linux/sched.h> 
     802  
     803 #include "dev.h" 
     804 #include "decl.h" 
  • trunk/package/mac80211/patches/402-ath9k-fix-invalid-mac-address-handling.patch

    r31322 r31347  
    99  
    1010 #include "hw.h" 
    11 @@ -482,8 +483,16 @@ static int ath9k_hw_init_macaddr(struct  
     11@@ -531,8 +532,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/405-regd_no_assoc_hints.patch

    r31322 r31347  
    11--- a/net/wireless/reg.c 
    22+++ b/net/wireless/reg.c 
    3 @@ -1698,6 +1698,8 @@ void regulatory_hint_11d(struct wiphy *w 
     3@@ -1699,6 +1699,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 @@ -1933,6 +1935,8 @@ static void restore_regulatory_settings( 
     12@@ -1934,6 +1936,8 @@ static void restore_regulatory_settings( 
    1313  
    1414 void regulatory_hint_disconnect(void) 
  • trunk/package/mac80211/patches/431-add_platform_eeprom_support_to_ath5k.patch

    r31322 r31347  
    99 #include "ath5k.h" 
    1010 #include "debug.h" 
    11 @@ -72,7 +73,7 @@ static void ath5k_pci_read_cachesize(str 
     11@@ -73,7 +74,7 @@ static void ath5k_pci_read_cachesize(str 
    1212 } 
    1313  
     
    1818 static bool 
    1919 ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data) 
    20 @@ -80,6 +81,19 @@ ath5k_pci_eeprom_read(struct ath_common  
     20@@ -81,6 +82,19 @@ ath5k_pci_eeprom_read(struct ath_common  
    2121        struct ath5k_hw *ah = (struct ath5k_hw *) common->ah; 
    2222        u32 status, timeout; 
     
    3838         * Initialize EEPROM access 
    3939         */ 
    40 @@ -123,6 +137,16 @@ static int ath5k_pci_eeprom_read_mac(str 
     40@@ -124,6 +138,16 @@ static int ath5k_pci_eeprom_read_mac(str 
    4141        u16 data; 
    4242        int octet; 
  • trunk/package/mac80211/patches/432-ath5k_add_pciids.patch

    r31322 r31347  
    77+       { PCI_VDEVICE(ATHEROS, 0xff16) }, /* 2413,2414 sx76x on lantiq_danube */ 
    88+       { PCI_VDEVICE(ATHEROS, 0xff1a) }, /* 2417 arv45xx on lantiq_danube */ 
     9        { PCI_VDEVICE(ATHEROS, 0xff1b) }, /* AR5BXB63 */ 
    910        { 0 } 
    1011 }; 
    11  MODULE_DEVICE_TABLE(pci, ath5k_pci_id_table); 
  • trunk/package/mac80211/patches/500-ath9k_eeprom_debugfs.patch

    r31322 r31347  
    11--- a/drivers/net/wireless/ath/ath9k/debug.c 
    22+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    3 @@ -1544,6 +1544,53 @@ static const struct file_operations fops 
     3@@ -1532,6 +1532,53 @@ static const struct file_operations fops 
    44  
    55 #endif 
     
    5555 { 
    5656        struct ath_common *common = ath9k_hw_common(ah); 
    57 @@ -1607,5 +1654,8 @@ int ath9k_init_debug(struct ath_hw *ah) 
     57@@ -1595,5 +1642,8 @@ 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

    r31322 r31347  
    11--- a/drivers/net/wireless/ath/ath9k/hw.c 
    22+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    3 @@ -1887,8 +1887,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
     3@@ -1936,8 +1936,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
    44        REG_WRITE(ah, AR_OBS, 8); 
    55  
  • trunk/package/mac80211/patches/512-ath9k_channelbw_debugfs.patch

    r31322 r31347  
    1919--- a/drivers/net/wireless/ath/ath9k/debug.c 
    2020+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    21 @@ -1591,6 +1591,50 @@ static const struct file_operations fops 
     21@@ -1579,6 +1579,50 @@ static const struct file_operations fops 
    2222        .owner = THIS_MODULE 
    2323 }; 
     
    7070 { 
    7171        struct ath_common *common = ath9k_hw_common(ah); 
    72 @@ -1657,5 +1701,8 @@ int ath9k_init_debug(struct ath_hw *ah) 
     72@@ -1645,5 +1689,8 @@ int ath9k_init_debug(struct ath_hw *ah) 
    7373        debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc, 
    7474                            &fops_eeprom); 
  • trunk/package/mac80211/patches/522-ath9k_per_chain_signal_strength.patch

    r31322 r31347  
    188188--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    189189+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    190 @@ -453,12 +453,12 @@ int ath9k_hw_process_rxdesc_edma(struct  
     190@@ -455,12 +455,12 @@ int ath9k_hw_process_rxdesc_edma(struct  
    191191  
    192192        /* XXX: Keycache */ 
     
    249249--- a/drivers/net/wireless/ath/ath9k/debug.c 
    250250+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    251 @@ -1009,12 +1009,12 @@ void ath_debug_stat_rx(struct ath_softc  
     251@@ -997,12 +997,12 @@ void ath_debug_stat_rx(struct ath_softc  
    252252 #ifdef CONFIG_ATH9K_MAC_DEBUG 
    253253        spin_lock(&sc->debug.samp_lock); 
  • trunk/package/mac80211/patches/530-ath9k_limit_qlen.patch

    r31322 r31347  
    2121--- a/drivers/net/wireless/ath/ath9k/debug.c 
    2222+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    23 @@ -1658,6 +1658,10 @@ int ath9k_init_debug(struct ath_hw *ah) 
     23@@ -1646,6 +1646,10 @@ int ath9k_init_debug(struct ath_hw *ah) 
    2424                            &fops_interrupt); 
    2525        debugfs_create_file("xmit", S_IRUSR, sc->debug.debugfs_phy, sc, 
     
    7575        TX_STAT_INC(txctl->txq->axq_qnum, a_queued_hw); 
    7676        bf->bf_lastbf = bf; 
    77 @@ -1861,22 +1874,11 @@ error: 
     77@@ -1869,22 +1882,11 @@ error: 
    7878  
    7979 /* FIXME: tx power */ 
     
    100100        if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) && tid) { 
    101101                /* 
    102 @@ -1908,6 +1910,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
     102@@ -1916,6 +1918,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
    103103        struct ieee80211_vif *vif = info->control.vif; 
    104104        struct ath_softc *sc = hw->priv; 
     
    108108        int frmlen = skb->len + FCS_LEN; 
    109109        int q; 
    110 @@ -1950,6 +1953,24 @@ int ath_tx_start(struct ieee80211_hw *hw 
     110@@ -1958,6 +1961,24 @@ int ath_tx_start(struct ieee80211_hw *hw 
    111111  
    112112        setup_frame_info(hw, skb, frmlen); 
     
    133133         * At this point, the vif, hw_key and sta pointers in the tx control 
    134134         * info are no longer valid (overwritten by the ath_frame_info data. 
    135 @@ -1964,7 +1985,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
     135@@ -1972,7 +1993,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
    136136                txq->stopped = true; 
    137137        } 
  • trunk/package/mac80211/patches/540-ath9k_extra_leds.patch

    r31326 r31347  
    183183--- a/drivers/net/wireless/ath/ath9k/debug.c 
    184184+++ b/drivers/net/wireless/ath/ath9k/debug.c 
    185 @@ -1267,6 +1267,61 @@ static const struct file_operations fops 
     185@@ -1255,6 +1255,61 @@ static const struct file_operations fops 
    186186        .llseek = default_llseek, 
    187187 }; 
     
    245245  
    246246 void ath9k_debug_samp_bb_mac(struct ath_softc *sc) 
    247 @@ -1696,6 +1751,11 @@ int ath9k_init_debug(struct ath_hw *ah) 
     247@@ -1684,6 +1739,11 @@ int ath9k_init_debug(struct ath_hw *ah) 
    248248                            &fops_samps); 
    249249 #endif 
  • trunk/package/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch

    r31322 r31347  
    240240--- a/drivers/net/wireless/rt2x00/rt2x00dev.c 
    241241+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 
    242 @@ -1160,6 +1160,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de 
     242@@ -1161,6 +1161,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de 
    243243                    BIT(NL80211_IFTYPE_MESH_POINT) | 
    244244                    BIT(NL80211_IFTYPE_WDS); 
     
    251251         * Initialize work. 
    252252         */ 
    253 @@ -1284,6 +1288,11 @@ void rt2x00lib_remove_dev(struct rt2x00_ 
     253@@ -1285,6 +1289,11 @@ void rt2x00lib_remove_dev(struct rt2x00_ 
    254254         */ 
    255255        if (rt2x00dev->drv_data) 
  • trunk/package/mac80211/patches/604-rt2x00-add-CONFIG_RT2X00_LIB_EEPROM-option.patch

    r31322 r31347  
    77+export CONFIG_RT2X00_LIB_EEPROM=y 
    88 export CONFIG_RT2X00_LIB_CRYPTO=y 
    9  # CONFIG_RT2X00_LIB_SOC=y 
     9 # export CONFIG_RT2X00_LIB_SOC=y 
    1010 ifdef CONFIG_COMPAT_KERNEL_2_6_25 
  • trunk/package/mac80211/patches/607-rt2x00-allow_disabling_bands_through_platform_data.patch

    r30871 r31347  
    1313--- a/drivers/net/wireless/rt2x00/rt2x00dev.c 
    1414+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c 
    15 @@ -833,6 +833,22 @@ static int rt2x00lib_probe_hw_modes(stru 
     15@@ -834,6 +834,22 @@ static int rt2x00lib_probe_hw_modes(stru 
    1616        unsigned int num_rates; 
    1717        unsigned int i; 
Note: See TracChangeset for help on using the changeset viewer.