mac80211: add brcmfmac driver

SVN-Revision: 31786
v19.07.3_mercusys_ac12_duma
Hauke Mehrtens 12 years ago
parent e3678eb33e
commit 7dd6e5c7bb

@ -1078,34 +1078,58 @@ define KernelPackage/b43legacy/description
Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
endef endef
define KernelPackage/brcmsmac
define KernelPackage/brcmutil
$(call KernelPackage/mac80211/Default) $(call KernelPackage/mac80211/Default)
TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver TITLE:=Broadcom IEEE802.11n common driver parts
URL:=http://linuxwireless.org/en/users/Drivers/brcm80211 URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko
FILES:= \ AUTOLOAD:=$(call AutoLoad,30,brcmutil)
$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko \
$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko
AUTOLOAD:=$(call AutoLoad,30,brcmutil brcmsmac)
MENU:=1 MENU:=1
endef endef
define KernelPackage/brcmsmac/description define KernelPackage/brcmutil/description
Kernel modules for Broadcom IEEE802.11n PCIe Wireless cards This module contains some common parts needed by Broadcom Wireless drivers brcmsmac and brcmfmac.
endef endef
define KernelPackage/brcmsmac/config define KernelPackage/brcmutil/config
menu "Configuration" menu "Configuration"
depends on PACKAGE_kmod-brcmsmac depends on PACKAGE_kmod-brcmutil
config PACKAGE_BRCM80211_DEBUG config PACKAGE_BRCM80211_DEBUG
bool "brcmsmac wireless debugging" bool "Broadcom wireless driver debugging"
help help
Say Y, if you want to debug brcmsmac wireless driver. Say Y, if you want to debug brcmsmac and brcmfmac wireless driver.
endmenu endmenu
endef endef
define KernelPackage/brcmsmac
$(call KernelPackage/mac80211/Default)
TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 +kmod-brcmutil
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko
AUTOLOAD:=$(call AutoLoad,31,brcmsmac)
endef
define KernelPackage/brcmsmac/description
Kernel module for Broadcom IEEE802.11n PCIe Wireless cards
endef
define KernelPackage/brcmfmac
$(call KernelPackage/mac80211/Default)
TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +@DRIVER_11N_SUPPORT +kmod-brcmutil
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
AUTOLOAD:=$(call AutoLoad,60,brcmfmac)
endef
define KernelPackage/brcmfmac/description
Kernel module for Broadcom IEEE802.11n USB Wireless cards
endef
BUILDFLAGS:= \ BUILDFLAGS:= \
-I$(PKG_BUILD_DIR)/include \ -I$(PKG_BUILD_DIR)/include \
$(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \ $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
@ -1143,7 +1167,8 @@ BUILDFLAGS:= \
$(if $(CONFIG_PACKAGE_kmod-iwl3945),-DCONFIG_IWL3945) \ $(if $(CONFIG_PACKAGE_kmod-iwl3945),-DCONFIG_IWL3945) \
$(if $(CONFIG_PACKAGE_kmod-iwl4965),-DCONFIG_COMPAT_IWL4965) \ $(if $(CONFIG_PACKAGE_kmod-iwl4965),-DCONFIG_COMPAT_IWL4965) \
$(if $(CONFIG_PACKAGE_kmod-wl12xx),-DCONFIG_WL12XX -DCONFIG_COMPAT_WL12XX_SDIO) \ $(if $(CONFIG_PACKAGE_kmod-wl12xx),-DCONFIG_WL12XX -DCONFIG_COMPAT_WL12XX_SDIO) \
$(if $(CONFIG_PACKAGE_BRCM80211_DEBUG),-DCONFIG_BRCMDBG) $(if $(CONFIG_PACKAGE_BRCM80211_DEBUG),-DCONFIG_BRCMDBG) \
$(if $(CONFIG_PACKAGE_kmod-brcmfmac),-DCONFIG_BRCMFMAC_USB)
MAKE_OPTS:= \ MAKE_OPTS:= \
CROSS_COMPILE="$(KERNEL_CROSS)" \ CROSS_COMPILE="$(KERNEL_CROSS)" \
@ -1275,9 +1300,10 @@ MAKE_OPTS:= \
CONFIG_ATL2= \ CONFIG_ATL2= \
CONFIG_ATL1E= \ CONFIG_ATL1E= \
CONFIG_ATL1C= \ CONFIG_ATL1C= \
CONFIG_BRCMFMAC= \ CONFIG_BRCMUTIL=$(if $(CONFIG_PACKAGE_kmod-brcmutil),m) \
CONFIG_BRCMUTIL=$(if $(CONFIG_PACKAGE_kmod-brcmsmac),m) \
CONFIG_BRCMSMAC=$(if $(CONFIG_PACKAGE_kmod-brcmsmac),m) \ CONFIG_BRCMSMAC=$(if $(CONFIG_PACKAGE_kmod-brcmsmac),m) \
CONFIG_BRCMFMAC=$(if $(CONFIG_PACKAGE_kmod-brcmfmac),m) \
CONFIG_BRCMFMAC_USB=$(if $(CONFIG_PACKAGE_kmod-brcmfmac),y) \
CONFIG_BRCMDBG=$(if $(CONFIG_PACKAGE_BRCM80211_DEBUG),y) \ CONFIG_BRCMDBG=$(if $(CONFIG_PACKAGE_BRCM80211_DEBUG),y) \
KLIB_BUILD="$(LINUX_DIR)" \ KLIB_BUILD="$(LINUX_DIR)" \
MODPROBE=true \ MODPROBE=true \
@ -1533,6 +1559,13 @@ define KernelPackage/brcmsmac/install
$(1)/lib/firmware/brcm/ $(1)/lib/firmware/brcm/
endef endef
define KernelPackage/brcmfmac/install
$(INSTALL_DIR) $(1)/lib/firmware/brcm
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43236b.bin \
$(1)/lib/firmware/brcm/
endef
$(eval $(call KernelPackage,ath5k)) $(eval $(call KernelPackage,ath5k))
$(eval $(call KernelPackage,lib80211)) $(eval $(call KernelPackage,lib80211))
$(eval $(call KernelPackage,libertas-usb)) $(eval $(call KernelPackage,libertas-usb))
@ -1566,7 +1599,9 @@ $(eval $(call KernelPackage,ath))
$(eval $(call KernelPackage,carl9170)) $(eval $(call KernelPackage,carl9170))
$(eval $(call KernelPackage,b43)) $(eval $(call KernelPackage,b43))
$(eval $(call KernelPackage,b43legacy)) $(eval $(call KernelPackage,b43legacy))
$(eval $(call KernelPackage,brcmutil))
$(eval $(call KernelPackage,brcmsmac)) $(eval $(call KernelPackage,brcmsmac))
$(eval $(call KernelPackage,brcmfmac))
$(eval $(call KernelPackage,net-libipw)) $(eval $(call KernelPackage,net-libipw))
$(eval $(call KernelPackage,net-ipw2100)) $(eval $(call KernelPackage,net-ipw2100))
$(eval $(call KernelPackage,net-ipw2200)) $(eval $(call KernelPackage,net-ipw2200))

@ -0,0 +1,28 @@
--- a/drivers/net/wireless/brcm80211/brcmfmac/usb.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/usb.c
@@ -28,6 +28,7 @@
#include <linux/uaccess.h>
#include <linux/firmware.h>
#include <linux/usb.h>
+#include <linux/vmalloc.h>
#include <net/cfg80211.h>
#include <defs.h>
@@ -1239,7 +1240,7 @@ static int brcmf_usb_get_fw(struct brcmf
return -EINVAL;
}
- devinfo->image = kmalloc(fw->size, GFP_ATOMIC); /* plus nvram */
+ devinfo->image = vmalloc(fw->size); /* plus nvram */
if (!devinfo->image)
return -ENOMEM;
@@ -1602,7 +1603,7 @@ static struct usb_driver brcmf_usbdrvr =
void brcmf_usb_exit(void)
{
usb_deregister(&brcmf_usbdrvr);
- kfree(g_image.data);
+ vfree(g_image.data);
g_image.data = NULL;
g_image.len = 0;
}
Loading…
Cancel
Save