mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 21:58:04 +00:00
mac80211: upgrade to wireless-testing 2010-09-14, replace the external carl9170 with the recently merged upstream version
SVN-Revision: 23061
This commit is contained in:
parent
9c2cfd7a1b
commit
fc7fbe8349
@ -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))
|
@ -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)
|
@ -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.");
|
||||
|
@ -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");
|
@ -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))
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
-
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
38
package/mac80211/patches/017-carl9170_addr_backport.patch
Normal file
38
package/mac80211/patches/017-carl9170_addr_backport.patch
Normal file
@ -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;
|
||||
}
|
@ -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 */
|
@ -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 */"
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
@ -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 */
|
70
package/mac80211/patches/810-b43_no_pio.patch
Normal file
70
package/mac80211/patches/810-b43_no_pio.patch
Normal file
@ -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_ */
|
Loading…
Reference in New Issue
Block a user