diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-09-14 22:53:54 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-09-14 22:53:54 +0000 | 
| commit | e30b799cdce79c4fe33c8bd09d2f289baf788382 (patch) | |
| tree | 0bfc5f31cc4ea54f7253c14f510eac831f1495d0 | |
| parent | 872d5928d93dcbb73d86a06bfe3981cbd3e35baf (diff) | |
mac80211: upgrade to wireless-testing 2010-09-14, replace the external carl9170 with the recently merged upstream version
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23061 3c298f89-4303-0410-b956-a3cf2f4a3e73
34 files changed, 220 insertions, 455 deletions
| diff --git a/package/carl9170/Makefile b/package/carl9170/Makefile deleted file mode 100644 index 534f17965..000000000 --- a/package/carl9170/Makefile +++ /dev/null @@ -1,90 +0,0 @@ -# -# Copyright (C) 2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=carl9170 -PKG_VERSION:=1.0.5.3 -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/chr/carl9170/$(PKG_VERSION) \ -	@KERNEL/linux/kernel/people/chr/carl9170/old/$(PKG_VERSION) -PKG_MD5SUM:=91d714d1e5c5c62da1191ac5afd8bcb0 - -PKG_CONFIG_DEPENDS:= \ -	CONFIG_PACKAGE_CARL9170_DEBUGFS \ - -include $(INCLUDE_DIR)/package.mk - -DRV_PATH:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170 - -define KernelPackage/carl9170 -  SUBMENU:=Wireless Drivers -  TITLE:=Driver for Atheros AR9170 USB sticks -  DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core -  URL:=http://www.kernel.org/pub/linux/kernel/people/chr/carl9170 -  FILES:=$(DRV_PATH)/carl9170usb.ko -  AUTOLOAD:=$(call AutoLoad,60,carl9170usb) -  MENU:=1 -endef - -define KernelPackage/carl9170/config -	menu "Configuration" -		depends PACKAGE_kmod-carl9170 - -	config PACKAGE_CARL9170_DEBUGFS -		bool "Enable Debugging (DebugFS) Support" -		depends PACKAGE_MAC80211_DEBUGFS -		help -		  Say Y if you need access to carl9170usb's statistics for QoS queue  -		  status, rate control, etc... - -	endmenu -endef - -define KernelPackage/carl9170/description - This package contains a driver for Atheros AR9170 USB sticks using the free firmware -endef - -define Build/Prepare -	rm -rf $(PKG_BUILD_DIR) -	mkdir -p $(PKG_BUILD_DIR) -	$(HOST_TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_SOURCE) -	$(HOST_TAR) -C $(PKG_BUILD_DIR) -xf $(PKG_BUILD_DIR)/$(PKG_VERSION)/driver/carl9170-driver-$(PKG_VERSION).tar -	ln -s $(STAGING_DIR)/usr/include/mac80211/ath/*.h $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ -	$(Build/Patch) -endef - -BUILDFLAGS = \ -	CONFIG_CARL9170_USB=m \ -	CONFIG_CARL9170_LEDS=$(if $(CONFIG_LEDS_TRIGGERS),y) \ -	CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_CARL9170_DEBUGFS),y) \ -	CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \ - -EXTRA_CFLAGS = \ -	$(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD) \ -	$(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_CARL9170_LEDS) \ -	$(if $(CONFIG_PACKAGE_CARL9170_DEBUGFS),-DCONFIG_CARL9170_DEBUGFS) \ -	$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS) \ - -define Build/Compile -	$(MAKE) -C $(LINUX_DIR) \ -		SUBDIRS="$(DRV_PATH)" \ -		ARCH="$(LINUX_KARCH)" \ -		CROSS_COMPILE="$(KERNEL_CROSS)" \ -		CC="$(TARGET_CC) -I$(STAGING_DIR)/usr/include/mac80211 $(EXTRA_CFLAGS)" \ -		$(BUILDFLAGS) -endef - -define KernelPackage/carl9170/install -	$(INSTALL_DIR) $(1)/lib/firmware -	$(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_VERSION)/firmware_build/carl9170-1.fw $(1)/lib/firmware/ -endef - -$(eval $(call KernelPackage,carl9170)) diff --git a/package/carl9170/patches/100-request_firmware_compat.patch b/package/carl9170/patches/100-request_firmware_compat.patch deleted file mode 100644 index cc29239c8..000000000 --- a/package/carl9170/patches/100-request_firmware_compat.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/drivers/net/wireless/ath/carl9170/usb.c -+++ b/drivers/net/wireless/ath/carl9170/usb.c -@@ -1000,11 +1000,28 @@ err_failed: - 	ar9170_usb_firmware_failed(aru); - } -  -+ -+ - static int ar9170_usb_request_firmware(struct ar9170_usb *aru) - { -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) -+	const struct firmware *fw; -+	int ret; -+ -+	ret = request_firmware(&fw, -+		ar9170_fws[aru->fw_load].files[aru->fw_files].name, -+		&aru->udev->dev); -+ -+	if (ret < 0) -+		return ret; -+ -+	ar9170_usb_firmware_step2(fw, aru); -+	return 0; -+#else - 	return request_firmware_nowait(THIS_MODULE, 1, - 		ar9170_fws[aru->fw_load].files[aru->fw_files].name, - 		&aru->udev->dev, GFP_KERNEL, aru, ar9170_usb_firmware_step2); -+#endif - } -  - static void ar9170_usb_disconnect(struct usb_interface *intf) diff --git a/package/carl9170/patches/110-ht_default.patch b/package/carl9170/patches/110-ht_default.patch deleted file mode 100644 index 5e1c4bccf..000000000 --- a/package/carl9170/patches/110-ht_default.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/drivers/net/wireless/ath/carl9170/main.c -+++ b/drivers/net/wireless/ath/carl9170/main.c -@@ -51,7 +51,7 @@ static int modparam_nohwcrypt; - module_param_named(nohwcrypt, modparam_nohwcrypt, bool, S_IRUGO); - MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption."); -  --int modparam_ht; -+int modparam_ht = 1; - module_param_named(ht, modparam_ht, bool, S_IRUGO); - MODULE_PARM_DESC(ht, "enable MPDU aggregation."); -  diff --git a/package/carl9170/patches/120-2.6.35-compat.patch b/package/carl9170/patches/120-2.6.35-compat.patch deleted file mode 100644 index e413edf2c..000000000 --- a/package/carl9170/patches/120-2.6.35-compat.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/drivers/net/wireless/ath/carl9170/main.c -+++ b/drivers/net/wireless/ath/carl9170/main.c -@@ -591,21 +591,36 @@ out: - 	return err; - } -  -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) -+static u64 ar9170_op_prepare_multicast(struct ieee80211_hw *hw, -+				       struct netdev_hw_addr_list *mclist) -+#else - static u64 ar9170_op_prepare_multicast(struct ieee80211_hw *hw, int mc_count, - 				       struct dev_addr_list *mclist) -+#endif - { - 	u64 mchash; -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) -+	struct netdev_hw_addr *ha; -+#else - 	int i; -+#endif -  - 	/* always get broadcast frames */ - 	mchash = 1ULL << (0xff >> 2); -  -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) -+	netdev_hw_addr_list_for_each(ha, mclist) { -+		mchash |= 1ULL << (ha->addr[5] >> 2); -+	} -+#else - 	for (i = 0; i < mc_count; i++) { - 		if (WARN_ON(!mclist)) - 			break; - 		mchash |= 1ULL << (mclist->dmi_addr[5] >> 2); - 		mclist = mclist->next; - 	} -+#endif -  - 	return mchash; - } ---- a/drivers/net/wireless/ath/carl9170/usb.c -+++ b/drivers/net/wireless/ath/carl9170/usb.c -@@ -48,6 +48,11 @@ - #include "fwcmd.h" - #include "usb.h" -  -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) -+#define usb_buffer_alloc(dev, size, mem_flags, dma)	usb_alloc_coherent(dev, size, mem_flags, dma) -+#define usb_buffer_free(dev, size, addr, dma)	usb_free_coherent(dev, size, addr, dma) -+#endif -+ - MODULE_AUTHOR("Johannes Berg <johannes@sipsolutions.net>"); - MODULE_AUTHOR("Christian Lamparter <chunkeey@googlemail.com>"); - MODULE_LICENSE("GPL"); diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile index f3b441c8f..78220aff5 100644 --- a/package/mac80211/Makefile +++ b/package/mac80211/Makefile @@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk  PKG_NAME:=mac80211 -PKG_VERSION:=2010-08-31 +PKG_VERSION:=2010-09-14  PKG_RELEASE:=1  PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources  #	http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \  #	http://wireless.kernel.org/download/compat-wireless-2.6 -PKG_MD5SUM:=5d720b6d8de97ae61a4c3e4ee10a6de1 +PKG_MD5SUM:=88511287e013ff0f2843b3679f52f335  PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2  PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION) @@ -28,6 +28,8 @@ PKG_CONFIG_DEPENDS:= \  	CONFIG_PACKAGE_ATH_DEBUG \  	CONFIG_ATH_USER_REGD \ +CARL9170_FW_VERSION:=1.8.8.2 +  include $(INCLUDE_DIR)/package.mk  WMENU:=Wireless Drivers @@ -94,6 +96,7 @@ endef  P54PCIFW:=2.13.12.0.arm  P54USBFW:=2.13.24.0.lm87.arm  P54SPIFW:=2.13.0.0.a.13.14.arm +CARL9170_FW:=carl9170-1.fw  define Download/p54usb    FILE:=$(P54USBFW) @@ -116,6 +119,13 @@ define Download/p54spi  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 +endef +$(eval $(call Download,carl9170)) +  define KernelPackage/p54/Default    $(call KernelPackage/mac80211/Default)    TITLE:=Prism54 Drivers @@ -447,6 +457,20 @@ define KernelPackage/ath9k/config  	endmenu  endef +define KernelPackage/carl9170 +  $(call KernelPackage/mac80211/Default) +  TITLE:=Driver for Atheros AR9170 USB sticks +  DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko +  AUTOLOAD:=$(call AutoLoad,60,carl9170) +endef + +define KernelPackage/carl9170/install +	$(INSTALL_DIR) $(1)/lib/firmware +	$(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW) $(1)/lib/firmware/ +endef + +  USB8388FW_NAME:=usb8388  USB8388FW_VERSION:=5.110.22.p23 @@ -496,19 +520,6 @@ define KernelPackage/libertas-sd    AUTOLOAD:=$(call AutoLoad,27,libertas libertas_sdio)  endef -define KernelPackage/ar9170 -  $(call KernelPackage/mac80211/Default) -  TITLE:=Atheros AR9170 802.11n USB support -  URL:=http://wireless.kernel.org/en/users/Drivers/ar9170 -  DEPENDS+= @USB_SUPPORT @!LINUX_2_6_25 +kmod-ath +kmod-usb-core -  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ar9170/ar9170usb.ko -  AUTOLOAD:=$(call AutoLoad,27,ar9170usb) -endef - -define KernelPackage/ar9170/description - This is a driver for the Atheros "otus" 802.11n USB devices. -endef -  define KernelPackage/mac80211-hwsim    $(call KernelPackage/mac80211/Default)    TITLE:=mac80211 HW simulation device @@ -821,7 +832,7 @@ BUILDFLAGS:= \  	$(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \  	$(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \  	-DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \ -	$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS) \ +	$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS) \  	$(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \  	-D__CONFIG_MAC80211_RC_DEFAULT=minstrel \  	-DCONFIG_MAC80211_RC_MINSTREL_HT \ @@ -866,6 +877,8 @@ MAKE_OPTS:= \  	CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \  	CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \  	CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \ +	CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \ +	CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \  	CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \  	CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \  	CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \ @@ -911,6 +924,7 @@ MAKE_OPTS:= \  	CONFIG_LIB80211_CRYPT_CCMP= \  	CONFIG_LIB80211_CRYPT_TKIP= \  	CONFIG_IWLWIFI= \ +	CONFIG_COMPAT_IWLWIFI= \  	CONFIG_IWLAGN= \  	CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \  	CONFIG_ATMEL= \ @@ -1121,7 +1135,7 @@ $(eval $(call KernelPackage,zd1211rw))  $(eval $(call KernelPackage,mac80211-hwsim))  $(eval $(call KernelPackage,ath9k))  $(eval $(call KernelPackage,ath)) -$(eval $(call KernelPackage,ar9170)) +$(eval $(call KernelPackage,carl9170))  $(eval $(call KernelPackage,b43))  $(eval $(call KernelPackage,b43legacy))  $(eval $(call KernelPackage,net-libipw)) diff --git a/package/mac80211/patches/000-compile_fix.patch b/package/mac80211/patches/000-compile_fix.patch deleted file mode 100644 index 97ad8d948..000000000 --- a/package/mac80211/patches/000-compile_fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/config.mk -+++ b/config.mk -@@ -502,7 +502,7 @@ CONFIG_ATH6KL_ENABLE_TARGET_DEBUG_PRINTS - # CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK is not set - CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y - CONFIG_ATH6K_LEGACY=m --endif -+endif #CONFIG_COMPAT_KERNEL_32 - endif -  -  diff --git a/package/mac80211/patches/001-disable_b44.patch b/package/mac80211/patches/001-disable_b44.patch index ad9c1ee43..301148cfb 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 -@@ -292,8 +292,8 @@ endif +@@ -297,8 +297,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 20257972b..979435f55 100644 --- a/package/mac80211/patches/002-disable_rfkill.patch +++ b/package/mac80211/patches/002-disable_rfkill.patch @@ -1,6 +1,6 @@  --- a/config.mk  +++ b/config.mk -@@ -72,7 +72,7 @@ endif # build check +@@ -74,7 +74,7 @@ endif # build check   endif # kernel Makefile check   # These both are needed by compat-wireless || compat-bluetooth so enable them @@ -9,7 +9,7 @@   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") -@@ -557,8 +557,8 @@ endif #CONFIG_COMPAT_KERNEL_27 +@@ -572,8 +572,8 @@ 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 diff --git a/package/mac80211/patches/003-disable_bt.patch b/package/mac80211/patches/003-disable_bt.patch index 59d2197e9..50b9e98c0 100644 --- a/package/mac80211/patches/003-disable_bt.patch +++ b/package/mac80211/patches/003-disable_bt.patch @@ -1,6 +1,6 @@  --- a/config.mk  +++ b/config.mk -@@ -94,8 +94,8 @@ ifndef CONFIG_COMPAT_KERNEL_27 +@@ -96,8 +96,8 @@ ifndef CONFIG_COMPAT_KERNEL_27   ifeq ($(CONFIG_BT),y)   # we'll ignore compiling bluetooth   else diff --git a/package/mac80211/patches/005-disable_ssb_build.patch b/package/mac80211/patches/005-disable_ssb_build.patch index e62d48f95..301aa9525 100644 --- a/package/mac80211/patches/005-disable_ssb_build.patch +++ b/package/mac80211/patches/005-disable_ssb_build.patch @@ -19,11 +19,11 @@   else   include $(KLIB_BUILD)/.config   endif -@@ -275,21 +274,6 @@ CONFIG_IPW2200_QOS=y - # - # % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface +@@ -280,21 +279,6 @@ endif #CONFIG_WEXT_PRIV + endif #CONFIG_WEXT_SPY + endif #CONFIG_WIRELESS_EXT --ifneq ($(CONFIG_SSB),) +-ifdef CONFIG_SSB  -# Sonics Silicon Backplane  -CONFIG_SSB_SPROM=y  -# CONFIG_SSB_DEBUG=y @@ -31,21 +31,21 @@  -CONFIG_SSB_BLOCKIO=y  -CONFIG_SSB_PCIHOST=y  -CONFIG_SSB_B43_PCI_BRIDGE=y --ifneq ($(CONFIG_PCMCIA),) +-ifdef CONFIG_PCMCIA  -CONFIG_SSB_PCMCIAHOST=y --endif +-endif #CONFIG_PCMCIA  -# CONFIG_SSB_DEBUG=y  -CONFIG_SSB_DRIVER_PCICORE=y --endif +-endif #CONFIG_SSB  -   CONFIG_P54_PCI=m   # CONFIG_B44=m -@@ -463,7 +447,6 @@ endif # end of SPI driver list +@@ -474,7 +458,6 @@ endif #CONFIG_SPI_MASTER end of SPI driv - ifneq ($(CONFIG_MMC),) + ifdef CONFIG_MMC  -CONFIG_SSB_SDIOHOST=y   CONFIG_B43_SDIO=y - ifneq ($(CONFIG_CRC7),) + ifdef CONFIG_CRC7 diff --git a/package/mac80211/patches/007-remove_misc_drivers.patch b/package/mac80211/patches/007-remove_misc_drivers.patch index 89757b064..6f7693fa3 100644 --- a/package/mac80211/patches/007-remove_misc_drivers.patch +++ b/package/mac80211/patches/007-remove_misc_drivers.patch @@ -1,15 +1,15 @@  --- a/config.mk  +++ b/config.mk -@@ -196,7 +196,7 @@ ifneq ($(CONFIG_WIRELESS_EXT),) - endif +@@ -196,7 +196,7 @@ $(warning "WARNING: CONFIG_CFG80211_WEXT + endif #CONFIG_WIRELESS_EXT   ifneq ($(CONFIG_STAGING),) --CONFIG_COMPAT_STAGING=m +- CONFIG_COMPAT_STAGING=m  +# CONFIG_COMPAT_STAGING=m   endif   # mac80211 test driver -@@ -306,13 +306,13 @@ endif +@@ -311,13 +311,13 @@ endif #CONFIG_CRC_ITU_T   CONFIG_MWL8K=m   # Ethernet drivers go here @@ -27,8 +27,8 @@  +# CONFIG_ATL1C=m   endif #CONFIG_COMPAT_KERNEL_27 - CONFIG_HERMES=m -@@ -361,17 +361,17 @@ CONFIG_ZD1211RW=m + ifdef CONFIG_WIRELESS_EXT +@@ -372,17 +372,17 @@ 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 @@ -54,26 +54,3 @@   endif #CONFIG_COMPAT_KERNEL_29 -@@ -474,17 +474,17 @@ CONFIG_BT_MRVL_SDIO=m -  - ifneq ($(CONFIG_COMPAT_STAGING),) - ifdef CONFIG_COMPAT_KERNEL_32 --CONFIG_ATH6KL_CFG80211=y --CONFIG_ATH6KL_DEBUG=y -+# CONFIG_ATH6KL_CFG80211=y -+# CONFIG_ATH6KL_DEBUG=y - # CONFIG_ATH6KL_DISABLE_TARGET_DBGLOGS is not set - # CONFIG_ATH6KL_ENABLE_COEXISTENCE is not set - # CONFIG_ATH6KL_ENABLE_HOST_DEBUG is not set --CONFIG_ATH6KL_ENABLE_TARGET_DEBUG_PRINTS=y -+# CONFIG_ATH6KL_ENABLE_TARGET_DEBUG_PRINTS=y - # CONFIG_ATH6KL_HCI_BRIDGE is not set - # CONFIG_ATH6KL_HTC_RAW_INTERFACE is not set - # CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK is not set --CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y --CONFIG_ATH6K_LEGACY=m -+# CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y -+# CONFIG_ATH6K_LEGACY=m - endif #CONFIG_COMPAT_KERNEL_32 - endif -  diff --git a/package/mac80211/patches/008-led_default.patch b/package/mac80211/patches/008-led_default.patch index a392e500e..5f6eec036 100644 --- a/package/mac80211/patches/008-led_default.patch +++ b/package/mac80211/patches/008-led_default.patch @@ -1,7 +1,7 @@  --- a/config.mk  +++ b/config.mk -@@ -115,7 +115,7 @@ CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstr - # CONFIG_MAC80211_RC_PID=y +@@ -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 @@ -9,16 +9,16 @@   # enable mesh networking too   CONFIG_MAC80211_MESH=y -@@ -218,7 +218,7 @@ CONFIG_B43_PCI_AUTOSELECT=y - ifneq ($(CONFIG_PCMCIA),) - # CONFIG_B43_PCMCIA=y - endif +@@ -233,7 +233,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_NPHY is not set + CONFIG_B43_NPHY=y   # CONFIG_B43_FORCE_PIO=y -@@ -227,7 +227,7 @@ CONFIG_B43_PHY_LP=y +@@ -242,7 +242,7 @@ CONFIG_B43_NPHY=y   CONFIG_B43LEGACY=m   CONFIG_B43LEGACY_HWRNG=y   CONFIG_B43LEGACY_PCI_AUTOSELECT=y @@ -27,7 +27,7 @@   # CONFIG_B43LEGACY_DEBUG=y   CONFIG_B43LEGACY_DMA=y   CONFIG_B43LEGACY_PIO=y -@@ -499,7 +499,7 @@ endif +@@ -529,7 +529,7 @@ endif   # p54   CONFIG_P54_COMMON=m @@ -81,7 +81,7 @@   void ath_deinit_leds(struct ath_softc *sc)  --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c  +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c -@@ -872,6 +872,7 @@ static void ath9k_led_brightness_work(st +@@ -871,6 +871,7 @@ static void ath9k_led_brightness_work(st   	}   } @@ -89,7 +89,7 @@   static void ath9k_led_brightness(struct led_classdev *led_cdev,   				 enum led_brightness brightness)   { -@@ -883,6 +884,7 @@ static void ath9k_led_brightness(struct  +@@ -882,6 +883,7 @@ static void ath9k_led_brightness(struct    		ieee80211_queue_delayed_work(priv->hw,   					     &led->brightness_work, 0);   } @@ -97,7 +97,7 @@   static void ath9k_led_stop_brightness(struct ath9k_htc_priv *priv)   { -@@ -895,6 +897,7 @@ static void ath9k_led_stop_brightness(st +@@ -894,6 +896,7 @@ static void ath9k_led_stop_brightness(st   static int ath9k_register_led(struct ath9k_htc_priv *priv, struct ath_led *led,   			      char *trigger)   { @@ -105,7 +105,7 @@   	int ret;   	led->priv = priv; -@@ -912,14 +915,19 @@ static int ath9k_register_led(struct ath +@@ -911,14 +914,19 @@ static int ath9k_register_led(struct ath   	INIT_DELAYED_WORK(&led->brightness_work, ath9k_led_brightness_work);   	return ret; diff --git a/package/mac80211/patches/009-remove_mac80211_module_dependence.patch b/package/mac80211/patches/009-remove_mac80211_module_dependence.patch index d0998b120..6c421b022 100644 --- a/package/mac80211/patches/009-remove_mac80211_module_dependence.patch +++ b/package/mac80211/patches/009-remove_mac80211_module_dependence.patch @@ -1,6 +1,6 @@  --- a/config.mk  +++ b/config.mk -@@ -42,21 +42,6 @@ $(error "ERROR: Your 2.6.27 kernel has C +@@ -42,23 +42,6 @@ $(error "ERROR: Your 2.6.27 kernel has C   endif   endif @@ -13,9 +13,11 @@  -#  -# skb->requeue  -# --ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 && echo yes),yes) +-# In kernel 2.6.32 both attributes were removed. +-# +-ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 -a $(KERNEL_SUBLEVEL) -le 31 && echo yes),yes)  -ifeq ($(CONFIG_MAC80211),) --$(error "ERROR: Your >=2.6.27 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.") +-$(error "ERROR: Your >=2.6.27 and <= 2.6.31 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.")  -endif  -endif  - diff --git a/package/mac80211/patches/010-no_pcmcia.patch b/package/mac80211/patches/010-no_pcmcia.patch index 25d14c178..33f152eb6 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 -@@ -216,7 +216,7 @@ CONFIG_B43=m +@@ -214,7 +214,7 @@ CONFIG_B43=m   CONFIG_B43_HWRNG=y   CONFIG_B43_PCI_AUTOSELECT=y - ifneq ($(CONFIG_PCMCIA),) + ifdef CONFIG_PCMCIA  -CONFIG_B43_PCMCIA=y  +# CONFIG_B43_PCMCIA=y - endif - CONFIG_B43_LEDS=y + endif #CONFIG_PCMCIA + # CONFIG_B43_LEDS=y   CONFIG_B43_PHY_LP=y diff --git a/package/mac80211/patches/011-no_sdio.patch b/package/mac80211/patches/011-no_sdio.patch index cd39dd4c6..42792fb57 100644 --- a/package/mac80211/patches/011-no_sdio.patch +++ b/package/mac80211/patches/011-no_sdio.patch @@ -1,11 +1,11 @@  --- a/config.mk  +++ b/config.mk -@@ -432,7 +432,7 @@ endif # end of SPI driver list +@@ -441,7 +441,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv - ifneq ($(CONFIG_MMC),) + ifdef CONFIG_MMC  -CONFIG_B43_SDIO=y  +# CONFIG_B43_SDIO=y - ifneq ($(CONFIG_CRC7),) + ifdef CONFIG_CRC7   CONFIG_WL1251_SDIO=m diff --git a/package/mac80211/patches/013-disable_b43_nphy.patch b/package/mac80211/patches/013-disable_b43_nphy.patch index 80c0fa915..2fa9354ce 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 -@@ -220,7 +220,7 @@ ifneq ($(CONFIG_PCMCIA),) - endif - CONFIG_B43_LEDS=y +@@ -218,7 +218,7 @@ ifdef CONFIG_PCMCIA + endif #CONFIG_PCMCIA + # CONFIG_B43_LEDS=y   CONFIG_B43_PHY_LP=y  -CONFIG_B43_NPHY=y  +# CONFIG_B43_NPHY is not set diff --git a/package/mac80211/patches/015-remove-rt2x00-options.patch b/package/mac80211/patches/015-remove-rt2x00-options.patch index 9cc04d0ad..31b4a653f 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 -@@ -268,12 +268,12 @@ CONFIG_RTL8180=m +@@ -271,12 +271,12 @@ CONFIG_RTL8180=m   CONFIG_ADM8211=m @@ -8,19 +8,19 @@  +# CONFIG_RT2X00_LIB_PCI=m   CONFIG_RT2400PCI=m   CONFIG_RT2500PCI=m - ifneq ($(CONFIG_CRC_CCITT),) + ifdef CONFIG_CRC_CCITT   CONFIG_RT2800PCI=m  -CONFIG_RT2800PCI_PCI=y  +# CONFIG_RT2800PCI_PCI=y   # CONFIG_RT2800PCI_RT30XX=y   # CONFIG_RT2800PCI_RT35XX=y   # CONFIG_RT2800PCI_SOC=y -@@ -382,7 +382,7 @@ CONFIG_RT2800USB_RT30XX=y +@@ -391,7 +391,7 @@ CONFIG_RT2800USB_RT30XX=y   CONFIG_RT2800USB_RT35XX=y   CONFIG_RT2800USB_UNKNOWN=y - endif + endif #CONFIG_CRC_CCITT  -CONFIG_RT2X00_LIB_USB=m  +# CONFIG_RT2X00_LIB_USB=m   NEED_RT2X00=y   # RT73USB requires firmware - ifneq ($(CONFIG_CRC_ITU_T),) + ifdef CONFIG_CRC_ITU_T diff --git a/package/mac80211/patches/016-remove_pid_algo.patch b/package/mac80211/patches/016-remove_pid_algo.patch index 33b19cc67..02527b6a8 100644 --- a/package/mac80211/patches/016-remove_pid_algo.patch +++ b/package/mac80211/patches/016-remove_pid_algo.patch @@ -8,4 +8,4 @@  +# CONFIG_MAC80211_RC_PID=y   CONFIG_MAC80211_RC_MINSTREL=y   CONFIG_MAC80211_RC_MINSTREL_HT=y - CONFIG_MAC80211_LEDS=y + # CONFIG_MAC80211_LEDS=y diff --git a/package/mac80211/patches/017-carl9170_addr_backport.patch b/package/mac80211/patches/017-carl9170_addr_backport.patch new file mode 100644 index 000000000..0d3774b5c --- /dev/null +++ b/package/mac80211/patches/017-carl9170_addr_backport.patch @@ -0,0 +1,38 @@ +--- a/drivers/net/wireless/ath/carl9170/main.c ++++ b/drivers/net/wireless/ath/carl9170/main.c +@@ -811,16 +811,34 @@ out: + } +  + static u64 carl9170_op_prepare_multicast(struct ieee80211_hw *hw, +-					 struct netdev_hw_addr_list *mc_list) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) ++				   struct netdev_hw_addr_list *mc_list) ++#else ++				   int mc_count, struct dev_addr_list *ha) ++#endif + { ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + 	struct netdev_hw_addr *ha; ++#else ++	int i; ++#endif + 	u64 mchash; +  + 	/* always get broadcast frames */ + 	mchash = 1ULL << (0xff >> 2); +  ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + 	netdev_hw_addr_list_for_each(ha, mc_list) + 		mchash |= 1ULL << (ha->addr[5] >> 2); ++#else ++	for (i = 0; i < mc_count; i++) { ++		if (!ha) ++			break; ++ ++		mchash |= 1ULL << (ha->dmi_addr[5] >> 2); ++		ha = ha->next; ++	} ++#endif +  + 	return mchash; + } diff --git a/package/mac80211/patches/018-list_for_each_continue_backport.patch b/package/mac80211/patches/018-list_for_each_continue_backport.patch new file mode 100644 index 000000000..08f8eed02 --- /dev/null +++ b/package/mac80211/patches/018-list_for_each_continue_backport.patch @@ -0,0 +1,15 @@ +--- a/include/linux/compat-2.6.33.h ++++ b/include/linux/compat-2.6.33.h +@@ -98,6 +98,12 @@ int pccard_loop_tuple(struct pcmcia_sock + #define kfifo_out(a, b, c) __kfifo_get(*a, b, c) + #define kfifo_len(a) __kfifo_len(*a) +  ++#define list_for_each_entry_continue_rcu(pos, head, member) 		\ ++	for (pos = list_entry_rcu(pos->member.next, typeof(*pos), member); \ ++	     prefetch(pos->member.next), &pos->member != (head);	\ ++	     pos = list_entry_rcu(pos->member.next, typeof(*pos), member)) ++ ++ + #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) */ +  + #endif /* LINUX_26_33_COMPAT_H */ diff --git a/package/mac80211/patches/020-wext-fix.patch b/package/mac80211/patches/020-wext-fix.patch deleted file mode 100644 index 9cbbb4377..000000000 --- a/package/mac80211/patches/020-wext-fix.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/scripts/gen-compat-autoconf.sh -+++ b/scripts/gen-compat-autoconf.sh -@@ -191,10 +191,8 @@ if [ -f $KLIB_BUILD/Makefile ]; then - 		echo CONFIG_NETDEVICES_MULTIQUEUE >> $MULT_DEP_FILE - 		define_config_multiple_deps CONFIG_MAC80211_QOS y $ALL_DEPS - 		rm -f $MULT_DEP_FILE --		# Kernels >= 2.6.32 can disable WEXT :D --		if [ $SUBLEVEL -le 32 ]; then --			define_config_dep CONFIG_CFG80211_WEXT 1 CONFIG_WIRELESS_EXT --		fi -+		# Up to kernel 2.6.35 we still need the following: -+		define_config_dep CONFIG_CFG80211_WEXT 1 CONFIG_WIRELESS_EXT - 	fi - fi - echo "#endif /* COMPAT_AUTOCONF_INCLUDED */" diff --git a/package/mac80211/patches/130-printk_debug_revert.patch b/package/mac80211/patches/130-printk_debug_revert.patch index 5483573b2..a1ceb6689 100644 --- a/package/mac80211/patches/130-printk_debug_revert.patch +++ b/package/mac80211/patches/130-printk_debug_revert.patch @@ -14,7 +14,7 @@   #define wiphy_dbg(wiphy, format, args...)			\  --- a/net/wireless/core.c  +++ b/net/wireless/core.c -@@ -929,52 +929,3 @@ static void __exit cfg80211_exit(void) +@@ -936,52 +936,3 @@ static void __exit cfg80211_exit(void)   	destroy_workqueue(cfg80211_wq);   }   module_exit(cfg80211_exit); diff --git a/package/mac80211/patches/401-ath9k-dont-register-leds-on-ar9100.patch b/package/mac80211/patches/401-ath9k-dont-register-leds-on-ar9100.patch index 166c133a6..330503d23 100644 --- a/package/mac80211/patches/401-ath9k-dont-register-leds-on-ar9100.patch +++ b/package/mac80211/patches/401-ath9k-dont-register-leds-on-ar9100.patch @@ -1,6 +1,6 @@  --- a/drivers/net/wireless/ath/ath9k/gpio.c  +++ b/drivers/net/wireless/ath/ath9k/gpio.c -@@ -120,6 +120,9 @@ static void ath_unregister_led(struct at +@@ -128,6 +128,9 @@ static void ath_unregister_led(struct at   void ath_deinit_leds(struct ath_softc *sc)   { @@ -10,7 +10,7 @@   	ath_unregister_led(&sc->assoc_led);   	sc->sc_flags &= ~SC_OP_LED_ASSOCIATED;   	ath_unregister_led(&sc->tx_led); -@@ -133,6 +136,9 @@ void ath_init_leds(struct ath_softc *sc) +@@ -141,6 +144,9 @@ void ath_init_leds(struct ath_softc *sc)   	char *trigger;   	int ret; diff --git a/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch b/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch index 77d1c7b6e..5048194cb 100644 --- a/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch +++ b/package/mac80211/patches/406-ath9k-set-AH_USE_EEPROM-only-if-no-platform-data-present.patch @@ -10,7 +10,7 @@  --- a/drivers/net/wireless/ath/ath9k/init.c  +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -538,6 +538,7 @@ static int ath9k_init_softc(u16 devid, s +@@ -540,6 +540,7 @@ static int ath9k_init_softc(u16 devid, s   {   	struct ath_hw *ah = NULL;   	struct ath_common *common; @@ -18,7 +18,7 @@   	int ret = 0, i;   	int csz = 0; -@@ -549,6 +550,10 @@ static int ath9k_init_softc(u16 devid, s +@@ -551,6 +552,10 @@ static int ath9k_init_softc(u16 devid, s   	ah->hw_version.subsysid = subsysid;   	sc->sc_ah = ah; diff --git a/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch b/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch index cf3f402c7..64481fcc3 100644 --- a/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch +++ b/package/mac80211/patches/408-ath9k_tweak_rx_intr_mitigation.patch @@ -1,6 +1,6 @@  --- a/drivers/net/wireless/ath/ath9k/hw.c  +++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -1425,7 +1425,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st +@@ -1427,7 +1427,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st   	if (ah->config.rx_intr_mitigation) {   		REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500); diff --git a/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch b/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch index bc336fabd..5659ab85b 100644 --- a/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch +++ b/package/mac80211/patches/409-ath9k-add-wndr3700-antenna-initialization.patch @@ -8,7 +8,7 @@   #include "ath9k.h"   static char *dev_info = "ath9k"; -@@ -553,6 +554,8 @@ static int ath9k_init_softc(u16 devid, s +@@ -555,6 +556,8 @@ static int ath9k_init_softc(u16 devid, s   	pdata = (struct ath9k_platform_data *) sc->dev->platform_data;   	if (!pdata)   		ah->ah_flags |= AH_USE_EEPROM; @@ -17,7 +17,7 @@   	common = ath9k_hw_common(ah);   	common->ops = &ath9k_common_ops; -@@ -675,6 +678,24 @@ void ath9k_set_hw_capab(struct ath_softc +@@ -677,6 +680,24 @@ void ath9k_set_hw_capab(struct ath_softc   	SET_IEEE80211_PERM_ADDR(hw, common->macaddr);   } @@ -42,7 +42,7 @@   int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid,   		    const struct ath_bus_ops *bus_ops)   { -@@ -693,6 +714,9 @@ int ath9k_init_device(u16 devid, struct  +@@ -695,6 +716,9 @@ int ath9k_init_device(u16 devid, struct    	common = ath9k_hw_common(ah);   	ath9k_set_hw_capab(sc, hw); @@ -54,7 +54,7 @@   			      ath9k_reg_notifier);  --- a/drivers/net/wireless/ath/ath9k/ath9k.h  +++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -589,6 +589,8 @@ struct ath_softc { +@@ -643,6 +643,8 @@ struct ath_softc {   	int beacon_interval; diff --git a/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch b/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch index d69fd8f76..f98056f0d 100644 --- a/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch +++ b/package/mac80211/patches/410-ath9k-wndr3700-led-pin-fix.patch @@ -1,6 +1,6 @@  --- a/drivers/net/wireless/ath/ath9k/gpio.c  +++ b/drivers/net/wireless/ath/ath9k/gpio.c -@@ -139,7 +139,9 @@ void ath_init_leds(struct ath_softc *sc) +@@ -147,7 +147,9 @@ void ath_init_leds(struct ath_softc *sc)   	if (AR_SREV_9100(sc->sc_ah))   		return; diff --git a/package/mac80211/patches/500-ath9k_use_minstrel.patch b/package/mac80211/patches/500-ath9k_use_minstrel.patch index 9cb129309..61e01c1bc 100644 --- a/package/mac80211/patches/500-ath9k_use_minstrel.patch +++ b/package/mac80211/patches/500-ath9k_use_minstrel.patch @@ -1,6 +1,6 @@  --- a/drivers/net/wireless/ath/ath9k/init.c  +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -659,7 +659,11 @@ void ath9k_set_hw_capab(struct ath_softc +@@ -661,7 +661,11 @@ void ath9k_set_hw_capab(struct ath_softc   	hw->sta_data_size = sizeof(struct ath_node);   	hw->vif_data_size = sizeof(struct ath_vif); diff --git a/package/mac80211/patches/520-ath9k_baw_fix.patch b/package/mac80211/patches/510-ath9k_baw_fix.patch index 50e4b99e4..50e4b99e4 100644 --- a/package/mac80211/patches/520-ath9k_baw_fix.patch +++ b/package/mac80211/patches/510-ath9k_baw_fix.patch diff --git a/package/mac80211/patches/510-ath9k_handle_keymiss.patch b/package/mac80211/patches/510-ath9k_handle_keymiss.patch deleted file mode 100644 index c63ad3fcf..000000000 --- a/package/mac80211/patches/510-ath9k_handle_keymiss.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/mac.c -+++ b/drivers/net/wireless/ath/ath9k/mac.c -@@ -714,6 +714,8 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a - 		else if ((ads.ds_rxstatus8 & AR_MichaelErr) && - 		         rs->rs_keyix != ATH9K_RXKEYIX_INVALID) - 			rs->rs_status |= ATH9K_RXERR_MIC; -+		else if (ads.ds_rxstatus8 & AR_KeyMiss) -+			rs->rs_status |= ATH9K_RXERR_DECRYPT; - 	} -  - 	return 0; ---- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c -+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c -@@ -616,7 +616,8 @@ int ath9k_hw_process_rxdesc_edma(struct  - 			rxs->rs_status |= ATH9K_RXERR_DECRYPT; - 		} else if (rxsp->status11 & AR_MichaelErr) { - 			rxs->rs_status |= ATH9K_RXERR_MIC; --		} -+		} else if (rxsp->status11 & AR_KeyMiss) -+			rxs->rs_status |= ATH9K_RXERR_DECRYPT; - 	} -  - 	return 0; diff --git a/package/mac80211/patches/530-ath9k_aggr_start_fix.patch b/package/mac80211/patches/520-ath9k_aggr_start_fix.patch index 1dcac53e4..1dcac53e4 100644 --- a/package/mac80211/patches/530-ath9k_aggr_start_fix.patch +++ b/package/mac80211/patches/520-ath9k_aggr_start_fix.patch diff --git a/package/mac80211/patches/540-ath9k_eeprom_debugfs.patch b/package/mac80211/patches/530-ath9k_eeprom_debugfs.patch index 62a5d3167..62a5d3167 100644 --- a/package/mac80211/patches/540-ath9k_eeprom_debugfs.patch +++ b/package/mac80211/patches/530-ath9k_eeprom_debugfs.patch diff --git a/package/mac80211/patches/550-ath9k_bssid_mask_fix.patch b/package/mac80211/patches/550-ath9k_bssid_mask_fix.patch deleted file mode 100644 index f44887043..000000000 --- a/package/mac80211/patches/550-ath9k_bssid_mask_fix.patch +++ /dev/null @@ -1,117 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/virtual.c -+++ b/drivers/net/wireless/ath/ath9k/virtual.c -@@ -19,45 +19,36 @@ - #include "ath9k.h" -  - struct ath9k_vif_iter_data { --	int count; --	u8 *addr; -+	const u8 *hw_macaddr; -+	u8 mask[ETH_ALEN]; - }; -  - static void ath9k_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif) - { - 	struct ath9k_vif_iter_data *iter_data = data; --	u8 *nbuf; -- --	nbuf = krealloc(iter_data->addr, (iter_data->count + 1) * ETH_ALEN, --			GFP_ATOMIC); --	if (nbuf == NULL) --		return; -+	int i; -  --	memcpy(nbuf + iter_data->count * ETH_ALEN, mac, ETH_ALEN); --	iter_data->addr = nbuf; --	iter_data->count++; -+	for (i = 0; i < ETH_ALEN; i++) -+		iter_data->mask[i] &= ~(iter_data->hw_macaddr[i] ^ mac[i]); - } -  --void ath9k_set_bssid_mask(struct ieee80211_hw *hw) -+void ath9k_set_bssid_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif) - { - 	struct ath_wiphy *aphy = hw->priv; - 	struct ath_softc *sc = aphy->sc; - 	struct ath_common *common = ath9k_hw_common(sc->sc_ah); - 	struct ath9k_vif_iter_data iter_data; --	int i, j; --	u8 mask[ETH_ALEN]; -+	int i; -  - 	/* --	 * Add primary MAC address even if it is not in active use since it --	 * will be configured to the hardware as the starting point and the --	 * BSSID mask will need to be changed if another address is active. -+	 * Use the hardware MAC address as reference, the hardware uses it -+	 * together with the BSSID mask when matching addresses. - 	 */ --	iter_data.addr = kmalloc(ETH_ALEN, GFP_ATOMIC); --	if (iter_data.addr) { --		memcpy(iter_data.addr, common->macaddr, ETH_ALEN); --		iter_data.count = 1; --	} else --		iter_data.count = 0; -+	iter_data.hw_macaddr = common->macaddr; -+	memset(&iter_data.mask, 0xff, ETH_ALEN); -+ -+	if (vif) -+		ath9k_vif_iter(&iter_data, vif->addr, vif); -  - 	/* Get list of all active MAC addresses */ - 	spin_lock_bh(&sc->wiphy_lock); -@@ -71,31 +62,7 @@ void ath9k_set_bssid_mask(struct ieee802 - 	} - 	spin_unlock_bh(&sc->wiphy_lock); -  --	/* Generate an address mask to cover all active addresses */ --	memset(mask, 0, ETH_ALEN); --	for (i = 0; i < iter_data.count; i++) { --		u8 *a1 = iter_data.addr + i * ETH_ALEN; --		for (j = i + 1; j < iter_data.count; j++) { --			u8 *a2 = iter_data.addr + j * ETH_ALEN; --			mask[0] |= a1[0] ^ a2[0]; --			mask[1] |= a1[1] ^ a2[1]; --			mask[2] |= a1[2] ^ a2[2]; --			mask[3] |= a1[3] ^ a2[3]; --			mask[4] |= a1[4] ^ a2[4]; --			mask[5] |= a1[5] ^ a2[5]; --		} --	} -- --	kfree(iter_data.addr); -- --	/* Invert the mask and configure hardware */ --	common->bssidmask[0] = ~mask[0]; --	common->bssidmask[1] = ~mask[1]; --	common->bssidmask[2] = ~mask[2]; --	common->bssidmask[3] = ~mask[3]; --	common->bssidmask[4] = ~mask[4]; --	common->bssidmask[5] = ~mask[5]; -- -+	memcpy(common->bssidmask, iter_data.mask, ETH_ALEN); - 	ath_hw_setbssidmask(common); - } -  ---- a/drivers/net/wireless/ath/ath9k/ath9k.h -+++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -666,7 +666,7 @@ static inline void ath_ahb_exit(void) {} - void ath9k_ps_wakeup(struct ath_softc *sc); - void ath9k_ps_restore(struct ath_softc *sc); -  --void ath9k_set_bssid_mask(struct ieee80211_hw *hw); -+void ath9k_set_bssid_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif); - int ath9k_wiphy_add(struct ath_softc *sc); - int ath9k_wiphy_del(struct ath_wiphy *aphy); - void ath9k_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb); ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -1416,7 +1416,7 @@ static int ath9k_add_interface(struct ie - 	sc->nvifs++; -  - 	if (ah->caps.hw_caps & ATH9K_HW_CAP_BSSIDMASK) --		ath9k_set_bssid_mask(hw); -+		ath9k_set_bssid_mask(hw, vif); -  - 	if (sc->nvifs > 1) - 		goto out; /* skip global settings for secondary vif */ diff --git a/package/mac80211/patches/810-b43_no_pio.patch b/package/mac80211/patches/810-b43_no_pio.patch new file mode 100644 index 000000000..2aa426e37 --- /dev/null +++ b/package/mac80211/patches/810-b43_no_pio.patch @@ -0,0 +1,70 @@ +--- a/drivers/net/wireless/b43/Makefile ++++ b/drivers/net/wireless/b43/Makefile +@@ -12,7 +12,7 @@ b43-y				+= xmit.o + b43-y				+= lo.o + b43-y				+= wa.o + b43-y				+= dma.o +-b43-y				+= pio.o ++# b43-y				+= pio.o + b43-y				+= rfkill.o + b43-$(CONFIG_B43_LEDS)		+= leds.o + b43-$(CONFIG_B43_PCMCIA)	+= pcmcia.o +--- a/drivers/net/wireless/b43/main.c ++++ b/drivers/net/wireless/b43/main.c +@@ -1810,9 +1810,11 @@ static void b43_do_interrupt_thread(stru + 			       dma_reason[4], dma_reason[5]); + 			b43err(dev->wl, "This device does not support DMA " + 			       "on your system. It will now be switched to PIO.\n"); ++#if 0 + 			/* Fall back to PIO transfers if we get fatal DMA errors! */ + 			dev->use_pio = 1; + 			b43_controller_restart(dev, "DMA error"); ++#endif + 			return; + 		} + 		if (merged_dma_reason & B43_DMAIRQ_NONFATALMASK) { +--- a/drivers/net/wireless/b43/pio.h ++++ b/drivers/net/wireless/b43/pio.h +@@ -151,15 +151,34 @@ static inline void b43_piorx_write32(str + } +  +  +-int b43_pio_init(struct b43_wldev *dev); +-void b43_pio_free(struct b43_wldev *dev); ++static inline int b43_pio_init(struct b43_wldev *dev) ++{ ++	return 0; ++} ++ ++static inline void b43_pio_free(struct b43_wldev *dev) ++{ ++} ++ ++static inline int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb) ++{ ++	return 0; ++} +  +-int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb); +-void b43_pio_handle_txstatus(struct b43_wldev *dev, +-			     const struct b43_txstatus *status); +-void b43_pio_rx(struct b43_pio_rxqueue *q); ++static inline void b43_pio_handle_txstatus(struct b43_wldev *dev, ++					   const struct b43_txstatus *status) ++{ ++} ++ ++static inline void b43_pio_rx(struct b43_pio_rxqueue *q) ++{ ++} +  +-void b43_pio_tx_suspend(struct b43_wldev *dev); +-void b43_pio_tx_resume(struct b43_wldev *dev); ++static inline void b43_pio_tx_suspend(struct b43_wldev *dev) ++{ ++} ++static inline void b43_pio_tx_resume(struct b43_wldev *dev) ++{ ++} +  + #endif /* B43_PIO_H_ */ | 
