Changeset 32002


Ignore:
Timestamp:
2012-05-30T03:01:06+02:00 (6 years ago)
Author:
nbd
Message:

mac80211: update to wireless-testing 2012-05-29

Location:
trunk/package/mac80211
Files:
2 added
7 deleted
44 edited
3 moved

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/Makefile

    r31954 r32002  
    1111PKG_NAME:=mac80211 
    1212 
    13 PKG_VERSION:=2012-04-17 
    14 PKG_RELEASE:=2 
     13PKG_VERSION:=2012-05-29 
     14PKG_RELEASE:=1 
    1515PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources 
    16 PKG_MD5SUM:=2607092b22b5cb552dc3c79921c85369 
     16PKG_MD5SUM:=a98eedfcb1690405626217e040deec1a 
    1717 
    1818PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2 
  • trunk/package/mac80211/patches/000-disable_ethernet.patch

    r31322 r32002  
    11--- a/Makefile 
    22+++ b/Makefile 
    3 @@ -29,9 +29,6 @@ obj-$(CONFIG_COMPAT_WIRELESS_MODULES) += 
     3@@ -44,9 +44,6 @@ obj-$(CONFIG_COMPAT_WIRELESS_MODULES) += 
    44  
    55 obj-$(CONFIG_COMPAT_NET_USB_MODULES) += drivers/net/usb/ 
  • trunk/package/mac80211/patches/001-disable_b44.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -362,8 +362,8 @@ export CONFIG_B43_BCMA_EXTRA=y 
     3@@ -370,8 +370,8 @@ export CONFIG_B43_BCMA_EXTRA=y 
    44  
    55 export CONFIG_P54_PCI=m 
  • trunk/package/mac80211/patches/002-disable_rfkill.patch

    r31322 r32002  
    1010 ifeq ($(CONFIG_MAC80211),y) 
    1111 $(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular") 
    12 @@ -668,10 +668,10 @@ endif #CONFIG_COMPAT_KERNEL_2_6_27 
     12@@ -675,10 +675,10 @@ endif #CONFIG_COMPAT_KERNEL_2_6_27 
    1313 # We need the backported rfkill module on kernel < 2.6.31. 
    1414 # In more recent kernel versions use the in kernel rfkill module. 
  • trunk/package/mac80211/patches/003-disable_bt.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -99,8 +99,8 @@ ifndef CONFIG_COMPAT_KERNEL_2_6_27 
     3@@ -99,9 +99,9 @@ ifndef CONFIG_COMPAT_KERNEL_2_6_27 
    44 ifeq ($(CONFIG_BT),y) 
    55 # we'll ignore compiling bluetooth 
     
    77- export CONFIG_COMPAT_BLUETOOTH=y 
    88- export CONFIG_COMPAT_BLUETOOTH_MODULES=m 
     9- export CONFIG_HID_GENERIC=m 
    910+# export CONFIG_COMPAT_BLUETOOTH=y 
    1011+# export CONFIG_COMPAT_BLUETOOTH_MODULES=m 
     12+# export CONFIG_HID_GENERIC=m 
    1113 endif 
    1214 endif #CONFIG_COMPAT_KERNEL_2_6_27 
  • trunk/package/mac80211/patches/005-disable_ssb_build.patch

    r31347 r32002  
    11--- a/Makefile 
    22+++ b/Makefile 
    3 @@ -29,7 +29,6 @@ obj-$(CONFIG_COMPAT_WIRELESS_MODULES) += 
     3@@ -44,7 +44,6 @@ obj-$(CONFIG_COMPAT_WIRELESS_MODULES) += 
    44  
    55 obj-$(CONFIG_COMPAT_NET_USB_MODULES) += drivers/net/usb/ 
     
    2020 include $(KLIB_BUILD)/.config 
    2121 endif 
    22 @@ -338,7 +338,8 @@ export CONFIG_IPW2200_QOS=y 
     22@@ -346,7 +346,8 @@ export CONFIG_IPW2200_QOS=y 
    2323 # % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface 
    2424 endif #CONFIG_WIRELESS_EXT 
     
    3030 export CONFIG_SSB_SPROM=y 
    3131  
    32 @@ -351,7 +352,7 @@ endif #CONFIG_PCMCIA 
     32@@ -359,7 +360,7 @@ endif #CONFIG_PCMCIA 
    3333 # export CONFIG_SSB_DEBUG=y 
    3434 export CONFIG_SSB_DRIVER_PCICORE=y 
     
    3939 export CONFIG_BCMA=m 
    4040 export CONFIG_BCMA_BLOCKIO=y 
    41 @@ -562,7 +563,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
     41@@ -574,7 +575,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
    4242  
    4343 ifdef CONFIG_MMC 
  • trunk/package/mac80211/patches/006-disable_bcma_build.patch

    r31347 r32002  
    11--- a/Makefile 
    22+++ b/Makefile 
    3 @@ -29,7 +29,6 @@ obj-$(CONFIG_COMPAT_WIRELESS_MODULES) += 
     3@@ -44,7 +44,6 @@ obj-$(CONFIG_COMPAT_WIRELESS_MODULES) += 
    44  
    55 obj-$(CONFIG_COMPAT_NET_USB_MODULES) += drivers/net/usb/ 
     
    1111--- a/config.mk 
    1212+++ b/config.mk 
    13 @@ -354,12 +354,12 @@ export CONFIG_SSB_DRIVER_PCICORE=y 
     13@@ -362,12 +362,12 @@ export CONFIG_SSB_DRIVER_PCICORE=y 
    1414 export CONFIG_B43_SSB=y 
    1515 endif #__CONFIG_SSB 
  • trunk/package/mac80211/patches/007-remove_misc_drivers.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -237,7 +237,7 @@ $(warning "WARNING: CONFIG_CFG80211_WEXT 
     3@@ -240,7 +240,7 @@ $(warning "WARNING: CONFIG_CFG80211_WEXT 
    44 endif #CONFIG_WIRELESS_EXT 
    55  
     
    1010  
    1111 # mac80211 test driver 
    12 @@ -391,15 +391,15 @@ endif #CONFIG_CRC_ITU_T 
     12@@ -399,15 +399,15 @@ endif #CONFIG_CRC_ITU_T 
    1313 export CONFIG_MWL8K=m 
    1414  
     
    2020+# export CONFIG_ATL2=m 
    2121+# export CONFIG_ATL1E=m 
    22  ifdef CONFIG_COMPAT_KERNEL_2_6_27 
     22 ifdef CONFIG_COMPAT_KERNEL_2_6_28 
     23-export CONFIG_ATL1C=m 
     24-export CONFIG_ALX=n 
     25+# export CONFIG_ATL1C=m 
     26+# export CONFIG_ALX=n 
     27 else #CONFIG_COMPAT_KERNEL_2_6_28 
    2328-export CONFIG_ATL1C=n 
    2429-export CONFIG_ALX=m 
    2530+# export CONFIG_ATL1C=n 
    2631+# export CONFIG_ALX=m 
    27  else #CONFIG_COMPAT_KERNEL_2_6_27 
    28 -export CONFIG_ATL1C=n 
    29 -export CONFIG_ALX=m 
    30 +# export CONFIG_ATL1C=n 
    31 +# export CONFIG_ALX=m 
    32  endif #CONFIG_COMPAT_KERNEL_2_6_27 
     32 endif #CONFIG_COMPAT_KERNEL_2_6_28 
    3333  
    3434 ifdef CONFIG_WIRELESS_EXT 
    35 @@ -460,21 +460,21 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
     35@@ -468,21 +468,21 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
    3636 # Note: this depends on CONFIG_USB_NET_RNDIS_HOST and CONFIG_USB_NET_CDCETHER 
    3737 # it also requires new RNDIS_HOST and CDC_ETHER modules which we add 
  • trunk/package/mac80211/patches/008-disable_mesh.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -175,7 +175,7 @@ export CONFIG_MAC80211_LEDS=y 
     3@@ -176,7 +176,7 @@ export CONFIG_MAC80211_LEDS=y 
    44 endif #CONFIG_LEDS_TRIGGERS 
    55  
  • trunk/package/mac80211/patches/010-no_pcmcia.patch

    r31322 r32002  
    1010 else 
    1111 include $(KLIB_BUILD)/.config 
    12 @@ -289,7 +289,7 @@ export CONFIG_B43=m 
     12@@ -297,7 +297,7 @@ export CONFIG_B43=m 
    1313 export CONFIG_B43_HWRNG=y 
    1414 export CONFIG_B43_PCI_AUTOSELECT=y 
  • trunk/package/mac80211/patches/011-no_sdio.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -564,7 +564,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
     3@@ -576,7 +576,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
    44 ifdef CONFIG_MMC 
    55  
  • trunk/package/mac80211/patches/013-disable_b43_nphy.patch

    r31347 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -295,8 +295,8 @@ ifdef CONFIG_MAC80211_LEDS 
     3@@ -303,8 +303,8 @@ ifdef CONFIG_MAC80211_LEDS 
    44 export CONFIG_B43_LEDS=y 
    55 endif #CONFIG_MAC80211_LEDS 
  • trunk/package/mac80211/patches/015-remove-rt2x00-options.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -370,7 +370,7 @@ export CONFIG_RTL8180=m 
     3@@ -378,7 +378,7 @@ export CONFIG_RTL8180=m 
    44  
    55 export CONFIG_ADM8211=m 
     
    1010 export CONFIG_RT2500PCI=m 
    1111 ifdef CONFIG_CRC_CCITT 
    12 @@ -512,7 +512,7 @@ export CONFIG_RT2800USB_RT35XX=y 
     12@@ -524,7 +524,7 @@ export CONFIG_RT2800USB_RT35XX=y 
    1313 export CONFIG_RT2800USB_RT53XX=y 
    1414 export CONFIG_RT2800USB_UNKNOWN=y 
  • trunk/package/mac80211/patches/016-remove_pid_algo.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -167,7 +167,7 @@ export CONFIG_MAC80211_RC_DEFAULT_MINSTR 
     3@@ -168,7 +168,7 @@ export CONFIG_MAC80211_RC_DEFAULT_MINSTR 
    44 # This is the one used by our compat-wireless net/mac80211/rate.c 
    55 # in case you have and old kernel which is overriding this to pid. 
  • trunk/package/mac80211/patches/017-remove_ath9k_rc.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -261,7 +261,7 @@ export CONFIG_ATH9K_COMMON=m 
     3@@ -264,7 +264,7 @@ export CONFIG_ATH9K_COMMON=m 
    44 # as default once we get minstrel properly tested and blessed by 
    55 # our systems engineering team. CCK rates also need to be used 
  • trunk/package/mac80211/patches/019-remove_ath5k_pci_option.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -268,7 +268,7 @@ export CONFIG_ATH9K_BTCOEX_SUPPORT=y 
     3@@ -276,7 +276,7 @@ endif #CONFIG_COMPAT_KERNEL_2_6_27 
    44 # PCI Drivers 
    55 ifdef CONFIG_PCI 
  • trunk/package/mac80211/patches/022-remove_crc8_and_cordic.patch

    r31322 r32002  
    11--- a/compat/Makefile 
    22+++ b/compat/Makefile 
    3 @@ -38,8 +38,6 @@ compat-$(CONFIG_COMPAT_KERNEL_3_2) += co 
    4  compat-$(CONFIG_COMPAT_KERNEL_3_3) += compat-3.3.o 
    5  compat-$(CONFIG_COMPAT_KERNEL_3_5) += compat-3.5.o 
     3@@ -43,8 +43,6 @@ compat-$(CONFIG_COMPAT_KERNEL_3_3) += \ 
     4        flow_dissector.o 
     5 compat-$(CONFIG_COMPAT_KERNEL_3_4) += compat-3.4.o 
    66  
    77-compat-$(CONFIG_COMPAT_CORDIC) += cordic.o 
  • trunk/package/mac80211/patches/023-ath9k_disable_btcoex.patch

    r31322 r32002  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -263,7 +263,7 @@ export CONFIG_ATH9K_COMMON=m 
     3@@ -266,7 +266,7 @@ export CONFIG_ATH9K_COMMON=m 
    44 # for long range considerations. 
    55 # export CONFIG_COMPAT_ATH9K_RATE_CONTROL=y 
     
    88+# export CONFIG_ATH9K_BTCOEX_SUPPORT=y 
    99  
    10  # PCI Drivers 
    11  ifdef CONFIG_PCI 
     10 ifndef CONFIG_COMPAT_KERNEL_2_6_27 
     11 export CONFIG_ATH6KL=m 
  • trunk/package/mac80211/patches/050-compat_firmware.patch

    r31322 r32002  
    11--- a/compat/Makefile 
    22+++ b/compat/Makefile 
    3 @@ -1,10 +1,13 @@ 
     3@@ -1,7 +1,10 @@ 
    44 obj-m += compat.o 
    55 #compat-objs := 
    66  
    77-obj-$(CONFIG_COMPAT_FIRMWARE_CLASS) += compat_firmware_class.o 
    8   
    9  compat-y += main.o 
    10   
    118+ifdef CONFIG_COMPAT_FIRMWARE_CLASS 
    129+  compat-y += compat_firmware_class.o 
    1310+endif 
    1411+ 
    15  # Compat kernel compatibility code 
    16  compat-$(CONFIG_COMPAT_KERNEL_2_6_14) += compat-2.6.14.o 
    17  compat-$(CONFIG_COMPAT_KERNEL_2_6_18) += compat-2.6.18.o 
     12 obj-$(CONFIG_COMPAT_NET_SCH_CODEL) += sch_codel.o 
     13 obj-$(CONFIG_COMPAT_NET_SCH_FQ_CODEL) += sch_fq_codel.o 
     14  
    1815--- a/compat/compat_firmware_class.c 
    1916+++ b/compat/compat_firmware_class.c 
     
    4239--- a/compat/main.c 
    4340+++ b/compat/main.c 
    44 @@ -37,6 +37,17 @@ void compat_dependency_symbol(void) 
    45  } 
     41@@ -47,6 +47,17 @@ void compat_dependency_symbol(void) 
    4642 EXPORT_SYMBOL_GPL(compat_dependency_symbol); 
     43  
    4744  
    4845+#if defined(CONFIG_FW_LOADER) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) 
     
    5956 static int __init compat_init(void) 
    6057 { 
    61         /* pm-qos for kernels <= 2.6.24, this is a no-op on newer kernels */ 
    62 @@ -51,7 +62,8 @@ static int __init compat_init(void) 
    63                COMPAT_BASE_TREE " " COMPAT_BASE_TREE_VERSION 
    64                "\n"); 
     58        compat_pm_qos_power_init(); 
     59@@ -63,7 +74,8 @@ static int __init compat_init(void) 
     60        printk(KERN_INFO "compat.git: " 
     61               COMPAT_BASE_TREE "\n"); 
    6562  
    6663-        return 0; 
     
    7067 module_init(compat_init); 
    7168  
    72 @@ -60,7 +72,8 @@ static void __exit compat_exit(void) 
     69@@ -72,7 +84,8 @@ static void __exit compat_exit(void) 
    7370        compat_pm_qos_power_deinit(); 
    7471        compat_system_workqueue_destroy(); 
  • trunk/package/mac80211/patches/060-compat_add_module_pci_driver.patch

    r31437 r32002  
    11--- a/include/linux/compat-3.4.h 
    22+++ b/include/linux/compat-3.4.h 
    3 @@ -62,6 +62,19 @@ static inline void eth_hw_addr_random(st 
    4  #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)) */ 
    5  #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)) */ 
     3@@ -77,6 +77,19 @@ static inline void eth_hw_addr_random(st 
     4        module_driver(__pci_driver, pci_register_driver, \ 
     5                       pci_unregister_driver) 
    66  
    77+/* source include/linux/pci.h */ 
  • trunk/package/mac80211/patches/110-disable_usb_compat.patch

    r31347 r32002  
    3434--- a/config.mk 
    3535+++ b/config.mk 
    36 @@ -498,7 +498,7 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
     36@@ -506,7 +506,7 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
    3737 # This activates a threading fix for usb urb. 
    3838 # this is mainline commit: b3e670443b7fb8a2d29831b62b44a039c283e351 
  • trunk/package/mac80211/patches/120-pr_fmt_warnings.patch

    r31347 r32002  
    1 --- a/drivers/net/wireless/ath/ath5k/ani.c 
    2 +++ b/drivers/net/wireless/ath/ath5k/ani.c 
    3 @@ -14,6 +14,7 @@ 
    4   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    5   */ 
    6   
    7 +#undef pr_fmt 
    8  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    9   
    10  #include "ath5k.h" 
    11 --- a/drivers/net/wireless/ath/ath5k/attach.c 
    12 +++ b/drivers/net/wireless/ath/ath5k/attach.c 
    13 @@ -20,6 +20,7 @@ 
    14  * Attach/Detach Functions and helpers * 
    15  \*************************************/ 
    16   
    17 +#undef pr_fmt 
    18  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    19   
    20  #include <linux/pci.h> 
    21 --- a/drivers/net/wireless/ath/ath5k/base.c 
    22 +++ b/drivers/net/wireless/ath/ath5k/base.c 
    23 @@ -40,6 +40,7 @@ 
    24   * 
    25   */ 
    26   
    27 +#undef pr_fmt 
    28  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    29   
    30  #include <linux/module.h> 
    311--- a/drivers/net/wireless/ath/ath5k/debug.c 
    322+++ b/drivers/net/wireless/ath/ath5k/debug.c 
     
    399  
    4010 #include <linux/export.h> 
    41 --- a/drivers/net/wireless/ath/ath5k/desc.c 
    42 +++ b/drivers/net/wireless/ath/ath5k/desc.c 
    43 @@ -21,6 +21,7 @@ 
    44   Hardware Descriptor Functions 
    45  \******************************/ 
    46   
    47 +#undef pr_fmt 
    48  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    49   
    50  #include "ath5k.h" 
    51 --- a/drivers/net/wireless/ath/ath5k/dma.c 
    52 +++ b/drivers/net/wireless/ath/ath5k/dma.c 
    53 @@ -29,6 +29,7 @@ 
    54   * status registers (ISR). 
    55   */ 
    56   
    57 +#undef pr_fmt 
    58  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    59   
    60  #include "ath5k.h" 
    61 --- a/drivers/net/wireless/ath/ath5k/eeprom.c 
    62 +++ b/drivers/net/wireless/ath/ath5k/eeprom.c 
    63 @@ -21,6 +21,7 @@ 
    64  * EEPROM access functions and helpers * 
    65  \*************************************/ 
    66   
    67 +#undef pr_fmt 
    68  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    69   
    70  #include <linux/slab.h> 
    71 --- a/drivers/net/wireless/ath/ath5k/initvals.c 
    72 +++ b/drivers/net/wireless/ath/ath5k/initvals.c 
    73 @@ -19,6 +19,7 @@ 
    74   * 
    75   */ 
    76   
    77 +#undef pr_fmt 
    78  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    79   
    80  #include "ath5k.h" 
    81 --- a/drivers/net/wireless/ath/ath5k/led.c 
    82 +++ b/drivers/net/wireless/ath/ath5k/led.c 
    83 @@ -39,6 +39,7 @@ 
    84   * 
    85   */ 
    86   
    87 +#undef pr_fmt 
    88  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    89   
    90  #include <linux/pci.h> 
    91 --- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c 
    92 +++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c 
    93 @@ -41,6 +41,7 @@ 
    94   * 
    95   */ 
    96   
    97 +#undef pr_fmt 
    98  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    99   
    100  #include <net/mac80211.h> 
    101 --- a/drivers/net/wireless/ath/ath5k/pci.c 
    102 +++ b/drivers/net/wireless/ath/ath5k/pci.c 
    103 @@ -14,6 +14,7 @@ 
    104   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    105   */ 
    106   
    107 +#undef pr_fmt 
    108  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    109   
    110  #include <linux/nl80211.h> 
    111 --- a/drivers/net/wireless/ath/ath5k/phy.c 
    112 +++ b/drivers/net/wireless/ath/ath5k/phy.c 
    113 @@ -22,6 +22,7 @@ 
    114  * PHY related functions * 
    115  \***********************/ 
    116   
    117 +#undef pr_fmt 
    118  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    119   
    120  #include <linux/delay.h> 
    121 --- a/drivers/net/wireless/ath/ath5k/qcu.c 
    122 +++ b/drivers/net/wireless/ath/ath5k/qcu.c 
    123 @@ -20,6 +20,7 @@ 
    124  Queue Control Unit, DCF Control Unit Functions 
    125  \********************************************/ 
    126   
    127 +#undef pr_fmt 
    128  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    129   
    130  #include "ath5k.h" 
    131 --- a/drivers/net/wireless/ath/ath5k/reset.c 
    132 +++ b/drivers/net/wireless/ath/ath5k/reset.c 
    133 @@ -23,6 +23,7 @@ 
    134    Reset function and helpers 
    135  \****************************/ 
    136   
    137 +#undef pr_fmt 
    138  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    139   
    140  #include <asm/unaligned.h> 
    141 --- a/drivers/net/wireless/ath/ath5k/sysfs.c 
    142 +++ b/drivers/net/wireless/ath/ath5k/sysfs.c 
    143 @@ -1,3 +1,4 @@ 
    144 +#undef pr_fmt 
    145  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    146   
    147  #include <linux/device.h> 
    148 --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c 
    149 +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c 
    150 @@ -15,6 +15,7 @@ 
    151   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    152   */ 
    153   
    154 +#undef pr_fmt 
    155  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    156   
    157  #include <linux/moduleparam.h> 
    158 --- a/drivers/net/wireless/ath/ath6kl/init.c 
    159 +++ b/drivers/net/wireless/ath/ath6kl/init.c 
    160 @@ -16,6 +16,7 @@ 
    161   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    162   */ 
    163   
    164 +#undef pr_fmt 
    165  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    166   
    167  #include <linux/moduleparam.h> 
    168 --- a/drivers/net/wireless/ath/ath6kl/main.c 
    169 +++ b/drivers/net/wireless/ath/ath6kl/main.c 
    170 @@ -15,6 +15,7 @@ 
    171   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    172   */ 
    173   
    174 +#undef pr_fmt 
    175  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    176   
    177  #include "core.h" 
    178 --- a/drivers/net/wireless/ath/ath6kl/txrx.c 
    179 +++ b/drivers/net/wireless/ath/ath6kl/txrx.c 
    180 @@ -15,6 +15,7 @@ 
    181   * OR IN 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 "core.h" 
    188 --- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c 
    189 +++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c 
    190 @@ -14,6 +14,7 @@ 
    191   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    192   */ 
    193   
    194 +#undef pr_fmt 
    195  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    196   
    197  #include "htc.h" 
    198 --- a/drivers/net/wireless/ath/ath9k/htc_hst.c 
    199 +++ b/drivers/net/wireless/ath/ath9k/htc_hst.c 
    200 @@ -14,6 +14,7 @@ 
    201   * OR IN 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 "htc.h" 
    208 --- a/drivers/net/wireless/ath/ath9k/init.c 
    209 +++ b/drivers/net/wireless/ath/ath9k/init.c 
    210 @@ -14,6 +14,7 @@ 
    211   * OR IN 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/dma-mapping.h> 
    218 --- a/drivers/net/wireless/ath/ath9k/pci.c 
    219 +++ b/drivers/net/wireless/ath/ath9k/pci.c 
    220 @@ -14,6 +14,7 @@ 
    221   * OR IN 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/nl80211.h> 
    228 --- a/drivers/net/wireless/ath/main.c 
    229 +++ b/drivers/net/wireless/ath/main.c 
    230 @@ -14,6 +14,7 @@ 
    231   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    232   */ 
    233   
    234 +#undef pr_fmt 
    235  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    236   
    237  #include <linux/kernel.h> 
    238 --- a/drivers/net/wireless/ath/regd.c 
    239 +++ b/drivers/net/wireless/ath/regd.c 
    240 @@ -14,6 +14,7 @@ 
    241   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
    242   */ 
    243   
    244 +#undef pr_fmt 
    245  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    246   
    247  #include <linux/kernel.h> 
    248 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c 
    249 +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c 
    250 @@ -27,6 +27,7 @@ 
    251   * 
    252   *****************************************************************************/ 
    253   
    254 +#undef pr_fmt 
    255  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    256   
    257  #include <linux/kernel.h> 
    258 --- a/drivers/net/wireless/iwlwifi/iwl-pci.c 
    259 +++ b/drivers/net/wireless/iwlwifi/iwl-pci.c 
    260 @@ -61,6 +61,7 @@ 
    261   * 
    262   *****************************************************************************/ 
    263   
    264 +#undef pr_fmt 
    265  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 
    266   
    267  #include <linux/module.h> 
  • trunk/package/mac80211/patches/201-ath5k-WAR-for-AR71xx-PCI-bug.patch

    r31322 r32002  
    11--- a/drivers/net/wireless/ath/ath5k/initvals.c 
    22+++ b/drivers/net/wireless/ath/ath5k/initvals.c 
    3 @@ -63,8 +63,14 @@ static const struct ath5k_ini ar5210_ini 
     3@@ -65,8 +65,14 @@ static const struct ath5k_ini ar5210_ini 
    44        { AR5K_IMR,             0 }, 
    55        { AR5K_IER,             AR5K_IER_DISABLE }, 
     
    1818--- a/drivers/net/wireless/ath/ath5k/dma.c 
    1919+++ b/drivers/net/wireless/ath/ath5k/dma.c 
    20 @@ -861,10 +861,18 @@ ath5k_hw_dma_init(struct ath5k_hw *ah) 
     20@@ -863,10 +863,18 @@ ath5k_hw_dma_init(struct ath5k_hw *ah) 
    2121         * guess we can tweak it and see how it goes ;-) 
    2222         */ 
  • trunk/package/mac80211/patches/300-pending_work.patch

    r31862 r32002  
    11--- a/drivers/net/wireless/ath/ath5k/base.c 
    22+++ b/drivers/net/wireless/ath/ath5k/base.c 
    3 @@ -2416,6 +2416,22 @@ ath5k_tx_complete_poll_work(struct work_ 
     3@@ -2417,6 +2417,22 @@ ath5k_tx_complete_poll_work(struct work_ 
    44 * Initialization routines * 
    55 \*************************/ 
     
    2424 ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops) 
    2525 { 
    26 @@ -2437,6 +2453,9 @@ ath5k_init_ah(struct ath5k_hw *ah, const 
     26@@ -2438,6 +2454,9 @@ ath5k_init_ah(struct ath5k_hw *ah, const 
    2727                BIT(NL80211_IFTYPE_ADHOC) | 
    2828                BIT(NL80211_IFTYPE_MESH_POINT); 
     
    3333        /* SW support for IBSS_RSN is provided by mac80211 */ 
    3434        hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; 
    35   
    36 --- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c 
    37 +++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c 
    38 @@ -618,19 +618,10 @@ static void ar5008_hw_init_bb(struct ath 
    39         u32 synthDelay; 
    40   
    41         synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY; 
    42 -       if (IS_CHAN_B(chan)) 
    43 -               synthDelay = (4 * synthDelay) / 22; 
    44 -       else 
    45 -               synthDelay /= 10; 
    46 - 
    47 -       if (IS_CHAN_HALF_RATE(chan)) 
    48 -               synthDelay *= 2; 
    49 -       else if (IS_CHAN_QUARTER_RATE(chan)) 
    50 -               synthDelay *= 4; 
    51   
    52         REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN); 
    53   
    54 -       udelay(synthDelay + BASE_ACTIVATE_DELAY); 
    55 +       ath9k_hw_synth_delay(ah, chan, synthDelay); 
    56  } 
    57   
    58  static void ar5008_hw_init_chain_masks(struct ath_hw *ah) 
    59 @@ -868,7 +859,7 @@ static int ar5008_hw_process_ini(struct  
    60         ar5008_hw_set_channel_regs(ah, chan); 
    61         ar5008_hw_init_chain_masks(ah); 
    62         ath9k_olc_init(ah); 
    63 -       ath9k_hw_apply_txpower(ah, chan); 
    64 +       ath9k_hw_apply_txpower(ah, chan, false); 
    65   
    66         /* Write analog registers */ 
    67         if (!ath9k_hw_set_rf_regs(ah, chan, freqIndex)) { 
    68 @@ -948,12 +939,8 @@ static bool ar5008_hw_rfbus_req(struct a 
    69  static void ar5008_hw_rfbus_done(struct ath_hw *ah) 
    70  { 
    71         u32 synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY; 
    72 -       if (IS_CHAN_B(ah->curchan)) 
    73 -               synthDelay = (4 * synthDelay) / 22; 
    74 -       else 
    75 -               synthDelay /= 10; 
    76   
    77 -       udelay(synthDelay + BASE_ACTIVATE_DELAY); 
    78 +       ath9k_hw_synth_delay(ah, ah->curchan, synthDelay); 
    79   
    80         REG_WRITE(ah, AR_PHY_RFBUS_REQ, 0); 
    81  } 
    82 --- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c 
    83 +++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c 
    84 @@ -1000,10 +1000,12 @@ static bool ar9003_hw_init_cal(struct at 
    85         if (mci && IS_CHAN_2GHZ(chan) && run_agc_cal) 
    86                 ar9003_mci_init_cal_req(ah, &is_reusable); 
    87   
    88 -       txiqcal_done = ar9003_hw_tx_iq_cal_run(ah); 
    89 -       REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS); 
    90 -       udelay(5); 
    91 -       REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN); 
    92 +       if (!(IS_CHAN_HALF_RATE(chan) || IS_CHAN_QUARTER_RATE(chan))) { 
    93 +               txiqcal_done = ar9003_hw_tx_iq_cal_run(ah); 
    94 +               REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS); 
    95 +               udelay(5); 
    96 +               REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN); 
    97 +       } 
    98   
    99  skip_tx_iqcal: 
    100         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)) 
    217 --- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c 
    218 +++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c 
    219 @@ -54,7 +54,7 @@ void ar9003_paprd_enable(struct ath_hw * 
    220   
    221         if (val) { 
    222                 ah->paprd_table_write_done = true; 
    223 -               ath9k_hw_apply_txpower(ah, chan); 
    224 +               ath9k_hw_apply_txpower(ah, chan, false); 
    225         } 
    226   
    227         REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL0_B0, 
    228 --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c 
    229 +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c 
    230 @@ -373,7 +373,7 @@ static void ar9003_hw_spur_ofdm_work(str 
    231                         else 
    232                                 spur_subchannel_sd = 0; 
    233   
    234 -                       spur_freq_sd = (freq_offset << 9) / 11; 
    235 +                       spur_freq_sd = ((freq_offset + 10) << 9) / 11; 
    236   
    237                 } else { 
    238                         if (REG_READ_FIELD(ah, AR_PHY_GEN_CTRL, 
    239 @@ -382,7 +382,7 @@ static void ar9003_hw_spur_ofdm_work(str 
    240                         else 
    241                                 spur_subchannel_sd = 1; 
    242   
    243 -                       spur_freq_sd = (freq_offset << 9) / 11; 
    244 +                       spur_freq_sd = ((freq_offset - 10) << 9) / 11; 
    245   
    246                 } 
    247   
    248 @@ -526,22 +526,10 @@ static void ar9003_hw_init_bb(struct ath 
    249          * Value is in 100ns increments. 
    250          */ 
    251         synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY; 
    252 -       if (IS_CHAN_B(chan)) 
    253 -               synthDelay = (4 * synthDelay) / 22; 
    254 -       else 
    255 -               synthDelay /= 10; 
    256   
    257         /* Activate the PHY (includes baseband activate + synthesizer on) */ 
    258         REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN); 
    259 - 
    260 -       /* 
    261 -        * There is an issue if the AP starts the calibration before 
    262 -        * the base band timeout completes.  This could result in the 
    263 -        * rx_clear false triggering.  As a workaround we add delay an 
    264 -        * extra BASE_ACTIVATE_DELAY usecs to ensure this condition 
    265 -        * does not happen. 
    266 -        */ 
    267 -       udelay(synthDelay + BASE_ACTIVATE_DELAY); 
    268 +       ath9k_hw_synth_delay(ah, chan, synthDelay); 
    269  } 
    270   
    271  static void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx) 
    272 @@ -692,7 +680,7 @@ static int ar9003_hw_process_ini(struct  
    273         ar9003_hw_override_ini(ah); 
    274         ar9003_hw_set_channel_regs(ah, chan); 
    275         ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask); 
    276 -       ath9k_hw_apply_txpower(ah, chan); 
    277 +       ath9k_hw_apply_txpower(ah, chan, false); 
    278   
    279         if (AR_SREV_9462(ah)) { 
    280                 if (REG_READ_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_0, 
    281 @@ -723,6 +711,14 @@ static void ar9003_hw_set_rfmode(struct  
    282   
    283         if (IS_CHAN_A_FAST_CLOCK(ah, chan)) 
    284                 rfMode |= (AR_PHY_MODE_DYNAMIC | AR_PHY_MODE_DYN_CCK_DISABLE); 
    285 +       if (IS_CHAN_QUARTER_RATE(chan)) 
    286 +               rfMode |= AR_PHY_MODE_QUARTER; 
    287 +       if (IS_CHAN_HALF_RATE(chan)) 
    288 +               rfMode |= AR_PHY_MODE_HALF; 
    289 + 
    290 +       if (rfMode & (AR_PHY_MODE_QUARTER | AR_PHY_MODE_HALF)) 
    291 +               REG_RMW_FIELD(ah, AR_PHY_FRAME_CTL, 
    292 +                             AR_PHY_FRAME_CTL_CF_OVERLAP_WINDOW, 3); 
    293   
    294         REG_WRITE(ah, AR_PHY_MODE, rfMode); 
    295  } 
    296 @@ -793,12 +789,8 @@ static bool ar9003_hw_rfbus_req(struct a 
    297  static void ar9003_hw_rfbus_done(struct ath_hw *ah) 
    298  { 
    299         u32 synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY; 
    300 -       if (IS_CHAN_B(ah->curchan)) 
    301 -               synthDelay = (4 * synthDelay) / 22; 
    302 -       else 
    303 -               synthDelay /= 10; 
    304   
    305 -       udelay(synthDelay + BASE_ACTIVATE_DELAY); 
    306 +       ath9k_hw_synth_delay(ah, ah->curchan, synthDelay); 
    307   
    308         REG_WRITE(ah, AR_PHY_RFBUS_REQ, 0); 
    309  } 
    310 --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.h 
    311 +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.h 
    312 @@ -468,6 +468,9 @@ 
    313  #define AR_PHY_ADDAC_PARA_CTL    (AR_SM_BASE + 0x150) 
    314  #define AR_PHY_XPA_CFG           (AR_SM_BASE + 0x158) 
    315   
    316 +#define AR_PHY_FRAME_CTL_CF_OVERLAP_WINDOW  3 
    317 +#define AR_PHY_FRAME_CTL_CF_OVERLAP_WINDOW_S    0 
    318 + 
    319  #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A           0x0001FC00 
    320  #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A_S         10 
    321  #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A                       0x3FF 
    322 --- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c 
    323 +++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c 
    324 @@ -798,6 +798,8 @@ static void ath9k_hw_ar9287_set_txpower( 
    325                         regulatory->max_power_level = ratesArray[i]; 
    326         } 
    327   
    328 +       ath9k_hw_update_regulatory_maxpower(ah); 
    329 + 
    330         if (test) 
    331                 return; 
    332   
    333 --- a/drivers/net/wireless/ath/ath9k/hw.c 
    334 +++ b/drivers/net/wireless/ath/ath9k/hw.c 
    335 @@ -191,6 +191,22 @@ bool ath9k_hw_wait(struct ath_hw *ah, u3 
    336  } 
    337  EXPORT_SYMBOL(ath9k_hw_wait); 
    338   
    339 +void ath9k_hw_synth_delay(struct ath_hw *ah, struct ath9k_channel *chan, 
    340 +                         int hw_delay) 
    341 +{ 
    342 +       if (IS_CHAN_B(chan)) 
    343 +               hw_delay = (4 * hw_delay) / 22; 
    344 +       else 
    345 +               hw_delay /= 10; 
    346 + 
    347 +       if (IS_CHAN_HALF_RATE(chan)) 
    348 +               hw_delay *= 2; 
    349 +       else if (IS_CHAN_QUARTER_RATE(chan)) 
    350 +               hw_delay *= 4; 
    351 + 
    352 +       udelay(hw_delay + BASE_ACTIVATE_DELAY); 
    353 +} 
    354 + 
    355  void ath9k_hw_write_array(struct ath_hw *ah, struct ar5416IniArray *array, 
    356                           int column, unsigned int *writecnt) 
    357  { 
    358 @@ -1020,7 +1036,7 @@ void ath9k_hw_init_global_settings(struc 
    359         struct ath_common *common = ath9k_hw_common(ah); 
    360         struct ieee80211_conf *conf = &common->hw->conf; 
    361         const struct ath9k_channel *chan = ah->curchan; 
    362 -       int acktimeout, ctstimeout; 
    363 +       int acktimeout, ctstimeout, ack_offset = 0; 
    364         int slottime; 
    365         int sifstime; 
    366         int rx_lat = 0, tx_lat = 0, eifs = 0; 
    367 @@ -1041,6 +1057,11 @@ void ath9k_hw_init_global_settings(struc 
    368                 rx_lat = 37; 
    369         tx_lat = 54; 
    370   
    371 +       if (IS_CHAN_5GHZ(chan)) 
    372 +               sifstime = 16; 
    373 +       else 
    374 +               sifstime = 10; 
    375 + 
    376         if (IS_CHAN_HALF_RATE(chan)) { 
    377                 eifs = 175; 
    378                 rx_lat *= 2; 
    379 @@ -1048,8 +1069,9 @@ void ath9k_hw_init_global_settings(struc 
    380                 if (IS_CHAN_A_FAST_CLOCK(ah, chan)) 
    381                     tx_lat += 11; 
    382   
    383 +               sifstime *= 2; 
    384 +               ack_offset = 16; 
    385                 slottime = 13; 
    386 -               sifstime = 32; 
    387         } else if (IS_CHAN_QUARTER_RATE(chan)) { 
    388                 eifs = 340; 
    389                 rx_lat = (rx_lat * 4) - 1; 
    390 @@ -1057,8 +1079,9 @@ void ath9k_hw_init_global_settings(struc 
    391                 if (IS_CHAN_A_FAST_CLOCK(ah, chan)) 
    392                     tx_lat += 22; 
    393   
    394 +               sifstime *= 4; 
    395 +               ack_offset = 32; 
    396                 slottime = 21; 
    397 -               sifstime = 64; 
    398         } else { 
    399                 if (AR_SREV_9287(ah) && AR_SREV_9287_13_OR_LATER(ah)) { 
    400                         eifs = AR_D_GBL_IFS_EIFS_ASYNC_FIFO; 
    401 @@ -1072,14 +1095,10 @@ void ath9k_hw_init_global_settings(struc 
    402                 tx_lat = MS(reg, AR_USEC_TX_LAT); 
    403   
    404                 slottime = ah->slottime; 
    405 -               if (IS_CHAN_5GHZ(chan)) 
    406 -                       sifstime = 16; 
    407 -               else 
    408 -                       sifstime = 10; 
    409         } 
    410   
    411         /* As defined by IEEE 802.11-2007 17.3.8.6 */ 
    412 -       acktimeout = slottime + sifstime + 3 * ah->coverage_class; 
    413 +       acktimeout = slottime + sifstime + 3 * ah->coverage_class + ack_offset; 
    414         ctstimeout = acktimeout; 
    415   
    416         /* 
    417 @@ -1089,7 +1108,8 @@ void ath9k_hw_init_global_settings(struc 
    418          * BA frames in some implementations, but it has been found to fix ACK 
    419          * timeout issues in other cases as well. 
    420          */ 
    421 -       if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ) { 
    422 +       if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ && 
    423 +           !IS_CHAN_HALF_RATE(chan) && !IS_CHAN_QUARTER_RATE(chan)) { 
    424                 acktimeout += 64 - sifstime - ah->slottime; 
    425                 ctstimeout += 48 - sifstime - ah->slottime; 
    426         } 
    427 @@ -1469,6 +1489,10 @@ static bool ath9k_hw_channel_change(stru 
    428                                                     CHANNEL_5GHZ)); 
    429         mode_diff = (chan->chanmode != ah->curchan->chanmode); 
    430   
    431 +       if ((ah->curchan->channelFlags | chan->channelFlags) & 
    432 +           (CHANNEL_HALF | CHANNEL_QUARTER)) 
    433 +               return false; 
    434 + 
    435         for (qnum = 0; qnum < AR_NUM_QCU; qnum++) { 
    436                 if (ath9k_hw_numtxpending(ah, qnum)) { 
    437                         ath_dbg(common, QUEUE, 
    438 @@ -1502,7 +1526,7 @@ static bool ath9k_hw_channel_change(stru 
    439                 return false; 
    440         } 
    441         ath9k_hw_set_clockrate(ah); 
    442 -       ath9k_hw_apply_txpower(ah, chan); 
    443 +       ath9k_hw_apply_txpower(ah, chan, false); 
    444         ath9k_hw_rfbus_done(ah); 
    445   
    446         if (IS_CHAN_OFDM(chan) || IS_CHAN_HT(chan)) 
    447 @@ -2773,7 +2797,8 @@ static int get_antenna_gain(struct ath_h 
    448         return ah->eep_ops->get_eeprom(ah, gain_param); 
    449  } 
    450   
    451 -void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan) 
    452 +void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan, 
    453 +                           bool test) 
    454  { 
    455         struct ath_regulatory *reg = ath9k_hw_regulatory(ah); 
    456         struct ieee80211_channel *channel; 
    457 @@ -2794,7 +2819,7 @@ void ath9k_hw_apply_txpower(struct ath_h 
    458   
    459         ah->eep_ops->set_txpower(ah, chan, 
    460                                  ath9k_regd_get_ctl(reg, chan), 
    461 -                                ant_reduction, new_pwr, false); 
    462 +                                ant_reduction, new_pwr, test); 
    463  } 
    464   
    465  void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test) 
    466 @@ -2807,7 +2832,7 @@ void ath9k_hw_set_txpowerlimit(struct at 
    467         if (test) 
    468                 channel->max_power = MAX_RATE_POWER / 2; 
    469   
    470 -       ath9k_hw_apply_txpower(ah, chan); 
    471 +       ath9k_hw_apply_txpower(ah, chan, test); 
    472   
    473         if (test) 
    474                 channel->max_power = DIV_ROUND_UP(reg->max_power_level, 2); 
    475 --- a/drivers/net/wireless/ath/ath9k/hw.h 
    476 +++ b/drivers/net/wireless/ath/ath9k/hw.h 
    477 @@ -923,6 +923,8 @@ void ath9k_hw_set_gpio(struct ath_hw *ah 
    478  void ath9k_hw_setantenna(struct ath_hw *ah, u32 antenna); 
    479   
    480  /* General Operation */ 
    481 +void ath9k_hw_synth_delay(struct ath_hw *ah, struct ath9k_channel *chan, 
    482 +                         int hw_delay); 
    483  bool ath9k_hw_wait(struct ath_hw *ah, u32 reg, u32 mask, u32 val, u32 timeout); 
    484  void ath9k_hw_write_array(struct ath_hw *ah, struct ar5416IniArray *array, 
    485                           int column, unsigned int *writecnt); 
    486 @@ -982,7 +984,8 @@ void ath9k_hw_name(struct ath_hw *ah, ch 
    487  /* PHY */ 
    488  void ath9k_hw_get_delta_slope_vals(struct ath_hw *ah, u32 coef_scaled, 
    489                                    u32 *coef_mantissa, u32 *coef_exponent); 
    490 -void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan); 
    491 +void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan, 
    492 +                           bool test); 
    493   
    494  /* 
    495   * Code Specific to AR5008, AR9001 or AR9002, 
    496 --- a/drivers/net/wireless/ath/ath9k/init.c 
    497 +++ b/drivers/net/wireless/ath/ath9k/init.c 
    498 @@ -647,6 +647,24 @@ void ath9k_reload_chainmask_settings(str 
    499                 setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap); 
    500  } 
    501   
    502 +static const struct ieee80211_iface_limit if_limits[] = { 
    503 +       { .max = 2048,  .types = BIT(NL80211_IFTYPE_STATION) | 
    504 +                                BIT(NL80211_IFTYPE_P2P_CLIENT) | 
    505 +                                BIT(NL80211_IFTYPE_WDS) }, 
    506 +       { .max = 8,     .types = 
    507 +#ifdef CONFIG_MAC80211_MESH 
    508 +                                BIT(NL80211_IFTYPE_MESH_POINT) | 
    509 +#endif 
    510 +                                BIT(NL80211_IFTYPE_AP) | 
    511 +                                BIT(NL80211_IFTYPE_P2P_GO) }, 
    512 +}; 
    513 + 
    514 +static const struct ieee80211_iface_combination if_comb = { 
    515 +       .limits = if_limits, 
    516 +       .n_limits = ARRAY_SIZE(if_limits), 
    517 +       .max_interfaces = 2048, 
    518 +       .num_different_channels = 1, 
    519 +}; 
    520   
    521  void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw) 
    522  { 
    523 @@ -676,6 +694,9 @@ void ath9k_set_hw_capab(struct ath_softc 
    524                 BIT(NL80211_IFTYPE_ADHOC) | 
    525                 BIT(NL80211_IFTYPE_MESH_POINT); 
    526   
    527 +       hw->wiphy->iface_combinations = &if_comb; 
    528 +       hw->wiphy->n_iface_combinations = 1; 
    529 + 
    530         if (AR_SREV_5416(sc->sc_ah)) 
    531                 hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; 
    532   
    533 --- a/drivers/net/wireless/ath/ath9k/mac.c 
    534 +++ b/drivers/net/wireless/ath/ath9k/mac.c 
    535 @@ -133,8 +133,16 @@ EXPORT_SYMBOL(ath9k_hw_updatetxtriglevel 
    536   
    537  void ath9k_hw_abort_tx_dma(struct ath_hw *ah) 
    538  { 
    539 +       int maxdelay = 1000; 
    540         int i, q; 
    541   
    542 +       if (ah->curchan) { 
    543 +               if (IS_CHAN_HALF_RATE(ah->curchan)) 
    544 +                       maxdelay *= 2; 
    545 +               else if (IS_CHAN_QUARTER_RATE(ah->curchan)) 
    546 +                       maxdelay *= 4; 
    547 +       } 
    548 + 
    549         REG_WRITE(ah, AR_Q_TXD, AR_Q_TXD_M); 
    550   
    551         REG_SET_BIT(ah, AR_PCU_MISC, AR_PCU_FORCE_QUIET_COLL | AR_PCU_CLEAR_VMF); 
    552 @@ -142,7 +150,7 @@ void ath9k_hw_abort_tx_dma(struct ath_hw 
    553         REG_SET_BIT(ah, AR_D_GBL_IFS_MISC, AR_D_GBL_IFS_MISC_IGNORE_BACKOFF); 
    554   
    555         for (q = 0; q < AR_NUM_QCU; q++) { 
    556 -               for (i = 0; i < 1000; i++) { 
    557 +               for (i = 0; i < maxdelay; i++) { 
    558                         if (i) 
    559                                 udelay(5); 
    56035  
    56136--- a/net/mac80211/agg-rx.c 
     
    58257        else if (sdata->vif.type == NL80211_IFTYPE_STATION) 
    58358                memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); 
    584 @@ -484,6 +485,7 @@ int ieee80211_start_tx_ba_session(struct 
     59@@ -490,6 +491,7 @@ int ieee80211_start_tx_ba_session(struct 
    58560            sdata->vif.type != NL80211_IFTYPE_MESH_POINT && 
    58661            sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
     
    60883--- a/net/mac80211/iface.c 
    60984+++ b/net/mac80211/iface.c 
    610 @@ -206,8 +206,10 @@ static void ieee80211_set_default_queues 
    611         for (i = 0; i < IEEE80211_NUM_ACS; i++) { 
    612                 if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL) 
    613                         sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE; 
    614 -               else 
    615 +               else if (local->hw.queues >= IEEE80211_NUM_ACS) 
    616                         sdata->vif.hw_queue[i] = i; 
    617 +               else 
    618 +                       sdata->vif.hw_queue[i] = 0; 
    619         } 
    620         sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; 
    621  } 
    622 @@ -282,7 +284,6 @@ static int ieee80211_do_open(struct net_ 
     85@@ -284,7 +284,6 @@ static int ieee80211_do_open(struct net_ 
    62386 { 
    62487        struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 
     
    62891        int res; 
    62992        u32 hw_reconf_flags = 0; 
    630 @@ -428,28 +429,6 @@ static int ieee80211_do_open(struct net_ 
     93@@ -430,28 +429,6 @@ static int ieee80211_do_open(struct net_ 
    63194  
    63295        set_bit(SDATA_STATE_RUNNING, &sdata->state); 
     
    657120         * set_multicast_list will be invoked by the networking core 
    658121         * which will check whether any increments here were done in 
    659 @@ -846,6 +825,72 @@ static void ieee80211_if_setup(struct ne 
     122@@ -848,6 +825,72 @@ static void ieee80211_if_setup(struct ne 
    660123        dev->destructor = free_netdev; 
    661124 } 
     
    730193 { 
    731194        struct ieee80211_sub_if_data *sdata = 
    732 @@ -950,6 +995,9 @@ static void ieee80211_iface_work(struct  
     195@@ -952,6 +995,9 @@ static void ieee80211_iface_work(struct  
    733196                                break; 
    734197                        ieee80211_mesh_rx_queued_mgmt(sdata, skb); 
     
    742205--- a/net/mac80211/rx.c 
    743206+++ b/net/mac80211/rx.c 
    744 @@ -2283,6 +2283,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
     207@@ -2284,6 +2284,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
    745208                    sdata->vif.type != NL80211_IFTYPE_MESH_POINT && 
    746209                    sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
     
    750213                        break; 
    751214  
    752 @@ -2497,14 +2498,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
     215@@ -2498,14 +2499,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
    753216  
    754217        if (!ieee80211_vif_is_mesh(&sdata->vif) && 
     
    768231        case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP): 
    769232        case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP): 
    770 @@ -2838,10 +2840,16 @@ static int prepare_for_handlers(struct i 
     233@@ -2839,10 +2841,16 @@ static int prepare_for_handlers(struct i 
    771234                } 
    772235                break; 
     
    805268        WLAN_STA_MFP, 
    806269        WLAN_STA_BLOCK_BA, 
    807 --- a/drivers/net/wireless/iwlwifi/iwl-agn.h 
    808 +++ b/drivers/net/wireless/iwlwifi/iwl-agn.h 
    809 @@ -425,6 +425,7 @@ void iwl_testmode_cleanup(struct iwl_pri 
    810  #ifdef CONFIG_IWLWIFI_DEBUG 
    811  void iwl_print_rx_config_cmd(struct iwl_priv *priv, 
    812                              enum iwl_rxon_context_id ctxid); 
    813 +int iwl_alloc_traffic_mem(struct iwl_priv *priv); 
    814  #else 
    815  static inline void iwl_print_rx_config_cmd(struct iwl_priv *priv, 
    816                                            enum iwl_rxon_context_id ctxid) 
    817 @@ -510,7 +511,6 @@ void iwl_setup_deferred_work(struct iwl_ 
    818  int iwl_send_wimax_coex(struct iwl_priv *priv); 
    819  int iwl_send_bt_env(struct iwl_priv *priv, u8 action, u8 type); 
    820  void iwl_debug_config(struct iwl_priv *priv); 
    821 -int iwl_alloc_traffic_mem(struct iwl_priv *priv); 
    822  void iwl_set_hw_params(struct iwl_priv *priv); 
    823  void iwl_init_context(struct iwl_priv *priv, u32 ucode_flags); 
    824  int iwl_init_drv(struct iwl_priv *priv); 
    825 --- a/drivers/net/wireless/libertas/firmware.c 
    826 +++ b/drivers/net/wireless/libertas/firmware.c 
    827 @@ -5,6 +5,7 @@ 
    828  #include <linux/firmware.h> 
    829  #include <linux/firmware.h> 
    830  #include <linux/module.h> 
    831 +#include <linux/sched.h> 
    832   
    833  #include "dev.h" 
    834  #include "decl.h" 
    835 --- a/drivers/net/wireless/ath/ath9k/recv.c 
    836 +++ b/drivers/net/wireless/ath/ath9k/recv.c 
    837 @@ -812,6 +812,7 @@ static bool ath9k_rx_accept(struct ath_c 
    838         is_valid_tkip = rx_stats->rs_keyix != ATH9K_RXKEYIX_INVALID && 
    839                 test_bit(rx_stats->rs_keyix, common->tkip_keymap); 
    840         strip_mic = is_valid_tkip && ieee80211_is_data(fc) && 
    841 +               ieee80211_has_protected(fc) && 
    842                 !(rx_stats->rs_status & 
    843                 (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC | 
    844                  ATH9K_RXERR_KEYMISS)); 
    845 --- a/net/mac80211/cfg.c 
    846 +++ b/net/mac80211/cfg.c 
    847 @@ -1005,6 +1005,9 @@ static int ieee80211_change_station(stru 
    848         } 
    849   
    850         if (params->vlan && params->vlan != sta->sdata->dev) { 
    851 +               bool prev_4addr = false; 
    852 +               bool new_4addr = false; 
    853 + 
    854                 vlansdata = IEEE80211_DEV_TO_SUB_IF(params->vlan); 
    855   
    856                 if (vlansdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
    857 @@ -1020,9 +1023,25 @@ static int ieee80211_change_station(stru 
    858                         } 
    859   
    860                         rcu_assign_pointer(vlansdata->u.vlan.sta, sta); 
    861 +                       new_4addr = true; 
    862 +               } 
    863 + 
    864 +               if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && 
    865 +                   sta->sdata->u.vlan.sta) { 
    866 +                       rcu_assign_pointer(sta->sdata->u.vlan.sta, NULL); 
    867 +                       prev_4addr = true; 
    868                 } 
    869   
    870                 sta->sdata = vlansdata; 
    871 + 
    872 +               if (sta->sta_state == IEEE80211_STA_AUTHORIZED && 
    873 +                   prev_4addr != new_4addr) { 
    874 +                       if (new_4addr) 
    875 +                               atomic_dec(&sta->sdata->bss->num_mcast_sta); 
    876 +                       else 
    877 +                               atomic_inc(&sta->sdata->bss->num_mcast_sta); 
    878 +               } 
    879 + 
    880                 ieee80211_send_layer2_update(sta); 
    881         } 
    882   
    883 --- a/net/mac80211/debugfs_netdev.c 
    884 +++ b/net/mac80211/debugfs_netdev.c 
    885 @@ -394,7 +394,7 @@ static ssize_t ieee80211_if_parse_uapsd_ 
    886  __IEEE80211_IF_FILE_W(uapsd_max_sp_len); 
    887   
    888  /* AP attributes */ 
    889 -IEEE80211_IF_FILE(num_sta_authorized, u.ap.num_sta_authorized, ATOMIC); 
    890 +IEEE80211_IF_FILE(num_mcast_sta, u.ap.num_mcast_sta, ATOMIC); 
    891  IEEE80211_IF_FILE(num_sta_ps, u.ap.num_sta_ps, ATOMIC); 
    892  IEEE80211_IF_FILE(dtim_count, u.ap.dtim_count, DEC); 
    893   
    894 @@ -540,7 +540,7 @@ static void add_sta_files(struct ieee802 
    895   
    896  static void add_ap_files(struct ieee80211_sub_if_data *sdata) 
    897  { 
    898 -       DEBUGFS_ADD(num_sta_authorized); 
    899 +       DEBUGFS_ADD(num_mcast_sta); 
    900         DEBUGFS_ADD(num_sta_ps); 
    901         DEBUGFS_ADD(dtim_count); 
    902         DEBUGFS_ADD(num_buffered_multicast); 
    903 --- a/net/mac80211/ieee80211_i.h 
    904 +++ b/net/mac80211/ieee80211_i.h 
    905 @@ -282,7 +282,7 @@ struct ieee80211_if_ap { 
    906         u8 tim[sizeof(unsigned long) * BITS_TO_LONGS(IEEE80211_MAX_AID + 1)]; 
    907         struct sk_buff_head ps_bc_buf; 
    908         atomic_t num_sta_ps; /* number of stations in PS mode */ 
    909 -       atomic_t num_sta_authorized; /* number of authorized stations */ 
    910 +       atomic_t num_mcast_sta; /* number of stations receiving multicast */ 
    911         int dtim_count; 
    912         bool dtim_bc_mc; 
    913  }; 
    914 --- a/net/mac80211/sta_info.c 
    915 +++ b/net/mac80211/sta_info.c 
    916 @@ -1417,15 +1417,19 @@ int sta_info_move_state(struct sta_info  
    917                 if (sta->sta_state == IEEE80211_STA_AUTH) { 
    918                         set_bit(WLAN_STA_ASSOC, &sta->_flags); 
    919                 } else if (sta->sta_state == IEEE80211_STA_AUTHORIZED) { 
    920 -                       if (sta->sdata->vif.type == NL80211_IFTYPE_AP) 
    921 -                               atomic_dec(&sta->sdata->u.ap.num_sta_authorized); 
    922 +                       if (sta->sdata->vif.type == NL80211_IFTYPE_AP || 
    923 +                           (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && 
    924 +                            !sta->sdata->u.vlan.sta)) 
    925 +                               atomic_dec(&sta->sdata->bss->num_mcast_sta); 
    926                         clear_bit(WLAN_STA_AUTHORIZED, &sta->_flags); 
    927                 } 
    928                 break; 
    929         case IEEE80211_STA_AUTHORIZED: 
    930                 if (sta->sta_state == IEEE80211_STA_ASSOC) { 
    931 -                       if (sta->sdata->vif.type == NL80211_IFTYPE_AP) 
    932 -                               atomic_inc(&sta->sdata->u.ap.num_sta_authorized); 
    933 +                       if (sta->sdata->vif.type == NL80211_IFTYPE_AP || 
    934 +                           (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && 
    935 +                            !sta->sdata->u.vlan.sta)) 
    936 +                               atomic_inc(&sta->sdata->bss->num_mcast_sta); 
    937                         set_bit(WLAN_STA_AUTHORIZED, &sta->_flags); 
    938                 } 
    939                 break; 
    940 --- a/net/mac80211/tx.c 
    941 +++ b/net/mac80211/tx.c 
    942 @@ -306,7 +306,7 @@ ieee80211_tx_h_check_assoc(struct ieee80 
    943                 } 
    944         } else if (unlikely(tx->sdata->vif.type == NL80211_IFTYPE_AP && 
    945                             ieee80211_is_data(hdr->frame_control) && 
    946 -                           !atomic_read(&tx->sdata->u.ap.num_sta_authorized))) { 
    947 +                           !atomic_read(&tx->sdata->u.ap.num_mcast_sta))) { 
    948                 /* 
    949                  * No associated STAs - no need to send multicast 
    950                  * frames. 
    951 @@ -1159,7 +1159,8 @@ ieee80211_tx_prepare(struct ieee80211_su 
    952                 tx->sta = rcu_dereference(sdata->u.vlan.sta); 
    953                 if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr) 
    954                         return TX_DROP; 
    955 -       } else if (info->flags & IEEE80211_TX_CTL_INJECTED) { 
    956 +       } else if (info->flags & IEEE80211_TX_CTL_INJECTED || 
    957 +                  tx->sdata->control_port_protocol == tx->skb->protocol) { 
    958                 tx->sta = sta_info_get_bss(sdata, hdr->addr1); 
    959         } 
    960         if (!tx->sta) 
    961 --- a/net/wireless/scan.c 
    962 +++ b/net/wireless/scan.c 
    963 @@ -378,7 +378,11 @@ static int cmp_bss_core(struct cfg80211_ 
    964                                b->len_information_elements); 
    965         } 
    966   
    967 -       return compare_ether_addr(a->bssid, b->bssid); 
    968 +       /* 
    969 +        * we can't use compare_ether_addr here since we need a < > operator. 
    970 +        * The binary return value of compare_ether_addr isn't enough 
    971 +        */ 
    972 +       return memcmp(a->bssid, b->bssid, sizeof(a->bssid)); 
    973  } 
    974   
    975  static int cmp_bss(struct cfg80211_bss *a, 
  • trunk/package/mac80211/patches/401-ath9k_blink_default.patch

    r31322 r32002  
    11--- a/drivers/net/wireless/ath/ath9k/init.c 
    22+++ b/drivers/net/wireless/ath/ath9k/init.c 
    3 @@ -39,7 +39,7 @@ int ath9k_modparam_nohwcrypt; 
     3@@ -40,7 +40,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-ath_regd_optional.patch

    r31322 r32002  
    11--- a/drivers/net/wireless/ath/regd.c 
    22+++ b/drivers/net/wireless/ath/regd.c 
    3 @@ -199,6 +199,10 @@ ath_reg_apply_beaconing_flags(struct wip 
     3@@ -200,6 +200,10 @@ ath_reg_apply_beaconing_flags(struct wip 
    44        u32 bandwidth = 0; 
    55        int r; 
     
    1212  
    1313                if (!wiphy->bands[band]) 
    14 @@ -258,6 +262,10 @@ ath_reg_apply_active_scan_flags(struct w 
     14@@ -259,6 +263,10 @@ ath_reg_apply_active_scan_flags(struct w 
    1515        u32 bandwidth = 0; 
    1616        int r; 
     
    2323        if (!sband) 
    2424                return; 
    25 @@ -307,6 +315,10 @@ static void ath_reg_apply_radar_flags(st 
     25@@ -308,6 +316,10 @@ static void ath_reg_apply_radar_flags(st 
    2626        struct ieee80211_channel *ch; 
    2727        unsigned int i; 
     
    3434                return; 
    3535  
    36 @@ -513,6 +525,10 @@ ath_regd_init_wiphy(struct ath_regulator 
     36@@ -514,6 +526,10 @@ ath_regd_init_wiphy(struct ath_regulator 
    3737 { 
    3838        const struct ieee80211_regdomain *regd; 
  • trunk/package/mac80211/patches/404-world_regd_fixup.patch

    r31322 r32002  
    11--- a/drivers/net/wireless/ath/regd.c 
    22+++ b/drivers/net/wireless/ath/regd.c 
    3 @@ -43,7 +43,8 @@ static int __ath_regd_init(struct ath_re 
     3@@ -44,7 +44,8 @@ static int __ath_regd_init(struct ath_re 
    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 @@ -61,57 +62,56 @@ static int __ath_regd_init(struct ath_re 
     13@@ -62,57 +63,56 @@ static int __ath_regd_init(struct ath_re 
    1414 #define ATH9K_5GHZ_NO_MIDBAND  ATH9K_5GHZ_5150_5350, \ 
    1515                                ATH9K_5GHZ_5725_5850 
  • trunk/package/mac80211/patches/410-ath9k_allow_adhoc_and_ap.patch

    r31326 r32002  
    11--- a/drivers/net/wireless/ath/ath9k/main.c 
    22+++ b/drivers/net/wireless/ath/ath9k/main.c 
    3 @@ -1445,15 +1445,6 @@ static int ath9k_add_interface(struct ie 
     3@@ -1443,15 +1443,6 @@ static int ath9k_add_interface(struct ie 
    44                } 
    55        } 
     
    1717  
    1818        sc->nvifs++; 
    19 @@ -1478,15 +1469,6 @@ static int ath9k_change_interface(struct 
     19@@ -1476,15 +1467,6 @@ static int ath9k_change_interface(struct 
    2020        mutex_lock(&sc->mutex); 
    2121        ath9k_ps_wakeup(sc); 
     
    3535--- a/drivers/net/wireless/ath/ath9k/init.c 
    3636+++ b/drivers/net/wireless/ath/ath9k/init.c 
    37 @@ -655,6 +655,7 @@ static const struct ieee80211_iface_limi 
     37@@ -656,6 +656,7 @@ static const struct ieee80211_iface_limi 
    3838 #ifdef CONFIG_MAC80211_MESH 
    3939                                 BIT(NL80211_IFTYPE_MESH_POINT) | 
  • trunk/package/mac80211/patches/411-ath5k_allow_adhoc_and_ap.patch

    r31326 r32002  
    11--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c 
    22+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c 
    3 @@ -86,13 +86,8 @@ ath5k_add_interface(struct ieee80211_hw  
     3@@ -88,13 +88,8 @@ ath5k_add_interface(struct ieee80211_hw  
    44                goto end; 
    55        } 
     
    1919--- a/drivers/net/wireless/ath/ath5k/base.c 
    2020+++ b/drivers/net/wireless/ath/ath5k/base.c 
    21 @@ -1871,7 +1871,7 @@ ath5k_beacon_send(struct ath5k_hw *ah) 
     21@@ -1872,7 +1872,7 @@ ath5k_beacon_send(struct ath5k_hw *ah) 
    2222        } 
    2323  
     
    2828                u64 tsf = ath5k_hw_get_tsf64(ah); 
    2929                u32 tsftu = TSF_TO_TU(tsf); 
    30 @@ -1957,7 +1957,7 @@ ath5k_beacon_update_timers(struct ath5k_ 
     30@@ -1958,7 +1958,7 @@ ath5k_beacon_update_timers(struct ath5k_ 
    3131  
    3232        intval = ah->bintval & AR5K_BEACON_PERIOD; 
     
    3737                if (intval < 15) 
    3838                        ATH5K_WARN(ah, "intval %u is too low, min 15\n", 
    39 @@ -2422,6 +2422,7 @@ static const struct ieee80211_iface_limi 
     39@@ -2423,6 +2423,7 @@ static const struct ieee80211_iface_limi 
    4040 #ifdef CONFIG_MAC80211_MESH 
    4141                                 BIT(NL80211_IFTYPE_MESH_POINT) | 
  • trunk/package/mac80211/patches/412-mac80211_allow_adhoc_and_ap.patch

    r31322 r32002  
    11--- a/net/mac80211/main.c 
    22+++ b/net/mac80211/main.c 
    3 @@ -766,17 +766,11 @@ int ieee80211_register_hw(struct ieee802 
     3@@ -771,17 +771,11 @@ int ieee80211_register_hw(struct ieee802 
    44         */ 
    55        for (i = 0; i < hw->wiphy->n_iface_combinations; i++) { 
  • trunk/package/mac80211/patches/420-ath5k_disable_fast_cc.patch

    r31322 r32002  
    11--- a/drivers/net/wireless/ath/ath5k/reset.c 
    22+++ b/drivers/net/wireless/ath/ath5k/reset.c 
    3 @@ -1155,6 +1155,7 @@ ath5k_hw_reset(struct ath5k_hw *ah, enum 
     3@@ -1156,6 +1156,7 @@ ath5k_hw_reset(struct ath5k_hw *ah, enum 
    44        tsf_lo = 0; 
    55        mode = 0; 
     
    99         * Sanity check for fast flag 
    1010         * Fast channel change only available 
    11 @@ -1162,6 +1163,7 @@ ath5k_hw_reset(struct ath5k_hw *ah, enum 
     11@@ -1163,6 +1164,7 @@ ath5k_hw_reset(struct ath5k_hw *ah, enum 
    1212         */ 
    1313        if (fast && (ah->ah_radio != AR5K_RF2413) && 
  • trunk/package/mac80211/patches/431-add_platform_eeprom_support_to_ath5k.patch

    r31347 r32002  
    11--- a/drivers/net/wireless/ath/ath5k/pci.c 
    22+++ b/drivers/net/wireless/ath/ath5k/pci.c 
    3 @@ -22,6 +22,7 @@ 
     3@@ -23,6 +23,7 @@ 
    44 #include <linux/pci-aspm.h> 
    55 #include <linux/etherdevice.h> 
     
    99 #include "ath5k.h" 
    1010 #include "debug.h" 
    11 @@ -73,7 +74,7 @@ static void ath5k_pci_read_cachesize(str 
     11@@ -74,7 +75,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 @@ -81,6 +82,19 @@ ath5k_pci_eeprom_read(struct ath_common  
     20@@ -82,6 +83,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 @@ -124,6 +138,16 @@ static int ath5k_pci_eeprom_read_mac(str 
     40@@ -125,6 +139,16 @@ static int ath5k_pci_eeprom_read_mac(str 
    4141        u16 data; 
    4242        int octet; 
  • trunk/package/mac80211/patches/432-ath5k_add_pciids.patch

    r31347 r32002  
    11--- a/drivers/net/wireless/ath/ath5k/pci.c 
    22+++ b/drivers/net/wireless/ath/ath5k/pci.c 
    3 @@ -49,6 +49,8 @@ static DEFINE_PCI_DEVICE_TABLE(ath5k_pci 
     3@@ -50,6 +50,8 @@ static DEFINE_PCI_DEVICE_TABLE(ath5k_pci 
    44        { PCI_VDEVICE(ATHEROS, 0x001b) }, /* 5413 Eagle */ 
    55        { PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */ 
  • trunk/package/mac80211/patches/501-ath9k-eeprom_endianess.patch

    r31322 r32002  
    7272--- a/drivers/net/wireless/ath/ath9k/hw.h 
    7373+++ b/drivers/net/wireless/ath/ath9k/hw.h 
    74 @@ -662,6 +662,7 @@ enum ath_cal_list { 
     74@@ -657,6 +657,7 @@ enum ath_cal_list { 
    7575 #define AH_USE_EEPROM   0x1 
    7676 #define AH_UNPLUGGED    0x2 /* The card has been physically removed. */ 
     
    8282--- a/drivers/net/wireless/ath/ath9k/init.c 
    8383+++ b/drivers/net/wireless/ath/ath9k/init.c 
    84 @@ -534,6 +534,8 @@ static int ath9k_init_softc(u16 devid, s 
     84@@ -535,6 +535,8 @@ static int ath9k_init_softc(u16 devid, s 
    8585                ah->is_clk_25mhz = pdata->is_clk_25mhz; 
    8686                ah->get_mac_revision = pdata->get_mac_revision; 
  • trunk/package/mac80211/patches/502-ath9k_ahb_init.patch

    r31326 r32002  
    11--- a/drivers/net/wireless/ath/ath9k/init.c 
    22+++ b/drivers/net/wireless/ath/ath9k/init.c 
    3 @@ -904,23 +904,23 @@ static int __init ath9k_init(void) 
     3@@ -905,23 +905,23 @@ static int __init ath9k_init(void) 
    44                goto err_out; 
    55        } 
  • trunk/package/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch

    r31347 r32002  
    11--- a/drivers/net/wireless/ath/ath9k/hw.c 
    22+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    3 @@ -1936,8 +1936,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
     3@@ -1939,8 +1939,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

    r31347 r32002  
    8181--- a/drivers/net/wireless/ath/ath9k/main.c 
    8282+++ b/drivers/net/wireless/ath/ath9k/main.c 
    83 @@ -1550,7 +1550,7 @@ static void ath9k_disable_ps(struct ath_ 
    84   
     83@@ -1551,7 +1551,7 @@ static void ath9k_disable_ps(struct ath_ 
     84        ath_dbg(common, PS, "PowerSave disabled\n"); 
    8585 } 
    8686  
     
    9090        struct ath_softc *sc = hw->priv; 
    9191        struct ath_hw *ah = sc->sc_ah; 
    92 @@ -1601,9 +1601,11 @@ static int ath9k_config(struct ieee80211 
     92@@ -1602,9 +1602,11 @@ static int ath9k_config(struct ieee80211 
    9393  
    9494        if ((changed & IEEE80211_CONF_CHANGE_CHANNEL) || reset_channel) { 
     
    102102                if (ah->curchan) 
    103103                        old_pos = ah->curchan - &ah->channels[0]; 
    104 @@ -1651,7 +1653,23 @@ static int ath9k_config(struct ieee80211 
     104@@ -1652,7 +1654,23 @@ static int ath9k_config(struct ieee80211 
    105105                        memset(&sc->survey[pos], 0, sizeof(struct survey_info)); 
    106106                } 
  • trunk/package/mac80211/patches/520-mac80211_cur_txpower.patch

    r31453 r32002  
    11--- a/include/net/mac80211.h 
    22+++ b/include/net/mac80211.h 
    3 @@ -825,7 +825,7 @@ enum ieee80211_smps_mode { 
     3@@ -829,7 +829,7 @@ enum ieee80211_smps_mode { 
    44  */ 
    55 struct ieee80211_conf { 
     
    1212--- a/net/mac80211/cfg.c 
    1313+++ b/net/mac80211/cfg.c 
    14 @@ -1757,7 +1757,7 @@ static int ieee80211_get_tx_power(struct 
     14@@ -1936,7 +1936,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 @@ -165,6 +165,7 @@ int ieee80211_hw_config(struct ieee80211 
     25@@ -167,6 +167,7 @@ int ieee80211_hw_config(struct ieee80211 
    2626  
    2727        if (local->hw.conf.power_level != power) { 
  • trunk/package/mac80211/patches/521-ath9k_cur_txpower.patch

    r31322 r32002  
    11--- a/drivers/net/wireless/ath/ath9k/main.c 
    22+++ b/drivers/net/wireless/ath/ath9k/main.c 
    3 @@ -1675,6 +1675,8 @@ int ath9k_config(struct ieee80211_hw *hw 
     3@@ -1676,6 +1676,8 @@ int ath9k_config(struct ieee80211_hw *hw 
    44                        return -EINVAL; 
    55                } 
     
    1010                 * The most recent snapshot of channel->noisefloor for the old 
    1111                 * channel is only available after the hardware reset. Copy it to 
    12 @@ -1689,6 +1691,7 @@ int ath9k_config(struct ieee80211_hw *hw 
     12@@ -1690,6 +1692,7 @@ int ath9k_config(struct ieee80211_hw *hw 
    1313                sc->config.txpowlimit = 2 * conf->power_level; 
    1414                ath9k_cmn_update_txpow(ah, sc->curtxpow, 
  • trunk/package/mac80211/patches/522-ath9k_per_chain_signal_strength.patch

    r31428 r32002  
    11--- a/include/net/mac80211.h 
    22+++ b/include/net/mac80211.h 
    3 @@ -693,6 +693,9 @@ enum mac80211_rx_flags { 
     3@@ -697,6 +697,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 @@ -706,6 +709,10 @@ enum mac80211_rx_flags { 
     13@@ -710,6 +713,10 @@ enum mac80211_rx_flags { 
    1414 struct ieee80211_rx_status { 
    1515        u64 mactime; 
     
    3838--- a/net/mac80211/rx.c 
    3939+++ b/net/mac80211/rx.c 
    40 @@ -1262,6 +1262,7 @@ ieee80211_rx_h_sta_process(struct ieee80 
     40@@ -1263,6 +1263,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 @@ -1306,6 +1307,19 @@ ieee80211_rx_h_sta_process(struct ieee80 
     48@@ -1307,6 +1308,19 @@ ieee80211_rx_h_sta_process(struct ieee80 
    4949                ewma_add(&sta->avg_signal, -status->signal); 
    5050        } 
     
    270270--- a/include/linux/nl80211.h 
    271271+++ b/include/linux/nl80211.h 
    272 @@ -1693,6 +1693,8 @@ enum nl80211_sta_bss_param { 
     272@@ -1695,6 +1695,8 @@ enum nl80211_sta_bss_param { 
    273273  * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. 
    274274  * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) 
     
    279279  * @NL80211_STA_INFO_MAX: highest possible station info attribute 
    280280  */ 
    281 @@ -1717,6 +1719,8 @@ enum nl80211_sta_info { 
     281@@ -1719,6 +1721,8 @@ enum nl80211_sta_info { 
    282282        NL80211_STA_INFO_STA_FLAGS, 
    283283        NL80211_STA_INFO_BEACON_LOSS, 
     
    290290--- a/net/wireless/nl80211.c 
    291291+++ b/net/wireless/nl80211.c 
    292 @@ -2406,6 +2406,33 @@ nla_put_failure: 
     292@@ -2467,6 +2467,33 @@ nla_put_failure: 
    293293        return false; 
    294294 } 
     
    324324                                int flags, 
    325325                                struct cfg80211_registered_device *rdev, 
    326 @@ -2460,6 +2487,18 @@ static int nl80211_send_station(struct s 
     326@@ -2528,6 +2555,18 @@ static int nl80211_send_station(struct s 
    327327        default: 
    328328                break; 
  • trunk/package/mac80211/patches/530-ath9k_limit_qlen.patch

    r31347 r32002  
    3434--- a/drivers/net/wireless/ath/ath9k/xmit.c 
    3535+++ b/drivers/net/wireless/ath/ath9k/xmit.c 
    36 @@ -392,6 +392,14 @@ static void ath_tx_count_frames(struct a 
     36@@ -393,6 +393,14 @@ static void ath_tx_count_frames(struct a 
    3737        } 
    3838 } 
     
    4949 static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, 
    5050                                 struct ath_buf *bf, struct list_head *bf_q, 
    51 @@ -486,6 +494,8 @@ static void ath_tx_complete_aggr(struct  
     51@@ -487,6 +495,8 @@ static void ath_tx_complete_aggr(struct  
    5252        __skb_queue_head_init(&bf_pending); 
    5353  
     
    5858                u16 seqno = bf->bf_state.seqno; 
    5959  
    60 @@ -884,6 +894,7 @@ static enum ATH_AGGR_STATUS ath_tx_form_ 
     60@@ -885,6 +895,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 @@ -1737,6 +1748,8 @@ static void ath_tx_send_ampdu(struct ath 
     68@@ -1738,6 +1749,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 @@ -1869,22 +1882,11 @@ error: 
     77@@ -1873,22 +1886,11 @@ error: 
    7878  
    7979 /* FIXME: tx power */ 
     
    100100        if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) && tid) { 
    101101                /* 
    102 @@ -1916,6 +1918,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
     102@@ -1920,6 +1922,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 @@ -1958,6 +1961,24 @@ int ath_tx_start(struct ieee80211_hw *hw 
     110@@ -1962,6 +1965,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 @@ -1972,7 +1993,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
     135@@ -1976,7 +1997,7 @@ int ath_tx_start(struct ieee80211_hw *hw 
    136136                txq->stopped = true; 
    137137        } 
  • trunk/package/mac80211/patches/540-ath9k_extra_leds.patch

    r31347 r32002  
    172172--- a/drivers/net/wireless/ath/ath9k/init.c 
    173173+++ b/drivers/net/wireless/ath/ath9k/init.c 
    174 @@ -781,7 +781,7 @@ int ath9k_init_device(u16 devid, struct  
     174@@ -782,7 +782,7 @@ int ath9k_init_device(u16 devid, struct  
    175175  
    176176 #ifdef CONFIG_MAC80211_LEDS 
  • trunk/package/mac80211/patches/550-mac80211_optimize_mcs_rate_mask.patch

    r31517 r32002  
    1212--- a/net/mac80211/cfg.c 
    1313+++ b/net/mac80211/cfg.c 
    14 @@ -1933,9 +1933,20 @@ static int ieee80211_set_bitrate_mask(st 
     14@@ -2112,9 +2112,20 @@ static int ieee80211_set_bitrate_mask(st 
    1515        } 
    1616  
     
    3535--- a/include/net/mac80211.h 
    3636+++ b/include/net/mac80211.h 
    37 @@ -3645,7 +3645,7 @@ void ieee80211_send_bar(struct ieee80211 
     37@@ -3672,7 +3672,7 @@ void ieee80211_send_bar(struct ieee80211 
    3838  *     (deprecated; this will be removed once drivers get updated to use 
    3939  *     rate_idx_mask) 
     
    4444  */ 
    4545 struct ieee80211_tx_rate_control { 
    46 @@ -3657,7 +3657,7 @@ struct ieee80211_tx_rate_control { 
     46@@ -3684,7 +3684,7 @@ struct ieee80211_tx_rate_control { 
    4747        bool rts, short_preamble; 
    4848        u8 max_rate_idx; 
  • trunk/package/mac80211/patches/820-b43-add-antenna-control.patch

    r31322 r32002  
    4343        if (wl->radio_enabled != phy->radio_on) { 
    4444                if (wl->radio_enabled) { 
    45 @@ -4934,6 +4931,47 @@ static int b43_op_get_survey(struct ieee 
     45@@ -4940,6 +4937,47 @@ static int b43_op_get_survey(struct ieee 
    4646        return 0; 
    4747 } 
     
    9191        .tx                     = b43_op_tx, 
    9292        .conf_tx                = b43_op_conf_tx, 
    93 @@ -4955,6 +4993,8 @@ static const struct ieee80211_ops b43_hw 
     93@@ -4961,6 +4999,8 @@ static const struct ieee80211_ops b43_hw 
    9494        .sw_scan_complete       = b43_op_sw_scan_complete_notifier, 
    9595        .get_survey             = b43_op_get_survey, 
     
    100100  
    101101 /* Hard-reset the chip. Do not call this directly. 
    102 @@ -5201,6 +5241,8 @@ static int b43_one_core_attach(struct b4 
     102@@ -5207,6 +5247,8 @@ static int b43_one_core_attach(struct b4 
    103103        if (!wldev) 
    104104                goto out; 
     
    109109        wldev->dev = dev; 
    110110        wldev->wl = wl; 
    111 @@ -5291,6 +5333,9 @@ static struct b43_wl *b43_wireless_init( 
     111@@ -5297,6 +5339,9 @@ static struct b43_wl *b43_wireless_init( 
    112112  
    113113        hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; 
  • trunk/package/mac80211/patches/840-brcmsmac-add-device-found-on-some-SoCs-like-the-bcm4.patch

    r32001 r32002  
    11--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 
    22+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c 
    3 @@ -95,6 +95,7 @@ MODULE_LICENSE("Dual BSD/GPL"); 
     3@@ -94,6 +94,7 @@ MODULE_LICENSE("Dual BSD/GPL"); 
    44 static struct bcma_device_id brcms_coreid_table[] = { 
    55        BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 23, BCMA_ANY_CLASS), 
     
    1111--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    1212+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    13 @@ -720,7 +720,7 @@ static void brcms_c_ucode_bsinit(struct 
     13@@ -719,7 +719,7 @@ static void brcms_c_ucode_bsinit(struct  
    1414        brcms_c_write_mhf(wlc_hw, wlc_hw->band->mhfs); 
    1515  
     
    2020                        brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16); 
    2121                else 
    22 @@ -2243,7 +2243,7 @@ static void brcms_ucode_download(struct 
     22@@ -2242,7 +2242,7 @@ static void brcms_ucode_download(struct  
    2323        if (wlc_hw->ucode_loaded) 
    2424                return; 
     
    2929                        brcms_ucode_write(wlc_hw, ucode->bcm43xx_16_mimo, 
    3030                                          ucode->bcm43xx_16_mimosz); 
    31 @@ -3219,7 +3219,7 @@ static void brcms_b_coreinit(struct brcm 
     31@@ -3218,7 +3218,7 @@ static void brcms_b_coreinit(struct brcm 
    3232  
    3333        sflags = bcma_aread32(core, BCMA_IOST); 
  • trunk/package/mac80211/patches/841-brcmsmac-add-support-for-BCM43224.patch

    r32001 r32002  
    11--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    22+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    3 @@ -4133,6 +4133,7 @@ void brcms_c_wme_setparams(struct brcms_ 
     3@@ -4132,6 +4132,7 @@ void brcms_c_wme_setparams(struct brcms_ 
    44                                          M_EDCF_QINFO + 
    55                                          wme_ac2fifo[aci] * M_EDCF_QLEN + i, 
     
    99  
    1010        if (suspend) { 
    11 @@ -4538,7 +4539,8 @@ static int brcms_b_attach(struct brcms_c 
     11@@ -4537,7 +4538,8 @@ static int brcms_b_attach(struct brcms_c 
    1212  
    1313        /* check device id(srom, nvram etc.) to set bands */ 
     
    1919                wlc_hw->_nbands = 2; 
    2020        else 
    21 @@ -5792,7 +5794,7 @@ bool brcms_c_chipmatch(u16 vendor, u16 d 
     21@@ -5791,7 +5793,7 @@ bool brcms_c_chipmatch(u16 vendor, u16 d 
    2222                return false; 
    2323        } 
  • trunk/package/mac80211/patches/842-brcmsmac-add-some-conditions-for-the-bcm4716-again.patch

    r32001 r32002  
    11--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    22+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c 
    3 @@ -1944,7 +1944,8 @@ static bool brcms_b_radio_read_hwdisable 
     3@@ -1943,7 +1943,8 @@ static bool brcms_b_radio_read_hwdisable 
    44                 * accesses phyreg throughput mac. This can be skipped since 
    55                 * only mac reg is accessed below 
     
    1111                /* 
    1212                 * TODO: test suspend/resume 
    13 @@ -2025,7 +2026,8 @@ void brcms_b_corereset(struct brcms_hard 
     13@@ -2024,7 +2025,8 @@ void brcms_b_corereset(struct brcms_hard 
    1414         * phyreg throughput mac, AND phy_reset is skipped at early stage when 
    1515         * band->pi is invalid. need to enable PHY CLK 
     
    3333                        tx_pwrctrl_tbl = nphy_tpc_txgain_ipa_rev5; 
    3434                } else { 
    35 @@ -19256,8 +19259,14 @@ static void wlc_phy_spurwar_nphy(struct 
     35@@ -19256,8 +19259,14 @@ static void wlc_phy_spurwar_nphy(struct  
    3636                        case 38: 
    3737                        case 102: 
     
    5050                        case 134: 
    5151                                nphy_adj_tone_id_buf[0] = 32; 
    52 @@ -20697,12 +20706,22 @@ wlc_phy_chanspec_radio2056_setup(struct 
     52@@ -20697,12 +20706,22 @@ wlc_phy_chanspec_radio2056_setup(struct  
    5353                        write_radio_reg(pi, RADIO_2056_SYN_PLL_LOOPFILTER2 | 
    5454                                        RADIO_2056_SYN, 0x1f); 
     
    7979        } 
    8080  
    81 @@ -20749,24 +20768,33 @@ wlc_phy_chanspec_radio2056_setup(struct 
     81@@ -20749,24 +20768,33 @@ wlc_phy_chanspec_radio2056_setup(struct  
    8282                                WRITE_RADIO_REG2(pi, RADIO_2056, TX, core, 
    8383                                                 PADG_IDAC, 0xcc); 
Note: See TracChangeset for help on using the changeset viewer.