From: Felix Fietkau Date: Sun, 9 Jan 2011 20:32:25 +0000 (+0000) Subject: mac80211: update to wireless-testing 2011-01-05, should improve aggregation reliabili... X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=56647592a42f8ab783c99d4bc671557bce2355db;p=openwrt%2Fstaging%2Frmilecki.git mac80211: update to wireless-testing 2011-01-05, should improve aggregation reliability in ath9k SVN-Revision: 24948 --- diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile index b1e12341e15..5317a098ebb 100644 --- a/package/mac80211/Makefile +++ b/package/mac80211/Makefile @@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=2010-12-16 -PKG_RELEASE:=2 +PKG_VERSION:=2011-01-05 +PKG_RELEASE:=1 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources -PKG_MD5SUM:=39196307aa67c1f19f498b570b994112 +PKG_MD5SUM:=2b87fdd08d95fa5def39f56f49c4906d PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION) @@ -345,7 +345,7 @@ define KernelPackage/rtl8180 $(call KernelPackage/rtl818x/Default) DEPENDS+= @PCI_SUPPORT TITLE+= (RTL8180 PCI) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko AUTOLOAD:=$(call AutoLoad,27,rtl8180) endef @@ -353,7 +353,7 @@ define KernelPackage/rtl8187 $(call KernelPackage/rtl818x/Default) DEPENDS+= @USB_SUPPORT TITLE+= (RTL8187 USB) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko AUTOLOAD:=$(call AutoLoad,27,rtl8187) endef @@ -941,6 +941,7 @@ MAKE_OPTS:= \ CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \ CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \ CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \ + CONFIG_RTL8192CE= \ CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \ CONFIG_PCMCIA= \ CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \ diff --git a/package/mac80211/patches/001-disable_b44.patch b/package/mac80211/patches/001-disable_b44.patch index a99bf99d890..017c8f98a1a 100644 --- a/package/mac80211/patches/001-disable_b44.patch +++ b/package/mac80211/patches/001-disable_b44.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -301,8 +301,8 @@ endif #CONFIG_SSB +@@ -311,8 +311,8 @@ endif #CONFIG_SSB CONFIG_P54_PCI=m diff --git a/package/mac80211/patches/002-disable_rfkill.patch b/package/mac80211/patches/002-disable_rfkill.patch index 453b97942e6..c0e47f61a3e 100644 --- a/package/mac80211/patches/002-disable_rfkill.patch +++ b/package/mac80211/patches/002-disable_rfkill.patch @@ -9,15 +9,17 @@ ifeq ($(CONFIG_MAC80211),y) $(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") -@@ -590,8 +590,8 @@ endif #CONFIG_COMPAT_KERNEL_27 +@@ -613,10 +613,10 @@ endif #CONFIG_COMPAT_KERNEL_27 # We need the backported rfkill module on kernel < 2.6.31. # In more recent kernel versions use the in kernel rfkill module. ifdef CONFIG_COMPAT_KERNEL_31 -CONFIG_RFKILL_BACKPORT=m --CONFIG_RFKILL_BACKPORT_LEDS=y --CONFIG_RFKILL_BACKPORT_INPUT=y +# CONFIG_RFKILL_BACKPORT=m + ifdef CONFIG_LEDS_TRIGGERS +-CONFIG_RFKILL_BACKPORT_LEDS=y +# CONFIG_RFKILL_BACKPORT_LEDS=y + endif #CONFIG_LEDS_TRIGGERS +-CONFIG_RFKILL_BACKPORT_INPUT=y +# CONFIG_RFKILL_BACKPORT_INPUT=y endif #CONFIG_COMPAT_KERNEL_31 diff --git a/package/mac80211/patches/005-disable_ssb_build.patch b/package/mac80211/patches/005-disable_ssb_build.patch index 3120361a8ad..e2744d9206a 100644 --- a/package/mac80211/patches/005-disable_ssb_build.patch +++ b/package/mac80211/patches/005-disable_ssb_build.patch @@ -19,7 +19,7 @@ else include $(KLIB_BUILD)/.config endif -@@ -285,19 +284,18 @@ CONFIG_IPW2200_QOS=y +@@ -295,19 +294,18 @@ CONFIG_IPW2200_QOS=y # % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface endif #CONFIG_WIRELESS_EXT @@ -51,7 +51,7 @@ CONFIG_P54_PCI=m -@@ -486,7 +484,6 @@ endif #CONFIG_SPI_MASTER end of SPI driv +@@ -505,7 +503,6 @@ endif #CONFIG_SPI_MASTER end of SPI driv ifdef CONFIG_MMC diff --git a/package/mac80211/patches/007-remove_misc_drivers.patch b/package/mac80211/patches/007-remove_misc_drivers.patch index cb3fddb49b8..bf7ecbd0116 100644 --- a/package/mac80211/patches/007-remove_misc_drivers.patch +++ b/package/mac80211/patches/007-remove_misc_drivers.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -196,7 +196,7 @@ $(warning "WARNING: CONFIG_CFG80211_WEXT +@@ -202,7 +202,7 @@ $(warning "WARNING: CONFIG_CFG80211_WEXT endif #CONFIG_WIRELESS_EXT ifneq ($(CONFIG_STAGING),) @@ -9,7 +9,7 @@ endif # mac80211 test driver -@@ -326,13 +326,13 @@ endif #CONFIG_CRC_ITU_T +@@ -336,13 +336,13 @@ endif #CONFIG_CRC_ITU_T CONFIG_MWL8K=m # Ethernet drivers go here @@ -28,7 +28,7 @@ endif #CONFIG_COMPAT_KERNEL_27 ifdef CONFIG_WIRELESS_EXT -@@ -383,21 +383,21 @@ CONFIG_ZD1211RW=m +@@ -396,21 +396,21 @@ CONFIG_ZD1211RW=m # Note: this depends on CONFIG_USB_NET_RNDIS_HOST and CONFIG_USB_NET_CDCETHER # it also requires new RNDIS_HOST and CDC_ETHER modules which we add ifdef CONFIG_COMPAT_KERNEL_29 diff --git a/package/mac80211/patches/008-led_default.patch b/package/mac80211/patches/008-led_default.patch deleted file mode 100644 index 8a36f166924..00000000000 --- a/package/mac80211/patches/008-led_default.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- a/config.mk -+++ b/config.mk -@@ -132,7 +132,7 @@ CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstr - CONFIG_MAC80211_RC_PID=y - CONFIG_MAC80211_RC_MINSTREL=y - CONFIG_MAC80211_RC_MINSTREL_HT=y --CONFIG_MAC80211_LEDS=y -+# CONFIG_MAC80211_LEDS=y - - # enable mesh networking too - CONFIG_MAC80211_MESH=y -@@ -242,7 +242,7 @@ CONFIG_B43_PCI_AUTOSELECT=y - ifdef CONFIG_PCMCIA - CONFIG_B43_PCMCIA=y - endif #CONFIG_PCMCIA --CONFIG_B43_LEDS=y -+# CONFIG_B43_LEDS=y - CONFIG_B43_PHY_LP=y - CONFIG_B43_PHY_N=y - # CONFIG_B43_FORCE_PIO=y -@@ -251,7 +251,7 @@ CONFIG_B43_PHY_N=y - CONFIG_B43LEGACY=m - CONFIG_B43LEGACY_HWRNG=y - CONFIG_B43LEGACY_PCI_AUTOSELECT=y --CONFIG_B43LEGACY_LEDS=y -+# CONFIG_B43LEGACY_LEDS=y - # CONFIG_B43LEGACY_DEBUG=y - CONFIG_B43LEGACY_DMA=y - CONFIG_B43LEGACY_PIO=y -@@ -561,7 +561,7 @@ endif - - # p54 - CONFIG_P54_COMMON=m --CONFIG_P54_LEDS=y -+# CONFIG_P54_LEDS=y - - # Atheros - CONFIG_ATH_COMMON=m ---- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c -+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c -@@ -864,6 +864,7 @@ static void ath9k_led_brightness_work(st - } - } - -+#ifdef CONFIG_LEDS_CLASS - static void ath9k_led_brightness(struct led_classdev *led_cdev, - enum led_brightness brightness) - { -@@ -875,6 +876,7 @@ static void ath9k_led_brightness(struct - ieee80211_queue_delayed_work(priv->hw, - &led->brightness_work, 0); - } -+#endif - - static void ath9k_led_stop_brightness(struct ath9k_htc_priv *priv) - { -@@ -887,6 +889,7 @@ static void ath9k_led_stop_brightness(st - static int ath9k_register_led(struct ath9k_htc_priv *priv, struct ath_led *led, - char *trigger) - { -+#ifdef CONFIG_LEDS_CLASS - int ret; - - led->priv = priv; -@@ -904,14 +907,19 @@ static int ath9k_register_led(struct ath - INIT_DELAYED_WORK(&led->brightness_work, ath9k_led_brightness_work); - - return ret; -+#else -+ return 0; -+#endif - } - - static void ath9k_unregister_led(struct ath_led *led) - { -+#ifdef CONFIG_LEDS_CLASS - if (led->registered) { - led_classdev_unregister(&led->led_cdev); - led->registered = 0; - } -+#endif - } - - void ath9k_deinit_leds(struct ath9k_htc_priv *priv) diff --git a/package/mac80211/patches/010-no_pcmcia.patch b/package/mac80211/patches/010-no_pcmcia.patch index 51189fc8218..c7457c856b4 100644 --- a/package/mac80211/patches/010-no_pcmcia.patch +++ b/package/mac80211/patches/010-no_pcmcia.patch @@ -9,12 +9,12 @@ else include $(KLIB_BUILD)/.config endif -@@ -223,7 +223,7 @@ CONFIG_B43=m +@@ -229,7 +229,7 @@ CONFIG_B43=m CONFIG_B43_HWRNG=y CONFIG_B43_PCI_AUTOSELECT=y ifdef CONFIG_PCMCIA -CONFIG_B43_PCMCIA=y +# CONFIG_B43_PCMCIA=y endif #CONFIG_PCMCIA - # CONFIG_B43_LEDS=y - CONFIG_B43_PHY_LP=y + ifdef CONFIG_MAC80211_LEDS + CONFIG_B43_LEDS=y diff --git a/package/mac80211/patches/011-no_sdio.patch b/package/mac80211/patches/011-no_sdio.patch index aba19b644a6..3bb20306118 100644 --- a/package/mac80211/patches/011-no_sdio.patch +++ b/package/mac80211/patches/011-no_sdio.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -467,7 +467,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv +@@ -486,7 +486,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv ifdef CONFIG_MMC diff --git a/package/mac80211/patches/013-disable_b43_nphy.patch b/package/mac80211/patches/013-disable_b43_nphy.patch index 94c09fce790..b5c47593fea 100644 --- a/package/mac80211/patches/013-disable_b43_nphy.patch +++ b/package/mac80211/patches/013-disable_b43_nphy.patch @@ -1,8 +1,8 @@ --- a/config.mk +++ b/config.mk -@@ -227,7 +227,7 @@ ifdef CONFIG_PCMCIA - endif #CONFIG_PCMCIA - # CONFIG_B43_LEDS=y +@@ -235,7 +235,7 @@ ifdef CONFIG_MAC80211_LEDS + CONFIG_B43_LEDS=y + endif #CONFIG_MAC80211_LEDS CONFIG_B43_PHY_LP=y -CONFIG_B43_PHY_N=y +# CONFIG_B43_PHY_N=y diff --git a/package/mac80211/patches/015-remove-rt2x00-options.patch b/package/mac80211/patches/015-remove-rt2x00-options.patch index 86b65b86c7a..768c61cfc91 100644 --- a/package/mac80211/patches/015-remove-rt2x00-options.patch +++ b/package/mac80211/patches/015-remove-rt2x00-options.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -289,7 +289,7 @@ CONFIG_RTL8180=m +@@ -299,7 +299,7 @@ CONFIG_RTL8180=m CONFIG_ADM8211=m @@ -9,7 +9,7 @@ CONFIG_RT2400PCI=m CONFIG_RT2500PCI=m ifdef CONFIG_CRC_CCITT -@@ -418,7 +418,7 @@ CONFIG_RT2800USB=m +@@ -437,7 +437,7 @@ CONFIG_RT2800USB=m # CONFIG_RT2800USB_RT35XX=y CONFIG_RT2800USB_UNKNOWN=y endif #CONFIG_CRC_CCITT diff --git a/package/mac80211/patches/016-remove_pid_algo.patch b/package/mac80211/patches/016-remove_pid_algo.patch index 99b19d81edc..f53284e1af4 100644 --- a/package/mac80211/patches/016-remove_pid_algo.patch +++ b/package/mac80211/patches/016-remove_pid_algo.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -112,7 +112,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +@@ -116,7 +116,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y # This is the one used by our compat-wireless net/mac80211/rate.c # in case you have and old kernel which is overriding this to pid. CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstrel_ht @@ -8,4 +8,4 @@ +# CONFIG_MAC80211_RC_PID=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y - # CONFIG_MAC80211_LEDS=y + ifdef CONFIG_LEDS_TRIGGERS diff --git a/package/mac80211/patches/017-remove_ath9k_rc.patch b/package/mac80211/patches/017-remove_ath9k_rc.patch index 7e275b0429a..7b7304aab9a 100644 --- a/package/mac80211/patches/017-remove_ath9k_rc.patch +++ b/package/mac80211/patches/017-remove_ath9k_rc.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -206,7 +206,7 @@ CONFIG_ATH9K_COMMON=m +@@ -212,7 +212,7 @@ CONFIG_ATH9K_COMMON=m # as default once we get minstrel properly tested and blessed by # our systems engineering team. CCK rates also need to be used # for long range considerations. diff --git a/package/mac80211/patches/019-remove_ath5k_pci_option.patch b/package/mac80211/patches/019-remove_ath5k_pci_option.patch index 792ecb563c5..a9bc153b222 100644 --- a/package/mac80211/patches/019-remove_ath5k_pci_option.patch +++ b/package/mac80211/patches/019-remove_ath5k_pci_option.patch @@ -1,6 +1,6 @@ --- a/config.mk +++ b/config.mk -@@ -189,7 +189,7 @@ CONFIG_MAC80211_HWSIM=m +@@ -195,7 +195,7 @@ CONFIG_MAC80211_HWSIM=m ifdef CONFIG_PCI CONFIG_ATH5K=m diff --git a/package/mac80211/patches/030-backport_93c86_eeprom.patch b/package/mac80211/patches/030-backport_93c86_eeprom.patch index be91eafb80c..178f38b3e59 100644 --- a/package/mac80211/patches/030-backport_93c86_eeprom.patch +++ b/package/mac80211/patches/030-backport_93c86_eeprom.patch @@ -1,7 +1,7 @@ --- a/include/linux/compat-2.6.36.h +++ b/include/linux/compat-2.6.36.h -@@ -90,6 +90,8 @@ struct pm_qos_request_list { - +@@ -101,6 +101,8 @@ int no_printk(const char *s, ...) { retu + #define alloc_workqueue(name, flags, max_active) __create_workqueue(name, flags, max_active, 0) #endif +#define PCI_EEPROM_WIDTH_93C86 8 diff --git a/package/mac80211/patches/100-disable_pcmcia_compat.patch b/package/mac80211/patches/100-disable_pcmcia_compat.patch index a88d1f590cf..99f250ab3cc 100644 --- a/package/mac80211/patches/100-disable_pcmcia_compat.patch +++ b/package/mac80211/patches/100-disable_pcmcia_compat.patch @@ -42,10 +42,10 @@ #include --- a/include/linux/compat-2.6.33.h +++ b/include/linux/compat-2.6.33.h -@@ -6,7 +6,7 @@ - #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) +@@ -7,7 +7,7 @@ #include + #include -#if defined(CONFIG_PCCARD) || defined(CONFIG_PCCARD_MODULE) +#if 0 #include diff --git a/package/mac80211/patches/110-disable_usb_compat.patch b/package/mac80211/patches/110-disable_usb_compat.patch index 561e36924bb..cbfa42cba32 100644 --- a/package/mac80211/patches/110-disable_usb_compat.patch +++ b/package/mac80211/patches/110-disable_usb_compat.patch @@ -33,7 +33,7 @@ #endif --- a/config.mk +++ b/config.mk -@@ -405,7 +405,7 @@ endif #CONFIG_COMPAT_KERNEL_29 +@@ -424,7 +424,7 @@ endif #CONFIG_COMPAT_KERNEL_29 # This activates a threading fix for usb urb. # this is mainline commit: b3e670443b7fb8a2d29831b62b44a039c283e351 # This fix will be included in some stable releases. diff --git a/package/mac80211/patches/300-ath9k_gpio_settings.patch b/package/mac80211/patches/300-ath9k_gpio_settings.patch index ec2d5a72e62..148ff0c2cdb 100644 --- a/package/mac80211/patches/300-ath9k_gpio_settings.patch +++ b/package/mac80211/patches/300-ath9k_gpio_settings.patch @@ -15,7 +15,7 @@ err: --- a/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -788,6 +788,8 @@ struct ath_hw { +@@ -791,6 +791,8 @@ struct ath_hw { int initPDADC; int PDADCdelta; u8 led_pin; diff --git a/package/mac80211/patches/303-tpt_led_trigger_declaration_fix.patch b/package/mac80211/patches/303-tpt_led_trigger_declaration_fix.patch deleted file mode 100644 index 938617682ec..00000000000 --- a/package/mac80211/patches/303-tpt_led_trigger_declaration_fix.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Luciano Coelho - -If CONFIG_MAC80211_LEDS is not set, ieee80211_i.h was failing to compile, -because struct led_trigger is only declared when CONFIG_LEDS_TRIGGERS is -set. - -This patch adds ifdefs around the tpt_led_trigger declaration in -ieee80211_i.h to avoid the problem. - -Cc: Johannes Berg -Signed-off-by: Luciano Coelho ---- - net/mac80211/ieee80211_i.h | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h -index 0817ec6..7541d42 100644 ---- a/net/mac80211/ieee80211_i.h -+++ b/net/mac80211/ieee80211_i.h -@@ -631,6 +631,7 @@ enum queue_stop_reason { - IEEE80211_QUEUE_STOP_REASON_SKB_ADD, - }; - -+#ifdef CONFIG_MAC80211_LEDS - struct tpt_led_trigger { - struct led_trigger trig; - char name[32]; -@@ -642,6 +643,7 @@ struct tpt_led_trigger { - unsigned int active, want; - bool running; - }; -+#endif - - /** - * mac80211 scan flags - currently active scan mode diff --git a/package/mac80211/patches/310-ath9k_pending_work.patch b/package/mac80211/patches/310-ath9k_pending_work.patch deleted file mode 100644 index eee9238b1e9..00000000000 --- a/package/mac80211/patches/310-ath9k_pending_work.patch +++ /dev/null @@ -1,270 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c -+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c -@@ -961,18 +961,6 @@ static void ar5008_hw_rfbus_done(struct - REG_WRITE(ah, AR_PHY_RFBUS_REQ, 0); - } - --static void ar5008_hw_enable_rfkill(struct ath_hw *ah) --{ -- REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, -- AR_GPIO_INPUT_EN_VAL_RFSILENT_BB); -- -- REG_CLR_BIT(ah, AR_GPIO_INPUT_MUX2, -- AR_GPIO_INPUT_MUX2_RFSILENT); -- -- ath9k_hw_cfg_gpio_input(ah, ah->rfkill_gpio); -- REG_SET_BIT(ah, AR_PHY_TEST, RFSILENT_BB); --} -- - static void ar5008_restore_chainmask(struct ath_hw *ah) - { - int rx_chainmask = ah->rxchainmask; -@@ -1629,7 +1617,6 @@ void ar5008_hw_attach_phy_ops(struct ath - priv_ops->set_delta_slope = ar5008_hw_set_delta_slope; - priv_ops->rfbus_req = ar5008_hw_rfbus_req; - priv_ops->rfbus_done = ar5008_hw_rfbus_done; -- priv_ops->enable_rfkill = ar5008_hw_enable_rfkill; - priv_ops->restore_chainmask = ar5008_restore_chainmask; - priv_ops->set_diversity = ar5008_set_diversity; - priv_ops->do_getnf = ar5008_hw_do_getnf; ---- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c -+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c -@@ -745,28 +745,6 @@ static void ar9003_hw_rfbus_done(struct - REG_WRITE(ah, AR_PHY_RFBUS_REQ, 0); - } - --/* -- * Set the interrupt and GPIO values so the ISR can disable RF -- * on a switch signal. Assumes GPIO port and interrupt polarity -- * are set prior to call. -- */ --static void ar9003_hw_enable_rfkill(struct ath_hw *ah) --{ -- /* Connect rfsilent_bb_l to baseband */ -- REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, -- AR_GPIO_INPUT_EN_VAL_RFSILENT_BB); -- /* Set input mux for rfsilent_bb_l to GPIO #0 */ -- REG_CLR_BIT(ah, AR_GPIO_INPUT_MUX2, -- AR_GPIO_INPUT_MUX2_RFSILENT); -- -- /* -- * Configure the desired GPIO port for input and -- * enable baseband rf silence. -- */ -- ath9k_hw_cfg_gpio_input(ah, ah->rfkill_gpio); -- REG_SET_BIT(ah, AR_PHY_TEST, RFSILENT_BB); --} -- - static void ar9003_hw_set_diversity(struct ath_hw *ah, bool value) - { - u32 v = REG_READ(ah, AR_PHY_CCK_DETECT); -@@ -1203,7 +1181,6 @@ void ar9003_hw_attach_phy_ops(struct ath - priv_ops->set_delta_slope = ar9003_hw_set_delta_slope; - priv_ops->rfbus_req = ar9003_hw_rfbus_req; - priv_ops->rfbus_done = ar9003_hw_rfbus_done; -- priv_ops->enable_rfkill = ar9003_hw_enable_rfkill; - priv_ops->set_diversity = ar9003_hw_set_diversity; - priv_ops->ani_control = ar9003_hw_ani_control; - priv_ops->do_getnf = ar9003_hw_do_getnf; ---- a/drivers/net/wireless/ath/ath9k/ath9k.h -+++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -189,6 +189,7 @@ struct ath_txq { - struct list_head axq_q; - spinlock_t axq_lock; - u32 axq_depth; -+ u32 axq_ampdu_depth; - bool stopped; - bool axq_tx_inprogress; - struct list_head axq_acq; ---- a/drivers/net/wireless/ath/ath9k/hw-ops.h -+++ b/drivers/net/wireless/ath/ath9k/hw-ops.h -@@ -223,11 +223,6 @@ static inline void ath9k_hw_rfbus_done(s - return ath9k_hw_private_ops(ah)->rfbus_done(ah); - } - --static inline void ath9k_enable_rfkill(struct ath_hw *ah) --{ -- return ath9k_hw_private_ops(ah)->enable_rfkill(ah); --} -- - static inline void ath9k_hw_restore_chainmask(struct ath_hw *ah) - { - if (!ath9k_hw_private_ops(ah)->restore_chainmask) ---- a/drivers/net/wireless/ath/ath9k/hw.c -+++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -491,6 +491,17 @@ static int __ath9k_hw_init(struct ath_hw - if (ah->hw_version.devid == AR5416_AR9100_DEVID) - ah->hw_version.macVersion = AR_SREV_VERSION_9100; - -+ ath9k_hw_read_revisions(ah); -+ -+ /* -+ * Read back AR_WA into a permanent copy and set bits 14 and 17. -+ * We need to do this to avoid RMW of this register. We cannot -+ * read the reg when chip is asleep. -+ */ -+ ah->WARegVal = REG_READ(ah, AR_WA); -+ ah->WARegVal |= (AR_WA_D3_L1_DISABLE | -+ AR_WA_ASPM_TIMER_BASED_DISABLE); -+ - if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_POWER_ON)) { - ath_err(common, "Couldn't reset chip\n"); - return -EIO; -@@ -559,14 +570,6 @@ static int __ath9k_hw_init(struct ath_hw - - ath9k_hw_init_mode_regs(ah); - -- /* -- * Read back AR_WA into a permanent copy and set bits 14 and 17. -- * We need to do this to avoid RMW of this register. We cannot -- * read the reg when chip is asleep. -- */ -- ah->WARegVal = REG_READ(ah, AR_WA); -- ah->WARegVal |= (AR_WA_D3_L1_DISABLE | -- AR_WA_ASPM_TIMER_BASED_DISABLE); - - if (ah->is_pciexpress) - ath9k_hw_configpcipowersave(ah, 0, 0); -@@ -1078,8 +1081,6 @@ static bool ath9k_hw_set_reset_power_on( - return false; - } - -- ath9k_hw_read_revisions(ah); -- - return ath9k_hw_set_reset(ah, ATH9K_RESET_WARM); - } - -@@ -1399,7 +1400,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st - ath9k_hw_init_qos(ah); - - if (ah->caps.hw_caps & ATH9K_HW_CAP_RFSILENT) -- ath9k_enable_rfkill(ah); -+ ath9k_hw_cfg_gpio_input(ah, ah->rfkill_gpio); - - ath9k_hw_init_global_settings(ah); - ---- a/drivers/net/wireless/ath/ath9k/hw.h -+++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -576,7 +576,6 @@ struct ath_hw_private_ops { - void (*set_delta_slope)(struct ath_hw *ah, struct ath9k_channel *chan); - bool (*rfbus_req)(struct ath_hw *ah); - void (*rfbus_done)(struct ath_hw *ah); -- void (*enable_rfkill)(struct ath_hw *ah); - void (*restore_chainmask)(struct ath_hw *ah); - void (*set_diversity)(struct ath_hw *ah, bool value); - u32 (*compute_pll_control)(struct ath_hw *ah, ---- a/drivers/net/wireless/ath/ath9k/xmit.c -+++ b/drivers/net/wireless/ath/ath9k/xmit.c -@@ -838,7 +838,7 @@ static void ath_tx_sched_aggr(struct ath - ath_tx_txqaddbuf(sc, txq, &bf_q); - TX_STAT_INC(txq->axq_qnum, a_aggr); - -- } while (txq->axq_depth < ATH_AGGR_MIN_QDEPTH && -+ } while (txq->axq_ampdu_depth < ATH_AGGR_MIN_QDEPTH && - status != ATH_AGGR_BAW_CLOSED); - } - -@@ -999,6 +999,7 @@ struct ath_txq *ath_txq_setup(struct ath - INIT_LIST_HEAD(&txq->axq_acq); - spin_lock_init(&txq->axq_lock); - txq->axq_depth = 0; -+ txq->axq_ampdu_depth = 0; - txq->axq_tx_inprogress = false; - sc->tx.txqsetup |= 1<bf_mpdu); -+ return bf_isampdu(bf) && !(info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE); -+} -+ - /* - * Drain a given TX queue (could be Beacon or Data) - * -@@ -1126,7 +1133,8 @@ void ath_draintxq(struct ath_softc *sc, - } - - txq->axq_depth--; -- -+ if (bf_is_ampdu_not_probing(bf)) -+ txq->axq_ampdu_depth--; - spin_unlock_bh(&txq->axq_lock); - - if (bf_isampdu(bf)) -@@ -1316,6 +1324,8 @@ static void ath_tx_txqaddbuf(struct ath_ - ath9k_hw_txstart(ah, txq->axq_qnum); - } - txq->axq_depth++; -+ if (bf_is_ampdu_not_probing(bf)) -+ txq->axq_ampdu_depth++; - } - - static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid, -@@ -1336,7 +1346,7 @@ static void ath_tx_send_ampdu(struct ath - */ - if (!list_empty(&tid->buf_q) || tid->paused || - !BAW_WITHIN(tid->seq_start, tid->baw_size, fi->seqno) || -- txctl->txq->axq_depth >= ATH_AGGR_MIN_QDEPTH) { -+ txctl->txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH) { - /* - * Add this frame to software queue for scheduling later - * for aggregation. -@@ -2040,6 +2050,9 @@ static void ath_tx_processq(struct ath_s - txq->axq_tx_inprogress = false; - if (bf_held) - list_del(&bf_held->list); -+ -+ if (bf_is_ampdu_not_probing(bf)) -+ txq->axq_ampdu_depth--; - spin_unlock_bh(&txq->axq_lock); - - if (bf_held) -@@ -2168,6 +2181,8 @@ void ath_tx_edma_tasklet(struct ath_soft - INCR(txq->txq_tailidx, ATH_TXFIFO_DEPTH); - txq->axq_depth--; - txq->axq_tx_inprogress = false; -+ if (bf_is_ampdu_not_probing(bf)) -+ txq->axq_ampdu_depth--; - spin_unlock_bh(&txq->axq_lock); - - txok = !(txs.ts_status & ATH9K_TXERR_MASK); ---- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c -+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c -@@ -714,8 +714,7 @@ static void ath9k_set_hw_capab(struct at - IEEE80211_HW_HAS_RATE_CONTROL | - IEEE80211_HW_RX_INCLUDES_FCS | - IEEE80211_HW_SUPPORTS_PS | -- IEEE80211_HW_PS_NULLFUNC_STACK | -- IEEE80211_HW_NEED_DTIM_PERIOD; -+ IEEE80211_HW_PS_NULLFUNC_STACK; - - hw->wiphy->interface_modes = - BIT(NL80211_IFTYPE_STATION) | ---- a/drivers/net/wireless/ath/ath9k/init.c -+++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -646,8 +646,7 @@ void ath9k_set_hw_capab(struct ath_softc - IEEE80211_HW_SUPPORTS_PS | - IEEE80211_HW_PS_NULLFUNC_STACK | - IEEE80211_HW_SPECTRUM_MGMT | -- IEEE80211_HW_REPORTS_TX_ACK_STATUS | -- IEEE80211_HW_NEED_DTIM_PERIOD; -+ IEEE80211_HW_REPORTS_TX_ACK_STATUS; - - if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) - hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION; ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -285,7 +285,8 @@ int ath_set_channel(struct ath_softc *sc - ath9k_hw_set_interrupts(ah, ah->imask); - - if (!(sc->sc_flags & (SC_OP_OFFCHANNEL))) { -- ath_beacon_config(sc, NULL); -+ if (sc->sc_flags & SC_OP_BEACONS) -+ ath_beacon_config(sc, NULL); - ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, 0); - ath_start_ani(common); - } diff --git a/package/mac80211/patches/320-mac80211_fix_key_del_race.patch b/package/mac80211/patches/320-mac80211_fix_key_del_race.patch deleted file mode 100644 index 52803e1098b..00000000000 --- a/package/mac80211/patches/320-mac80211_fix_key_del_race.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Johannes Berg - -commit ad0e2b5a00dbec303e4682b403bb6703d11dcdb2 -Author: Johannes Berg -Date: Tue Jun 1 10:19:19 2010 +0200 - - mac80211: simplify key locking - -removed the synchronization against RCU and thus -opened a race window where we can use a key for -TX while it is already freed. Put a synchronisation -into the right place to close that window. - -Reported-by: Jussi Kivilinna -Cc: stable@kernel.org [2.6.36+] -Signed-off-by: Johannes Berg - ---- a/net/mac80211/key.c -+++ b/net/mac80211/key.c -@@ -382,6 +382,12 @@ static void __ieee80211_key_destroy(stru - if (!key) - return; - -+ /* -+ * Synchronize so the TX path can no longer be using -+ * this key before we free/remove it. -+ */ -+ synchronize_rcu(); -+ - if (key->local) - ieee80211_key_disable_hw_accel(key); - diff --git a/package/mac80211/patches/402-ath9k_blink_default.patch b/package/mac80211/patches/402-ath9k_blink_default.patch index 85fcc63c356..5f07a6da9a5 100644 --- a/package/mac80211/patches/402-ath9k_blink_default.patch +++ b/package/mac80211/patches/402-ath9k_blink_default.patch @@ -1,7 +1,7 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -33,7 +33,7 @@ int modparam_nohwcrypt; - module_param_named(nohwcrypt, modparam_nohwcrypt, int, 0444); +@@ -33,7 +33,7 @@ int ath9k_modparam_nohwcrypt; + module_param_named(nohwcrypt, ath9k_modparam_nohwcrypt, int, 0444); MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption"); -int led_blink; diff --git a/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch b/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch index daebf33b405..d0c22b3d5c3 100644 --- a/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch +++ b/package/mac80211/patches/407-ath9k-override-mac-address-from-platform-data.patch @@ -18,7 +18,7 @@ #include "ath9k.h" -@@ -526,6 +527,7 @@ static void ath9k_init_misc(struct ath_s +@@ -528,6 +529,7 @@ static void ath9k_init_misc(struct ath_s static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid, const struct ath_bus_ops *bus_ops) { @@ -26,7 +26,7 @@ struct ath_hw *ah = NULL; struct ath_common *common; int ret = 0, i; -@@ -539,7 +541,7 @@ static int ath9k_init_softc(u16 devid, s +@@ -541,7 +543,7 @@ static int ath9k_init_softc(u16 devid, s ah->hw_version.subsysid = subsysid; sc->sc_ah = ah; @@ -35,7 +35,7 @@ ah->ah_flags |= AH_USE_EEPROM; common = ath9k_hw_common(ah); -@@ -572,6 +574,9 @@ static int ath9k_init_softc(u16 devid, s +@@ -574,6 +576,9 @@ static int ath9k_init_softc(u16 devid, s if (ret) goto err_hw; diff --git a/package/mac80211/patches/409-ath9k_platform_settings.patch b/package/mac80211/patches/409-ath9k_platform_settings.patch index 7b735a10bc3..d322b6eb9e7 100644 --- a/package/mac80211/patches/409-ath9k_platform_settings.patch +++ b/package/mac80211/patches/409-ath9k_platform_settings.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -541,8 +541,14 @@ static int ath9k_init_softc(u16 devid, s +@@ -543,8 +543,14 @@ static int ath9k_init_softc(u16 devid, s ah->hw_version.subsysid = subsysid; sc->sc_ah = ah; @@ -18,7 +18,7 @@ common->ops = &ath9k_common_ops; --- a/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -786,7 +786,7 @@ struct ath_hw { +@@ -790,7 +790,7 @@ struct ath_hw { u32 originalGain[22]; int initPDADC; int PDADCdelta; diff --git a/package/mac80211/patches/510-ath9k_led_cleanup.patch b/package/mac80211/patches/510-ath9k_led_cleanup.patch index 626bc0c2d8f..5f6968becc5 100644 --- a/package/mac80211/patches/510-ath9k_led_cleanup.patch +++ b/package/mac80211/patches/510-ath9k_led_cleanup.patch @@ -253,7 +253,7 @@ /* Rfkill */ --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -1296,9 +1296,6 @@ static void ath9k_stop(struct ieee80211_ +@@ -1270,9 +1270,6 @@ static void ath9k_stop(struct ieee80211_ aphy->state = ATH_WIPHY_INACTIVE; @@ -265,7 +265,7 @@ cancel_work_sync(&sc->hw_check_work); --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -143,6 +143,21 @@ static struct ieee80211_rate ath9k_legac +@@ -145,6 +145,21 @@ static struct ieee80211_rate ath9k_legac RATE(540, 0x0c, 0), }; @@ -287,7 +287,7 @@ static void ath9k_deinit_softc(struct ath_softc *sc); /* -@@ -745,6 +760,13 @@ int ath9k_init_device(u16 devid, struct +@@ -747,6 +762,13 @@ int ath9k_init_device(u16 devid, struct ath9k_init_txpower_limits(sc); diff --git a/package/mac80211/patches/520-ath9k_intr_mitigation_tweak.patch b/package/mac80211/patches/520-ath9k_intr_mitigation_tweak.patch new file mode 100644 index 00000000000..0c337411ff7 --- /dev/null +++ b/package/mac80211/patches/520-ath9k_intr_mitigation_tweak.patch @@ -0,0 +1,13 @@ +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -1425,8 +1425,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st + REG_WRITE(ah, AR_OBS, 8); + + if (ah->config.rx_intr_mitigation) { +- REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500); +- REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 2000); ++ REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 250); ++ REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 500); + } + + if (ah->config.tx_intr_mitigation) { diff --git a/package/mac80211/patches/520-ath9k_paprd_ht40_fix.patch b/package/mac80211/patches/520-ath9k_paprd_ht40_fix.patch deleted file mode 100644 index cea8f2e3780..00000000000 --- a/package/mac80211/patches/520-ath9k_paprd_ht40_fix.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c -+++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c -@@ -4762,6 +4762,7 @@ static void ath9k_hw_ar9300_set_txpower( - struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); - struct ath_common *common = ath9k_hw_common(ah); - struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep; -+ struct ar9300_modal_eep_header *modal_hdr; - u8 targetPowerValT2[ar9300RateSize]; - u8 target_power_val_t2_eep[ar9300RateSize]; - unsigned int i = 0, paprd_scale_factor = 0; -@@ -4771,15 +4772,17 @@ static void ath9k_hw_ar9300_set_txpower( - - if (ah->eep_ops->get_eeprom(ah, EEP_PAPRD)) { - if (IS_CHAN_2GHZ(chan)) -- ah->paprd_ratemask = (IS_CHAN_HT40(chan) ? -- le32_to_cpu(eep->modalHeader2G.papdRateMaskHt40) : -- le32_to_cpu(eep->modalHeader2G.papdRateMaskHt20)) -- & AR9300_PAPRD_RATE_MASK; -+ modal_hdr = &eep->modalHeader2G; - else -- ah->paprd_ratemask = (IS_CHAN_HT40(chan) ? -- le32_to_cpu(eep->modalHeader5G.papdRateMaskHt40) : -- le32_to_cpu(eep->modalHeader5G.papdRateMaskHt20)) -- & AR9300_PAPRD_RATE_MASK; -+ modal_hdr = &eep->modalHeader5G; -+ -+ ah->paprd_ratemask = -+ le32_to_cpu(modal_hdr->papdRateMaskHt20) & -+ AR9300_PAPRD_RATE_MASK; -+ -+ ah->paprd_ratemask_ht40 = -+ le32_to_cpu(modal_hdr->papdRateMaskHt40) & -+ AR9300_PAPRD_RATE_MASK; - - paprd_scale_factor = ar9003_get_paprd_scale_factor(ah, chan); - min_pwridx = IS_CHAN_HT40(chan) ? ALL_TARGET_HT40_0_8_16 : ---- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c -+++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c -@@ -134,7 +134,7 @@ static int ar9003_paprd_setup_single_tab - REG_RMW_FIELD(ah, AR_PHY_PAPRD_AM2PM, AR_PHY_PAPRD_AM2PM_MASK, - ah->paprd_ratemask); - REG_RMW_FIELD(ah, AR_PHY_PAPRD_HT40, AR_PHY_PAPRD_HT40_MASK, -- AR_PHY_PAPRD_HT40_MASK); -+ ah->paprd_ratemask_ht40); - - for (i = 0; i < ah->caps.max_txchains; i++) { - REG_RMW_FIELD(ah, ctrl0[i], ---- a/drivers/net/wireless/ath/ath9k/hw.h -+++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -837,6 +837,7 @@ struct ath_hw { - unsigned int paprd_target_power; - unsigned int paprd_training_power; - unsigned int paprd_ratemask; -+ unsigned int paprd_ratemask_ht40; - bool paprd_table_write_done; - u32 paprd_gain_table_entries[PAPRD_GAIN_TABLE_ENTRIES]; - u8 paprd_gain_table_index[PAPRD_GAIN_TABLE_ENTRIES]; diff --git a/package/mac80211/patches/530-ath9k_chainmask_read_fix.patch b/package/mac80211/patches/530-ath9k_chainmask_read_fix.patch deleted file mode 100644 index a0eebf59704..00000000000 --- a/package/mac80211/patches/530-ath9k_chainmask_read_fix.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/debug.c -+++ b/drivers/net/wireless/ath/ath9k/debug.c -@@ -81,11 +81,10 @@ static ssize_t read_file_tx_chainmask(st - size_t count, loff_t *ppos) - { - struct ath_softc *sc = file->private_data; -- struct ath_common *common = ath9k_hw_common(sc->sc_ah); - char buf[32]; - unsigned int len; - -- len = sprintf(buf, "0x%08x\n", common->tx_chainmask); -+ len = sprintf(buf, "0x%08x\n", sc->sc_ah->caps.tx_chainmask); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); - } - -@@ -124,11 +123,10 @@ static ssize_t read_file_rx_chainmask(st - size_t count, loff_t *ppos) - { - struct ath_softc *sc = file->private_data; -- struct ath_common *common = ath9k_hw_common(sc->sc_ah); - char buf[32]; - unsigned int len; - -- len = sprintf(buf, "0x%08x\n", common->rx_chainmask); -+ len = sprintf(buf, "0x%08x\n", sc->sc_ah->caps.rx_chainmask); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); - } - diff --git a/package/mac80211/patches/531-ath9k_legacy_chainmask_fix.patch b/package/mac80211/patches/531-ath9k_legacy_chainmask_fix.patch deleted file mode 100644 index a2968b29ba4..00000000000 --- a/package/mac80211/patches/531-ath9k_legacy_chainmask_fix.patch +++ /dev/null @@ -1,75 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/ath9k.h -+++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -665,7 +665,6 @@ void ath9k_deinit_device(struct ath_soft - void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw); - void ath9k_update_ichannel(struct ath_softc *sc, struct ieee80211_hw *hw, - struct ath9k_channel *ichan); --void ath_update_chainmask(struct ath_softc *sc, int is_ht); - int ath_set_channel(struct ath_softc *sc, struct ieee80211_hw *hw, - struct ath9k_channel *hchan); - ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -539,32 +539,6 @@ set_timer: - } - } - --/* -- * Update tx/rx chainmask. For legacy association, -- * hard code chainmask to 1x1, for 11n association, use -- * the chainmask configuration, for bt coexistence, use -- * the chainmask configuration even in legacy mode. -- */ --void ath_update_chainmask(struct ath_softc *sc, int is_ht) --{ -- struct ath_hw *ah = sc->sc_ah; -- struct ath_common *common = ath9k_hw_common(ah); -- -- if ((sc->sc_flags & SC_OP_OFFCHANNEL) || is_ht || -- (ah->btcoex_hw.scheme != ATH_BTCOEX_CFG_NONE)) { -- common->tx_chainmask = ah->caps.tx_chainmask; -- common->rx_chainmask = ah->caps.rx_chainmask; -- } else { -- common->tx_chainmask = 1; -- common->rx_chainmask = 1; -- } -- -- ath_dbg(common, ATH_DBG_CONFIG, -- "tx chmask: %d, rx chmask: %d\n", -- common->tx_chainmask, -- common->rx_chainmask); --} -- - static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta) - { - struct ath_node *an; -@@ -1677,8 +1651,6 @@ static int ath9k_config(struct ieee80211 - /* XXX: remove me eventualy */ - ath9k_update_ichannel(sc, hw, &sc->sc_ah->channels[pos]); - -- ath_update_chainmask(sc, conf_is_ht(conf)); -- - /* update survey stats for the old channel before switching */ - spin_lock_irqsave(&common->cc_lock, flags); - ath_update_survey_stats(sc); -@@ -1910,10 +1882,6 @@ static void ath9k_bss_info_changed(struc - /* Set aggregation protection mode parameters */ - sc->config.ath_aggr_prot = 0; - -- /* Only legacy IBSS for now */ -- if (vif->type == NL80211_IFTYPE_ADHOC) -- ath_update_chainmask(sc, 0); -- - ath_dbg(common, ATH_DBG_CONFIG, "BSSID: %pM aid: 0x%x\n", - common->curbssid, common->curaid); - ---- a/drivers/net/wireless/ath/ath9k/virtual.c -+++ b/drivers/net/wireless/ath/ath9k/virtual.c -@@ -288,7 +288,6 @@ void ath9k_wiphy_chan_work(struct work_s - /* sync hw configuration for hw code */ - common->hw = aphy->hw; - -- ath_update_chainmask(sc, sc->chan_is_ht); - if (ath_set_channel(sc, aphy->hw, - &sc->sc_ah->channels[sc->chan_idx]) < 0) { - printk(KERN_DEBUG "ath9k: Failed to set channel for new " diff --git a/package/mac80211/patches/540-mac80211_tx_optimization.patch b/package/mac80211/patches/540-mac80211_tx_optimization.patch deleted file mode 100644 index a3220782238..00000000000 --- a/package/mac80211/patches/540-mac80211_tx_optimization.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -1549,8 +1549,10 @@ static int ieee80211_skb_resize(struct i - - if (skb_header_cloned(skb)) - I802_DEBUG_INC(local->tx_expand_skb_head_cloned); -- else -+ else if (head_need || tail_need) - I802_DEBUG_INC(local->tx_expand_skb_head); -+ else -+ return 0; - - if (pskb_expand_head(skb, head_need, tail_need, GFP_ATOMIC)) { - wiphy_debug(local->hw.wiphy, diff --git a/package/mac80211/patches/541-mac80211_fix_skb_copy_crash.patch b/package/mac80211/patches/541-mac80211_fix_skb_copy_crash.patch deleted file mode 100644 index 810df58506d..00000000000 --- a/package/mac80211/patches/541-mac80211_fix_skb_copy_crash.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -1748,7 +1748,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s - { - struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); - struct ieee80211_local *local = sdata->local; -- struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); -+ struct ieee80211_tx_info *info; - int ret = NETDEV_TX_BUSY, head_need; - u16 ethertype, hdrlen, meshhdrlen = 0; - __le16 fc; -@@ -2039,6 +2039,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s - skb_set_network_header(skb, nh_pos); - skb_set_transport_header(skb, h_pos); - -+ info = IEEE80211_SKB_CB(skb); - memset(info, 0, sizeof(*info)); - - dev->trans_start = jiffies; diff --git a/package/mac80211/patches/542-mac80211_fix_duplicate_skb_data_copy.patch b/package/mac80211/patches/542-mac80211_fix_duplicate_skb_data_copy.patch deleted file mode 100644 index e66eee2e493..00000000000 --- a/package/mac80211/patches/542-mac80211_fix_duplicate_skb_data_copy.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -1943,7 +1943,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s - */ - if (skb_shared(skb)) { - tmp_skb = skb; -- skb = skb_copy(skb, GFP_ATOMIC); -+ skb = skb_clone(skb, GFP_ATOMIC); - kfree_skb(tmp_skb); - - if (!skb) { diff --git a/package/mac80211/patches/550-ath9k_intr_mitigation_tweak.patch b/package/mac80211/patches/550-ath9k_intr_mitigation_tweak.patch deleted file mode 100644 index be17062ccb5..00000000000 --- a/package/mac80211/patches/550-ath9k_intr_mitigation_tweak.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/hw.c -+++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -1426,8 +1426,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st - REG_WRITE(ah, AR_OBS, 8); - - if (ah->config.rx_intr_mitigation) { -- REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500); -- REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 2000); -+ REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 250); -+ REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 500); - } - - if (ah->config.tx_intr_mitigation) { diff --git a/package/mac80211/patches/560-ath9k_rx_error_handling.patch b/package/mac80211/patches/560-ath9k_rx_error_handling.patch deleted file mode 100644 index d66e747afb6..00000000000 --- a/package/mac80211/patches/560-ath9k_rx_error_handling.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/mac.c -+++ b/drivers/net/wireless/ath/ath9k/mac.c -@@ -692,15 +692,16 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a - if ((ads.ds_rxstatus8 & AR_RxFrameOK) == 0) { - if (ads.ds_rxstatus8 & AR_CRCErr) - rs->rs_status |= ATH9K_RXERR_CRC; -- else if (ads.ds_rxstatus8 & AR_PHYErr) { -+ if (ads.ds_rxstatus8 & AR_PHYErr) { - rs->rs_status |= ATH9K_RXERR_PHY; - phyerr = MS(ads.ds_rxstatus8, AR_PHYErrCode); - rs->rs_phyerr = phyerr; -- } else if (ads.ds_rxstatus8 & AR_DecryptCRCErr) -+ } -+ if (ads.ds_rxstatus8 & AR_DecryptCRCErr) - rs->rs_status |= ATH9K_RXERR_DECRYPT; -- else if (ads.ds_rxstatus8 & AR_MichaelErr) -+ if (ads.ds_rxstatus8 & AR_MichaelErr) - rs->rs_status |= ATH9K_RXERR_MIC; -- else if (ads.ds_rxstatus8 & AR_KeyMiss) -+ if (ads.ds_rxstatus8 & AR_KeyMiss) - rs->rs_status |= ATH9K_RXERR_DECRYPT; - } - ---- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c -+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c -@@ -613,9 +613,9 @@ int ath9k_hw_process_rxdesc_edma(struct - * possibly be reviewing the last subframe. AR_CRCErr - * is the CRC of the actual data. - */ -- if (rxsp->status11 & AR_CRCErr) { -+ if (rxsp->status11 & AR_CRCErr) - rxs->rs_status |= ATH9K_RXERR_CRC; -- } else if (rxsp->status11 & AR_PHYErr) { -+ if (rxsp->status11 & AR_PHYErr) { - phyerr = MS(rxsp->status11, AR_PHYErrCode); - /* - * If we reach a point here where AR_PostDelimCRCErr is -@@ -638,11 +638,12 @@ int ath9k_hw_process_rxdesc_edma(struct - rxs->rs_phyerr = phyerr; - } - -- } else if (rxsp->status11 & AR_DecryptCRCErr) { -+ } -+ if (rxsp->status11 & AR_DecryptCRCErr) - rxs->rs_status |= ATH9K_RXERR_DECRYPT; -- } else if (rxsp->status11 & AR_MichaelErr) { -+ if (rxsp->status11 & AR_MichaelErr) - rxs->rs_status |= ATH9K_RXERR_MIC; -- } else if (rxsp->status11 & AR_KeyMiss) -+ if (rxsp->status11 & AR_KeyMiss) - rxs->rs_status |= ATH9K_RXERR_DECRYPT; - } - diff --git a/package/mac80211/patches/800-b43-gpio-mask-module-option.patch b/package/mac80211/patches/800-b43-gpio-mask-module-option.patch index 86578724dd4..eebda2ad6c6 100644 --- a/package/mac80211/patches/800-b43-gpio-mask-module-option.patch +++ b/package/mac80211/patches/800-b43-gpio-mask-module-option.patch @@ -22,7 +22,7 @@ static int modparam_bad_frames_preempt; module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444); MODULE_PARM_DESC(bad_frames_preempt, -@@ -2536,10 +2541,10 @@ static int b43_gpio_init(struct b43_wlde +@@ -2542,10 +2547,10 @@ static int b43_gpio_init(struct b43_wlde & ~B43_MACCTL_GPOUTSMSK); b43_write16(dev, B43_MMIO_GPIO_MASK, b43_read16(dev, B43_MMIO_GPIO_MASK) @@ -35,7 +35,7 @@ if (dev->dev->bus->chip_id == 0x4301) { mask |= 0x0060; set |= 0x0060; -@@ -5096,10 +5101,10 @@ static void b43_print_driverinfo(void) +@@ -5102,10 +5107,10 @@ static void b43_print_driverinfo(void) feat_sdio = "S"; #endif printk(KERN_INFO "Broadcom 43xx driver loaded "