From: Felix Fietkau Date: Tue, 11 Jan 2011 00:21:32 +0000 (+0000) Subject: mac80211: merge latest from trunk - improves reliability with intel clients X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=014293f6297f837684190eda04898e1be12412d0 mac80211: merge latest from trunk - improves reliability with intel clients SVN-Revision: 24962 --- diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile index 2755cb0ad9..3aec1cd1a6 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) @@ -25,7 +25,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_ATH_DEBUG \ CONFIG_ATH_USER_REGD \ -CARL9170_FW_VERSION:=1.8.8.2 +CARL9170_FW_VERSION:=1.9.2 include $(INCLUDE_DIR)/package.mk @@ -117,9 +117,9 @@ endef $(eval $(call Download,p54spi)) define Download/carl9170 - FILE:=$(CARL9170_FW) - URL:=http://www.kernel.org/pub/linux/kernel/people/chr/carl9170/fw/$(CARL9170_FW_VERSION) - MD5SUM:=114c43846ed1d2f89cc92bd0e2ec0589 + FILE:=$(CARL9170_FW)-$(CARL9170_FW_VERSION) + URL:=http://downloads.openwrt.org/sources/ + MD5SUM:=9e33ac39dcd610aa1ad80bbf4f1abccf endef $(eval $(call Download,carl9170)) @@ -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 @@ -401,7 +401,7 @@ endef define KernelPackage/ath $(call KernelPackage/mac80211/Default) TITLE:=Atheros common driver part - DEPENDS+= @PCI_SUPPORT +kmod-mac80211 + DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko AUTOLOAD:=$(call AutoLoad,26,ath) MENU:=1 @@ -415,7 +415,7 @@ define KernelPackage/ath5k $(call KernelPackage/mac80211/Default) TITLE:=Atheros 5xxx wireless cards support URL:=http://linuxwireless.org/en/users/Drivers/ath5k - DEPENDS+= +kmod-ath + DEPENDS+= @PCI_SUPPORT||@TARGET_atheros +kmod-ath FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko AUTOLOAD:=$(call AutoLoad,27,ath5k) endef @@ -429,7 +429,7 @@ define KernelPackage/ath9k $(call KernelPackage/mac80211/Default) TITLE:=Atheros 802.11n wireless cards support URL:=http://linuxwireless.org/en/users/Drivers/ath9k - DEPENDS+= +kmod-ath + DEPENDS+= @PCI_SUPPORT +kmod-ath FILES:= \ $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \ $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko \ @@ -453,7 +453,7 @@ endef define KernelPackage/carl9170/install $(INSTALL_DIR) $(1)/lib/firmware - $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW) $(1)/lib/firmware/ + $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW)-$(CARL9170_FW_VERSION) $(1)/lib/firmware/$(CARL9170_FW) 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 a99bf99d89..017c8f98a1 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 453b97942e..c0e47f61a3 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 3120361a8a..e2744d9206 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 cb3fddb49b..bf7ecbd011 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 8a36f16692..0000000000 --- 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 51189fc821..c7457c856b 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 aba19b644a..3bb2030611 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 94c09fce79..b5c47593fe 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 86b65b86c7..768c61cfc9 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 99b19d81ed..f53284e1af 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 7e275b0429..7b7304aab9 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 792ecb563c..a9bc153b22 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 be91eafb80..178f38b3e5 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 a88d1f590c..99f250ab3c 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 561e36924b..cbfa42cba3 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 ec2d5a72e6..148ff0c2cd 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 938617682e..0000000000 --- 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 7278551d18..0000000000 --- a/package/mac80211/patches/310-ath9k_pending_work.patch +++ /dev/null @@ -1,234 +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); diff --git a/package/mac80211/patches/402-ath9k_blink_default.patch b/package/mac80211/patches/402-ath9k_blink_default.patch index 85fcc63c35..5f07a6da9a 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 daebf33b40..d0c22b3d5c 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 7b735a10bc..d322b6eb9e 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 be26a883cf..5f6968becc 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 -@@ -1295,9 +1295,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); /* -@@ -746,6 +761,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 0000000000..0c337411ff --- /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 cea8f2e378..0000000000 --- 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_aggr_flush_fix.patch b/package/mac80211/patches/530-ath9k_aggr_flush_fix.patch new file mode 100644 index 0000000000..1407a73887 --- /dev/null +++ b/package/mac80211/patches/530-ath9k_aggr_flush_fix.patch @@ -0,0 +1,11 @@ +--- a/drivers/net/wireless/ath/ath9k/xmit.c ++++ b/drivers/net/wireless/ath/ath9k/xmit.c +@@ -169,7 +169,7 @@ static void ath_tx_flush_tid(struct ath_ + ath_tx_update_baw(sc, tid, fi->seqno); + ath_tx_complete_buf(sc, bf, txq, &bf_head, &ts, 0, 0); + } else { +- ath_tx_send_normal(sc, txq, tid, &bf_head); ++ ath_tx_send_normal(sc, txq, NULL, &bf_head); + } + spin_lock_bh(&txq->axq_lock); + } 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 a0eebf5970..0000000000 --- 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_aggr_start_fix.patch b/package/mac80211/patches/531-ath9k_aggr_start_fix.patch new file mode 100644 index 0000000000..1197e5cc48 --- /dev/null +++ b/package/mac80211/patches/531-ath9k_aggr_start_fix.patch @@ -0,0 +1,11 @@ +--- a/drivers/net/wireless/ath/ath9k/xmit.c ++++ b/drivers/net/wireless/ath/ath9k/xmit.c +@@ -856,7 +856,7 @@ int ath_tx_aggr_start(struct ath_softc * + + txtid->state |= AGGR_ADDBA_PROGRESS; + txtid->paused = true; +- *ssn = txtid->seq_start; ++ *ssn = txtid->seq_start = txtid->seq_next; + + return 0; + } 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 df7e5cbbf3..0000000000 --- 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 -@@ -538,32 +538,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; -@@ -1676,8 +1650,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); -@@ -1909,10 +1881,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/532-ath9k_aggr_baw_init.patch b/package/mac80211/patches/532-ath9k_aggr_baw_init.patch new file mode 100644 index 0000000000..0b9edd3347 --- /dev/null +++ b/package/mac80211/patches/532-ath9k_aggr_baw_init.patch @@ -0,0 +1,12 @@ +--- a/drivers/net/wireless/ath/ath9k/xmit.c ++++ b/drivers/net/wireless/ath/ath9k/xmit.c +@@ -858,6 +858,9 @@ int ath_tx_aggr_start(struct ath_softc * + txtid->paused = true; + *ssn = txtid->seq_start = txtid->seq_next; + ++ memset(txtid->tx_buf, 0, sizeof(txtid->tx_buf)); ++ txtid->baw_head = txtid->baw_tail = 0; ++ + return 0; + } + diff --git a/package/mac80211/patches/540-ath9k_bb_hang_check_fix.patch b/package/mac80211/patches/540-ath9k_bb_hang_check_fix.patch new file mode 100644 index 0000000000..19c6abd701 --- /dev/null +++ b/package/mac80211/patches/540-ath9k_bb_hang_check_fix.patch @@ -0,0 +1,30 @@ + +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -251,6 +251,9 @@ int ath_set_channel(struct ath_softc *sc + if (!ath_stoprecv(sc)) + stopped = false; + ++ if (!ath9k_hw_check_alive(ah)) ++ stopped = false; ++ + /* XXX: do not flush receive queue here. We don't want + * to flush data frames already in queue because of + * changing channel. */ +@@ -602,7 +605,15 @@ void ath9k_tasklet(unsigned long data) + + spin_lock(&sc->sc_pcu_lock); + +- if (!ath9k_hw_check_alive(ah)) ++ /* ++ * Only run the baseband hang check if beacons stop working in AP or ++ * IBSS mode, because it has a high false positive rate. For station ++ * mode it should not be necessary, since the upper layers will detect ++ * this through a beacon miss automatically and the following channel ++ * change will trigger a hardware reset anyway ++ */ ++ if (ath9k_hw_numtxpending(ah, sc->beacon.beaconq) != 0 && ++ !ath9k_hw_check_alive(ah)) + ieee80211_queue_work(sc->hw, &sc->hw_check_work); + + if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) 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 a322078223..0000000000 --- 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 810df58506..0000000000 --- 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 e66eee2e49..0000000000 --- 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 be17062ccb..0000000000 --- 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/800-b43-gpio-mask-module-option.patch b/package/mac80211/patches/800-b43-gpio-mask-module-option.patch index 86578724dd..eebda2ad6c 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 "