From: Felix Fietkau Date: Fri, 4 Dec 2015 22:39:37 +0000 (+0000) Subject: mac80211: update to 2015-12-03 X-Git-Tag: reboot~1290 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=70ac77f8696f0684d22199a278aa80585ddcd1bc;p=openwrt%2Fstaging%2Flynxis.git mac80211: update to 2015-12-03 Signed-off-by: Felix Fietkau SVN-Revision: 47771 --- diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index 46d5420c0d..1ec2d44c71 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -10,11 +10,11 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=2015-10-26 +PKG_VERSION:=2015-12-03 PKG_RELEASE:=1 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources PKG_BACKPORT_VERSION:= -PKG_MD5SUM:=3b07569065a18c6a69a340ea50235b7d +PKG_MD5SUM:=7a1dc4dc2f509e5532b935b0a0d15103 PKG_SOURCE:=compat-wireless-$(PKG_VERSION)$(PKG_BACKPORT_VERSION).tar.bz2 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION) @@ -145,7 +145,7 @@ define KernelPackage/adm8211 $(call KernelPackage/mac80211/Default) TITLE:=ADMTek 8211 support DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6 - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/adm8211.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/admtek/adm8211.ko AUTOLOAD:=$(call AutoProbe,adm8211) endef @@ -356,7 +356,7 @@ define KernelPackage/b43 @PCI_SUPPORT +kmod-mac80211 \ $(if $(CONFIG_PACKAGE_B43_USE_SSB),+kmod-ssb) \ $(if $(CONFIG_PACKAGE_B43_USE_BCMA),+kmod-bcma) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/b43/b43.ko AUTOLOAD:=$(call AutoProbe,b43) MENU:=1 endef @@ -596,7 +596,7 @@ define KernelPackage/b43legacy KCONFIG:= \ CONFIG_HW_RANDOM=y DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/b43legacy/b43legacy.ko AUTOLOAD:=$(call AutoProbe,b43legacy) MENU:=1 endef @@ -640,7 +640,7 @@ define KernelPackage/brcmutil TITLE:=Broadcom IEEE802.11n common driver parts URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211 DEPENDS+=@PCI_SUPPORT||USB_SUPPORT - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko AUTOLOAD:=$(call AutoProbe,brcmutil) MENU:=1 endef @@ -679,7 +679,7 @@ define KernelPackage/brcmsmac TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver URL:=https://wireless.wiki.kernel.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 + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko AUTOLOAD:=$(call AutoProbe,brcmsmac) MENU:=1 endef @@ -711,7 +711,7 @@ define KernelPackage/brcmfmac TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211 DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +@DRIVER_11N_SUPPORT +kmod-brcmutil +BRCMFMAC_SDIO:kmod-mmc +BRCMFMAC_USB:kmod-usb-core - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko AUTOLOAD:=$(call AutoProbe,brcmfmac) endef @@ -765,7 +765,7 @@ define KernelPackage/hermes $(call KernelPackage/mac80211/Default) TITLE:=Hermes 802.11b chipset support DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT +kmod-crypto-michael-mic - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco.ko AUTOLOAD:=$(call AutoProbe,orinoco) endef @@ -777,7 +777,7 @@ define KernelPackage/hermes-pci $(call KernelPackage/mac80211/Default) TITLE:=Intersil Prism 2.5 PCI support DEPENDS:=@PCI_SUPPORT +kmod-hermes - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_pci.ko AUTOLOAD:=$(call AutoProbe,orinoco_pci) endef @@ -789,7 +789,7 @@ define KernelPackage/hermes-plx $(call KernelPackage/mac80211/Default) TITLE:=PLX9052 based PCI adaptor DEPENDS:=@PCI_SUPPORT +kmod-hermes - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_plx.ko AUTOLOAD:=$(call AutoProbe,orinoco_plx) endef @@ -801,7 +801,7 @@ define KernelPackage/hermes-pcmcia $(call KernelPackage/mac80211/Default) TITLE:=Hermes based PCMCIA adaptors DEPENDS:=@PCMCIA_SUPPORT +kmod-hermes @BROKEN - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_cs.ko AUTOLOAD:=$(call AutoProbe,orinoco_cs) endef @@ -815,9 +815,9 @@ define KernelPackage/iwlwifi DEPENDS:= +kmod-mac80211 @PCI_SUPPORT +@DRIVER_11N_SUPPORT TITLE:=Intel AGN Wireless support FILES:= \ - $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlwifi.ko \ - $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko \ - $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko + $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/dvm/iwldvm.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/mvm/iwlmvm.ko AUTOLOAD:=$(call AutoProbe,iwlwifi iwldvm iwlmvm) MENU:=1 endef @@ -863,7 +863,7 @@ define KernelPackage/iwlwifi/config % echo 0x43fff > /sys/module/iwlwifi/parameters/debug You can find the list of debug mask values in: - drivers/net/wireless/iwlwifi/iwl-debug.h + drivers/net/wireless/intel/iwlwifi/iwl-debug.h If this is your first time using this driver, you should say Y here as the debug information can assist others in helping you resolve @@ -997,7 +997,7 @@ define KernelPackage/iwl-legacy $(call KernelPackage/mac80211/Default) DEPENDS:= +kmod-mac80211 @PCI_SUPPORT TITLE:=Intel legacy Wireless support - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwlegacy.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwlegacy.ko AUTOLOAD:=$(call AutoProbe,iwlegacy) endef @@ -1009,7 +1009,7 @@ define KernelPackage/iwl3945 $(call KernelPackage/mac80211/Default) DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy TITLE:=Intel iwl3945 Wireless support - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl3945.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwl3945.ko AUTOLOAD:=$(call AutoProbe,iwl3945) endef @@ -1021,7 +1021,7 @@ define KernelPackage/iwl4965 $(call KernelPackage/mac80211/Default) DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy +@DRIVER_11N_SUPPORT TITLE:=Intel iwl4965 Wireless support - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl4965.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwl4965.ko AUTOLOAD:=$(call AutoProbe,iwl4965) endef @@ -1061,7 +1061,7 @@ define KernelPackage/libipw $(call KernelPackage/mac80211/Default) TITLE:=libipw for ipw2100 and ipw2200 DEPENDS:=@PCI_SUPPORT +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT @!BIG_ENDIAN - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/libipw.ko AUTOLOAD:=$(call AutoProbe,libipw) endef @@ -1083,7 +1083,7 @@ define KernelPackage/ipw2100 $(call KernelPackage/mac80211/Default) TITLE:=Intel IPW2100 driver DEPENDS:=@PCI_SUPPORT +kmod-libipw - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/ipw2100.ko AUTOLOAD:=$(call AutoProbe,ipw2100) endef @@ -1107,7 +1107,7 @@ define KernelPackage/ipw2200 $(call KernelPackage/mac80211/Default) TITLE:=Intel IPW2200 driver DEPENDS:=@PCI_SUPPORT +kmod-libipw - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/ipw2200.ko AUTOLOAD:=$(call AutoProbe,ipw2200) endef @@ -1123,8 +1123,8 @@ define KernelPackage/libertas-usb DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT TITLE:=Marvell 88W8015 Wireless Driver FILES:= \ - $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \ - $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko + $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/usb8xxx.ko AUTOLOAD:=$(call AutoProbe,libertas usb8xxx) endef @@ -1133,8 +1133,8 @@ define KernelPackage/libertas-sdio DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT @!TARGET_uml TITLE:=Marvell 88W8686 Wireless Driver FILES:= \ - $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \ - $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko + $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas_sdio.ko AUTOLOAD:=$(call AutoProbe,libertas libertas_sdio) endef @@ -1173,7 +1173,7 @@ define KernelPackage/mwl8k TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwl8k.ko AUTOLOAD:=$(call AutoProbe,mwl8k) endef @@ -1188,8 +1188,8 @@ define KernelPackage/mwifiex-pcie URL:=http://wireless.kernel.org/en/users/Drivers/mwifiex DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT FILES:= \ - $(PKG_BUILD_DIR)/drivers/net/wireless/mwifiex/mwifiex.ko \ - $(PKG_BUILD_DIR)/drivers/net/wireless/mwifiex/mwifiex_pcie.ko + $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex_pcie.ko AUTOLOAD:=$(call AutoProbe,mwifiex_pcie) endef @@ -1237,14 +1237,14 @@ define KernelPackage/p54-common $(call KernelPackage/p54/Default) DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-lib-crc-ccitt TITLE+= (COMMON) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54common.ko endef define KernelPackage/p54-pci $(call KernelPackage/p54/Default) TITLE+= (PCI) DEPENDS+= @PCI_SUPPORT +kmod-p54-common - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54pci.ko AUTOLOAD:=$(call AutoProbe,p54pci) endef @@ -1252,7 +1252,7 @@ define KernelPackage/p54-usb $(call KernelPackage/p54/Default) TITLE+= (USB) DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54usb.ko AUTOLOAD:=$(call AutoProbe,p54usb) endef @@ -1260,7 +1260,7 @@ define KernelPackage/p54-spi $(call KernelPackage/p54/Default) TITLE+= (SPI) DEPENDS+= @TARGET_omap24xx +kmod-p54-common - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54spi.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54spi.ko AUTOLOAD:=$(call AutoProbe,p54spi) endef @@ -1273,7 +1273,7 @@ define KernelPackage/rt2x00-lib $(call KernelPackage/rt2x00/Default) DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-lib-crc-itu-t TITLE+= (LIB) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00lib.ko MENU:=1 endef @@ -1301,7 +1301,7 @@ $(call KernelPackage/rt2x00/Default) DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6 HIDDEN:=1 TITLE+= (MMIO) - FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00mmio.ko + FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.ko endef define KernelPackage/rt2x00-pci @@ -1309,7 +1309,7 @@ $(call KernelPackage/rt2x00/Default) DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-mmio +kmod-rt2x00-lib HIDDEN:=1 TITLE+= (PCI) - FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.ko + FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00pci.ko AUTOLOAD:=$(call AutoProbe,rt2x00pci) endef @@ -1318,7 +1318,7 @@ $(call KernelPackage/rt2x00/Default) DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core HIDDEN:=1 TITLE+= (USB) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00usb.ko AUTOLOAD:=$(call AutoProbe,rt2x00usb) endef @@ -1327,14 +1327,14 @@ $(call KernelPackage/rt2x00/Default) DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-lib-crc-ccitt +@DRIVER_11N_SUPPORT HIDDEN:=1 TITLE+= (rt2800 LIB) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800lib.ko endef define KernelPackage/rt2400-pci $(call KernelPackage/rt2x00/Default) DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci TITLE+= (RT2400 PCI) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2400pci.ko AUTOLOAD:=$(call AutoProbe,rt2400pci) endef @@ -1342,7 +1342,7 @@ define KernelPackage/rt2500-pci $(call KernelPackage/rt2x00/Default) DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci TITLE+= (RT2500 PCI) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2500pci.ko AUTOLOAD:=$(call AutoProbe,rt2500pci) endef @@ -1350,7 +1350,7 @@ define KernelPackage/rt2500-usb $(call KernelPackage/rt2x00/Default) DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb TITLE+= (RT2500 USB) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2500usb.ko AUTOLOAD:=$(call AutoProbe,rt2500usb) endef @@ -1359,7 +1359,7 @@ $(call KernelPackage/rt2x00/Default) TITLE += (RT28xx/RT3xxx MMIO) DEPENDS += +kmod-rt2800-lib +kmod-rt2x00-mmio HIDDEN:=1 - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800mmio.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800mmio.ko endef define KernelPackage/rt2800-soc @@ -1367,8 +1367,8 @@ $(call KernelPackage/rt2x00/Default) DEPENDS += @(TARGET_ramips_rt288x||TARGET_ramips_rt305x||TARGET_ramips_rt3883||TARGET_ramips_mt7620) +kmod-rt2800-mmio +kmod-rt2800-lib TITLE += (RT28xx/RT3xxx SoC) FILES := \ - $(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.ko \ - $(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800soc.ko + $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00soc.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800soc.ko AUTOLOAD:=$(call AutoProbe,rt2800soc) endef @@ -1376,7 +1376,7 @@ define KernelPackage/rt2800-pci $(call KernelPackage/rt2x00/Default) DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-rt2800-mmio TITLE+= (RT2860 PCI) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800pci.ko AUTOLOAD:=$(call AutoProbe,rt2800pci) endef @@ -1384,7 +1384,7 @@ define KernelPackage/rt2800-usb $(call KernelPackage/rt2x00/Default) DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-lib-crc-ccitt TITLE+= (RT2870 USB) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800usb.ko AUTOLOAD:=$(call AutoProbe,rt2800usb) endef @@ -1393,7 +1393,7 @@ define KernelPackage/rt61-pci $(call KernelPackage/rt2x00/Default) DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci TITLE+= (RT2x61 PCI) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt61pci.ko AUTOLOAD:=$(call AutoProbe,rt61pci) endef @@ -1401,7 +1401,7 @@ define KernelPackage/rt73-usb $(call KernelPackage/rt2x00/Default) DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb TITLE+= (RT73 USB) - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt73usb.ko AUTOLOAD:=$(call AutoProbe,rt73usb) endef @@ -1584,7 +1584,7 @@ define KernelPackage/zd1211rw $(call KernelPackage/mac80211/Default) TITLE:=Zydas ZD1211 support DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211 - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.ko + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zydas/zd1211rw/zd1211rw.ko AUTOLOAD:=$(call AutoProbe,zd1211rw) endef @@ -1602,6 +1602,20 @@ config-y:= \ MAC80211_RC_MINSTREL_HT \ MAC80211_RC_MINSTREL_VHT \ MAC80211_RC_DEFAULT_MINSTREL \ + WLAN_VENDOR_ADMTEK \ + WLAN_VENDOR_ATH \ + WLAN_VENDOR_ATMEL \ + WLAN_VENDOR_BROADCOM \ + WLAN_VENDOR_INTEL \ + WLAN_VENDOR_INTERSIL \ + WLAN_VENDOR_MARVELL \ + WLAN_VENDOR_MEDIATEK \ + WLAN_VENDOR_RALINK \ + WLAN_VENDOR_REALTEK \ + WLAN_VENDOR_RSI \ + WLAN_VENDOR_ST \ + WLAN_VENDOR_TI \ + WLAN_VENDOR_ZYDAS \ config-$(call config_package,cfg80211) += CFG80211 diff --git a/package/kernel/mac80211/patches/030-rt2x00_options.patch b/package/kernel/mac80211/patches/030-rt2x00_options.patch index a25aeb21c2..a4ca8848c6 100644 --- a/package/kernel/mac80211/patches/030-rt2x00_options.patch +++ b/package/kernel/mac80211/patches/030-rt2x00_options.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/Kconfig -+++ b/drivers/net/wireless/rt2x00/Kconfig +--- a/drivers/net/wireless/ralink/rt2x00/Kconfig ++++ b/drivers/net/wireless/ralink/rt2x00/Kconfig @@ -225,36 +225,37 @@ config RT2800SOC diff --git a/package/kernel/mac80211/patches/040-brcmutil_option.patch b/package/kernel/mac80211/patches/040-brcmutil_option.patch index 8a6cae6122..167332d916 100644 --- a/package/kernel/mac80211/patches/040-brcmutil_option.patch +++ b/package/kernel/mac80211/patches/040-brcmutil_option.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/brcm80211/Kconfig -+++ b/drivers/net/wireless/brcm80211/Kconfig +--- a/drivers/net/wireless/broadcom/brcm80211/Kconfig ++++ b/drivers/net/wireless/broadcom/brcm80211/Kconfig @@ -1,5 +1,5 @@ config BRCMUTIL - tristate diff --git a/package/kernel/mac80211/patches/060-no_local_ssb_bcma.patch b/package/kernel/mac80211/patches/060-no_local_ssb_bcma.patch index 69c9e01d10..0daac1e95e 100644 --- a/package/kernel/mac80211/patches/060-no_local_ssb_bcma.patch +++ b/package/kernel/mac80211/patches/060-no_local_ssb_bcma.patch @@ -1,6 +1,6 @@ --- a/.local-symbols +++ b/.local-symbols -@@ -454,43 +454,6 @@ USB_IPHETH= +@@ -475,44 +475,6 @@ USB_IPHETH= USB_SIERRA_NET= USB_VL600= USB_NET_CH9200= @@ -15,6 +15,7 @@ -SSB_PCMCIAHOST= -SSB_SDIOHOST_POSSIBLE= -SSB_SDIOHOST= +-SSB_HOST_SOC= -SSB_SILENT= -SSB_DEBUG= -SSB_SERIAL= @@ -44,9 +45,9 @@ NFC= NFC_DIGITAL= NFC_NCI= ---- a/drivers/net/wireless/b43/main.c -+++ b/drivers/net/wireless/b43/main.c -@@ -2867,7 +2867,7 @@ static struct ssb_device *b43_ssb_gpio_d +--- a/drivers/net/wireless/broadcom/b43/main.c ++++ b/drivers/net/wireless/broadcom/b43/main.c +@@ -2866,7 +2866,7 @@ static struct ssb_device *b43_ssb_gpio_d { struct ssb_bus *bus = dev->dev->sdev->bus; @@ -55,7 +56,7 @@ return (bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev); #else return bus->chipco.dev; -@@ -4904,7 +4904,7 @@ static int b43_wireless_core_init(struct +@@ -4903,7 +4903,7 @@ static int b43_wireless_core_init(struct } if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW) hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */ @@ -64,8 +65,8 @@ if (dev->dev->bus_type == B43_BUS_SSB && dev->dev->sdev->bus->bustype == SSB_BUSTYPE_PCI && dev->dev->sdev->bus->pcicore.dev->id.revision <= 10) ---- a/drivers/net/wireless/b43legacy/main.c -+++ b/drivers/net/wireless/b43legacy/main.c +--- a/drivers/net/wireless/broadcom/b43legacy/main.c ++++ b/drivers/net/wireless/broadcom/b43legacy/main.c @@ -1937,7 +1937,7 @@ static int b43legacy_gpio_init(struct b4 if (dev->dev->id.revision >= 2) mask |= 0x0010; /* FIXME: This is redundant. */ @@ -84,8 +85,8 @@ pcidev = bus->pcicore.dev; #endif gpiodev = bus->chipco.dev ? : pcidev; ---- a/drivers/net/wireless/brcm80211/brcmsmac/Makefile -+++ b/drivers/net/wireless/brcm80211/brcmsmac/Makefile +--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/Makefile ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/Makefile @@ -43,6 +43,6 @@ brcmsmac-y := \ brcms_trace_events.o \ debug.o @@ -94,8 +95,8 @@ +brcmsmac-$(CONFIG_BCMA_DRIVER_GPIO) += led.o obj-$(CPTCFG_BRCMSMAC) += brcmsmac.o ---- a/drivers/net/wireless/brcm80211/brcmsmac/led.h -+++ b/drivers/net/wireless/brcm80211/brcmsmac/led.h +--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.h ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.h @@ -22,7 +22,7 @@ struct brcms_led { bool active_low; }; @@ -120,7 +121,7 @@ --- a/Makefile.kernel +++ b/Makefile.kernel @@ -38,8 +38,6 @@ obj-$(CPTCFG_MAC80211) += net/mac80211/ - #obj-$(CPTCFG_WLAN += drivers/net/wireless/ + obj-$(CPTCFG_WLAN) += drivers/net/wireless/ obj-$(CPTCFG_BT) += net/bluetooth/ obj-$(CPTCFG_BT) += drivers/bluetooth/ -obj-$(CPTCFG_SSB) += drivers/ssb/ diff --git a/package/kernel/mac80211/patches/070-ath_common_config.patch b/package/kernel/mac80211/patches/070-ath_common_config.patch index c6e9cd8515..41774fe53e 100644 --- a/package/kernel/mac80211/patches/070-ath_common_config.patch +++ b/package/kernel/mac80211/patches/070-ath_common_config.patch @@ -1,10 +1,9 @@ --- a/drivers/net/wireless/ath/Kconfig +++ b/drivers/net/wireless/ath/Kconfig -@@ -6,6 +6,7 @@ menuconfig ATH_CARDS - tristate "Atheros Wireless Cards" +@@ -1,5 +1,5 @@ + config ATH_COMMON +- tristate ++ tristate "ath.ko" depends on m - depends on CFG80211 && (!UML || BROKEN) -+ select ATH_COMMON - ---help--- - This will enable the support for the Atheros wireless drivers. - ath5k, ath9k, ath9k_htc and ar9170 drivers share some common code, this option + + config WLAN_VENDOR_ATH diff --git a/package/kernel/mac80211/patches/210-ap_scan.patch b/package/kernel/mac80211/patches/210-ap_scan.patch index 2980f8b75a..e78805de04 100644 --- a/package/kernel/mac80211/patches/210-ap_scan.patch +++ b/package/kernel/mac80211/patches/210-ap_scan.patch @@ -1,6 +1,6 @@ --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1981,7 +1981,7 @@ static int ieee80211_scan(struct wiphy * +@@ -1971,7 +1971,7 @@ static int ieee80211_scan(struct wiphy * * the frames sent while scanning on other channel will be * lost) */ diff --git a/package/kernel/mac80211/patches/302-ath5k-fix-RTS-CTS-by-using-proper-rate-flags.patch b/package/kernel/mac80211/patches/302-ath5k-fix-RTS-CTS-by-using-proper-rate-flags.patch new file mode 100644 index 0000000000..9aea90ecb1 --- /dev/null +++ b/package/kernel/mac80211/patches/302-ath5k-fix-RTS-CTS-by-using-proper-rate-flags.patch @@ -0,0 +1,24 @@ +From: Bob Copeland +Date: Thu, 19 Nov 2015 10:04:48 -0500 +Subject: [PATCH] ath5k: fix RTS/CTS by using proper rate flags + +The rates in the tx control rateset do not have the protection +flags applied, so RTS/CTS would never get enabled if requested. + +Fix by using the rate flags in the rates returned by +ieee80211_get_tx_rates(). + +Signed-off-by: Bob Copeland +--- + +--- a/drivers/net/wireless/ath/ath5k/base.c ++++ b/drivers/net/wireless/ath/ath5k/base.c +@@ -767,7 +767,7 @@ ath5k_txbuf_setup(struct ath5k_hw *ah, s + if (info->flags & IEEE80211_TX_CTL_NO_ACK) + flags |= AR5K_TXDESC_NOACK; + +- rc_flags = info->control.rates[0].flags; ++ rc_flags = bf->rates[0].flags; + + hw_rate = ath5k_get_rate_hw_value(ah->hw, info, bf, 0); + diff --git a/package/kernel/mac80211/patches/302-ath9k-fix-phyerror-codes.patch b/package/kernel/mac80211/patches/302-ath9k-fix-phyerror-codes.patch deleted file mode 100644 index 944b8e720a..0000000000 --- a/package/kernel/mac80211/patches/302-ath9k-fix-phyerror-codes.patch +++ /dev/null @@ -1,108 +0,0 @@ -From: Zefir Kurtisi -Date: Tue, 20 Oct 2015 14:19:26 +0200 -Subject: [PATCH] ath9k: fix phyerror codes - -Some of the ath9k_phyerr enums were wrong from the -beginning (and even before). Most of the time the -codes were used for counters to be displayed over -debugfs, which made this a non-functional issue. - -Some (e.g. ATH9K_PHYERR_FALSE_RADAR_EXT) are used -for radar detection and require the correct code -to work as intended. - -This patch includes: -a) fixes - ATH9K_PHYERR_FALSE_RADAR_EXT: 24 => 36 - ATH9K_PHYERR_CCK_LENGTH_ILLEGAL: 32 => 28 - ATH9K_PHYERR_CCK_POWER_DROP: 33 => 29 - ATH9K_PHYERR_HT_CRC_ERROR: 34 => 32 - ATH9K_PHYERR_HT_LENGTH_ILLEGAL: 35 => 33 - ATH9K_PHYERR_HT_RATE_ILLEGAL: 36 => 34 - -b) extensions - ATH9K_PHYERR_CCK_BLOCKER = 24 - ATH9K_PHYERR_HT_ZLF = 35 - ATH9K_PHYERR_GREEN_FIELD = 37 - -Aside from the correction and completion made in -the enum, the patch also extends the display of -the related counters in the debugfs. - -Signed-off-by: Zefir Kurtisi -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath9k/common-debug.c -+++ b/drivers/net/wireless/ath/ath9k/common-debug.c -@@ -207,6 +207,7 @@ static ssize_t read_file_phy_err(struct - PHY_ERR("RADAR ERR", ATH9K_PHYERR_RADAR); - PHY_ERR("SERVICE ERR", ATH9K_PHYERR_SERVICE); - PHY_ERR("TOR ERR", ATH9K_PHYERR_TOR); -+ - PHY_ERR("OFDM-TIMING ERR", ATH9K_PHYERR_OFDM_TIMING); - PHY_ERR("OFDM-SIGNAL-PARITY ERR", ATH9K_PHYERR_OFDM_SIGNAL_PARITY); - PHY_ERR("OFDM-RATE ERR", ATH9K_PHYERR_OFDM_RATE_ILLEGAL); -@@ -214,17 +215,24 @@ static ssize_t read_file_phy_err(struct - PHY_ERR("OFDM-POWER-DROP ERR", ATH9K_PHYERR_OFDM_POWER_DROP); - PHY_ERR("OFDM-SERVICE ERR", ATH9K_PHYERR_OFDM_SERVICE); - PHY_ERR("OFDM-RESTART ERR", ATH9K_PHYERR_OFDM_RESTART); -- PHY_ERR("FALSE-RADAR-EXT ERR", ATH9K_PHYERR_FALSE_RADAR_EXT); -+ -+ PHY_ERR("CCK-BLOCKER ERR", ATH9K_PHYERR_CCK_BLOCKER); - PHY_ERR("CCK-TIMING ERR", ATH9K_PHYERR_CCK_TIMING); - PHY_ERR("CCK-HEADER-CRC ERR", ATH9K_PHYERR_CCK_HEADER_CRC); - PHY_ERR("CCK-RATE ERR", ATH9K_PHYERR_CCK_RATE_ILLEGAL); -- PHY_ERR("CCK-SERVICE ERR", ATH9K_PHYERR_CCK_SERVICE); -- PHY_ERR("CCK-RESTART ERR", ATH9K_PHYERR_CCK_RESTART); - PHY_ERR("CCK-LENGTH ERR", ATH9K_PHYERR_CCK_LENGTH_ILLEGAL); - PHY_ERR("CCK-POWER-DROP ERR", ATH9K_PHYERR_CCK_POWER_DROP); -+ PHY_ERR("CCK-SERVICE ERR", ATH9K_PHYERR_CCK_SERVICE); -+ PHY_ERR("CCK-RESTART ERR", ATH9K_PHYERR_CCK_RESTART); -+ - PHY_ERR("HT-CRC ERR", ATH9K_PHYERR_HT_CRC_ERROR); - PHY_ERR("HT-LENGTH ERR", ATH9K_PHYERR_HT_LENGTH_ILLEGAL); - PHY_ERR("HT-RATE ERR", ATH9K_PHYERR_HT_RATE_ILLEGAL); -+ PHY_ERR("HT-ZLF ERR", ATH9K_PHYERR_HT_ZLF); -+ -+ PHY_ERR("FALSE-RADAR-EXT ERR", ATH9K_PHYERR_FALSE_RADAR_EXT); -+ PHY_ERR("GREEN-FIELD ERR", ATH9K_PHYERR_GREEN_FIELD); -+ PHY_ERR("SPECTRAL ERR", ATH9K_PHYERR_SPECTRAL); - - if (len > size) - len = size; ---- a/drivers/net/wireless/ath/ath9k/mac.h -+++ b/drivers/net/wireless/ath/ath9k/mac.h -@@ -209,21 +209,25 @@ enum ath9k_phyerr { - ATH9K_PHYERR_OFDM_POWER_DROP = 21, - ATH9K_PHYERR_OFDM_SERVICE = 22, - ATH9K_PHYERR_OFDM_RESTART = 23, -- ATH9K_PHYERR_FALSE_RADAR_EXT = 24, - -+ ATH9K_PHYERR_CCK_BLOCKER = 24, - ATH9K_PHYERR_CCK_TIMING = 25, - ATH9K_PHYERR_CCK_HEADER_CRC = 26, - ATH9K_PHYERR_CCK_RATE_ILLEGAL = 27, -+ ATH9K_PHYERR_CCK_LENGTH_ILLEGAL = 28, -+ ATH9K_PHYERR_CCK_POWER_DROP = 29, - ATH9K_PHYERR_CCK_SERVICE = 30, - ATH9K_PHYERR_CCK_RESTART = 31, -- ATH9K_PHYERR_CCK_LENGTH_ILLEGAL = 32, -- ATH9K_PHYERR_CCK_POWER_DROP = 33, - -- ATH9K_PHYERR_HT_CRC_ERROR = 34, -- ATH9K_PHYERR_HT_LENGTH_ILLEGAL = 35, -- ATH9K_PHYERR_HT_RATE_ILLEGAL = 36, -+ ATH9K_PHYERR_HT_CRC_ERROR = 32, -+ ATH9K_PHYERR_HT_LENGTH_ILLEGAL = 33, -+ ATH9K_PHYERR_HT_RATE_ILLEGAL = 34, -+ ATH9K_PHYERR_HT_ZLF = 35, -+ -+ ATH9K_PHYERR_FALSE_RADAR_EXT = 36, -+ ATH9K_PHYERR_GREEN_FIELD = 37, -+ ATH9K_PHYERR_SPECTRAL = 38, - -- ATH9K_PHYERR_SPECTRAL = 38, - ATH9K_PHYERR_MAX = 39, - }; - diff --git a/package/kernel/mac80211/patches/303-ath10k-do-not-use-coherent-memory-for-allocated-devi.patch b/package/kernel/mac80211/patches/303-ath10k-do-not-use-coherent-memory-for-allocated-devi.patch new file mode 100644 index 0000000000..20bece68ec --- /dev/null +++ b/package/kernel/mac80211/patches/303-ath10k-do-not-use-coherent-memory-for-allocated-devi.patch @@ -0,0 +1,104 @@ +From: Felix Fietkau +Date: Sun, 22 Nov 2015 14:03:40 +0100 +Subject: [PATCH] ath10k: do not use coherent memory for allocated device + memory chunks + +Coherent memory is more expensive to allocate (and constrained on some +architectures where it has to be pre-allocated). It is also completely +unnecessary, since the host has no reason to even access these allocated +memory spaces + +Signed-off-by: Felix Fietkau +--- + +--- a/drivers/net/wireless/ath/ath10k/wmi.c ++++ b/drivers/net/wireless/ath/ath10k/wmi.c +@@ -4312,34 +4312,58 @@ void ath10k_wmi_event_vdev_resume_req(st + ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_RESUME_REQ_EVENTID\n"); + } + +-static int ath10k_wmi_alloc_host_mem(struct ath10k *ar, u32 req_id, +- u32 num_units, u32 unit_len) ++static int ath10k_wmi_alloc_chunk(struct ath10k *ar, u32 req_id, ++ u32 num_units, u32 unit_len) + { + dma_addr_t paddr; +- u32 pool_size; ++ u32 pool_size = 0; + int idx = ar->wmi.num_mem_chunks; ++ void *vaddr = NULL; + +- pool_size = num_units * round_up(unit_len, 4); ++ if (ar->wmi.num_mem_chunks == ARRAY_SIZE(ar->wmi.mem_chunks)) ++ return -ENOMEM; + +- if (!pool_size) +- return -EINVAL; ++ while (!vaddr && num_units) { ++ pool_size = num_units * round_up(unit_len, 4); ++ if (!pool_size) ++ return -EINVAL; + +- ar->wmi.mem_chunks[idx].vaddr = dma_alloc_coherent(ar->dev, +- pool_size, +- &paddr, +- GFP_KERNEL); +- if (!ar->wmi.mem_chunks[idx].vaddr) { +- ath10k_warn(ar, "failed to allocate memory chunk\n"); +- return -ENOMEM; ++ vaddr = kzalloc(pool_size, GFP_KERNEL | __GFP_NOWARN); ++ if (!vaddr) ++ num_units /= 2; + } + +- memset(ar->wmi.mem_chunks[idx].vaddr, 0, pool_size); ++ if (!num_units) ++ return -ENOMEM; ++ ++ paddr = dma_map_single(ar->dev, vaddr, pool_size, DMA_TO_DEVICE); ++ if (dma_mapping_error(ar->dev, paddr)) { ++ kfree(vaddr); ++ return -ENOMEM; ++ } + ++ ar->wmi.mem_chunks[idx].vaddr = vaddr; + ar->wmi.mem_chunks[idx].paddr = paddr; + ar->wmi.mem_chunks[idx].len = pool_size; + ar->wmi.mem_chunks[idx].req_id = req_id; + ar->wmi.num_mem_chunks++; + ++ return num_units; ++} ++ ++static int ath10k_wmi_alloc_host_mem(struct ath10k *ar, u32 req_id, ++ u32 num_units, u32 unit_len) ++{ ++ int ret; ++ ++ while (num_units) { ++ ret = ath10k_wmi_alloc_chunk(ar, req_id, num_units, unit_len); ++ if (ret < 0) ++ return ret; ++ ++ num_units -= ret; ++ } ++ + return 0; + } + +@@ -7717,10 +7741,11 @@ void ath10k_wmi_free_host_mem(struct ath + + /* free the host memory chunks requested by firmware */ + for (i = 0; i < ar->wmi.num_mem_chunks; i++) { +- dma_free_coherent(ar->dev, +- ar->wmi.mem_chunks[i].len, +- ar->wmi.mem_chunks[i].vaddr, +- ar->wmi.mem_chunks[i].paddr); ++ dma_unmap_single(ar->dev, ++ ar->wmi.mem_chunks[i].paddr, ++ ar->wmi.mem_chunks[i].len, ++ DMA_TO_DEVICE); ++ kfree(ar->wmi.mem_chunks[i].vaddr); + } + + ar->wmi.num_mem_chunks = 0; diff --git a/package/kernel/mac80211/patches/303-ath10k-enable-adaptive-CCA.patch b/package/kernel/mac80211/patches/303-ath10k-enable-adaptive-CCA.patch deleted file mode 100644 index dea65bbaf2..0000000000 --- a/package/kernel/mac80211/patches/303-ath10k-enable-adaptive-CCA.patch +++ /dev/null @@ -1,239 +0,0 @@ -From: Maharaja -Date: Wed, 21 Oct 2015 11:49:18 +0300 -Subject: [PATCH] ath10k: enable adaptive CCA - -European Union has made it mandatory that all devices working in 2.4 GHz -has to adhere to the ETSI specification (ETSI EN 300 328 V1.9.1) -beginnig this year. The standard basically speaks about interferences -in 2.4Ghz band. -For example, when 802.11 device detects interference, TX must be stopped -as long as interference is present. - -Adaptive CCA is a feature, when enabled the device learns from the -environment and configures CCA levels adaptively. This will improve -detecting interferences and the device can stop trasmissions till the -interference is present eventually leading to good performances in -varying interference conditions. - -The patch includes code for enabling adaptive CCA for 10.2.4 firmware on -QCA988X. - -Signed-off-by: Maharaja -Signed-off-by: Manikanta Pubbisetty -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/core.c -+++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -151,6 +151,7 @@ static const char *const ath10k_core_fw_ - [ATH10K_FW_FEATURE_NO_NWIFI_DECAP_4ADDR_PADDING] = "no-4addr-pad", - [ATH10K_FW_FEATURE_SUPPORTS_SKIP_CLOCK_INIT] = "skip-clock-init", - [ATH10K_FW_FEATURE_RAW_MODE_SUPPORT] = "raw-mode", -+ [ATH10K_FW_FEATURE_SUPPORTS_ADAPTIVE_CCA] = "adaptive-cca", - }; - - static unsigned int ath10k_core_get_fw_feature_str(char *buf, ---- a/drivers/net/wireless/ath/ath10k/core.h -+++ b/drivers/net/wireless/ath/ath10k/core.h -@@ -497,6 +497,9 @@ enum ath10k_fw_features { - */ - ATH10K_FW_FEATURE_RAW_MODE_SUPPORT = 10, - -+ /* Firmware Supports Adaptive CCA*/ -+ ATH10K_FW_FEATURE_SUPPORTS_ADAPTIVE_CCA = 11, -+ - /* keep last */ - ATH10K_FW_FEATURE_COUNT, - }; ---- a/drivers/net/wireless/ath/ath10k/mac.c -+++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -3905,6 +3905,18 @@ static int ath10k_start(struct ieee80211 - goto err_core_stop; - } - -+ if (test_bit(ATH10K_FW_FEATURE_SUPPORTS_ADAPTIVE_CCA, -+ ar->fw_features)) { -+ ret = ath10k_wmi_pdev_enable_adaptive_cca(ar, 1, -+ WMI_CCA_DETECT_LEVEL_AUTO, -+ WMI_CCA_DETECT_MARGIN_AUTO); -+ if (ret) { -+ ath10k_warn(ar, "failed to enable adaptive cca: %d\n", -+ ret); -+ goto err_core_stop; -+ } -+ } -+ - ret = ath10k_wmi_pdev_set_param(ar, - ar->wmi.pdev_param->ani_enable, 1); - if (ret) { ---- a/drivers/net/wireless/ath/ath10k/wmi-ops.h -+++ b/drivers/net/wireless/ath/ath10k/wmi-ops.h -@@ -182,6 +182,10 @@ struct wmi_ops { - void (*fw_stats_fill)(struct ath10k *ar, - struct ath10k_fw_stats *fw_stats, - char *buf); -+ struct sk_buff *(*gen_pdev_enable_adaptive_cca)(struct ath10k *ar, -+ u8 enable, -+ u32 detect_level, -+ u32 detect_margin); - }; - - int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); -@@ -1302,4 +1306,25 @@ ath10k_wmi_fw_stats_fill(struct ath10k * - ar->wmi.ops->fw_stats_fill(ar, fw_stats, buf); - return 0; - } -+ -+static inline int -+ath10k_wmi_pdev_enable_adaptive_cca(struct ath10k *ar, u8 enable, -+ u32 detect_level, u32 detect_margin) -+{ -+ struct sk_buff *skb; -+ -+ if (!ar->wmi.ops->gen_pdev_enable_adaptive_cca) -+ return -EOPNOTSUPP; -+ -+ skb = ar->wmi.ops->gen_pdev_enable_adaptive_cca(ar, enable, -+ detect_level, -+ detect_margin); -+ -+ if (IS_ERR(skb)) -+ return PTR_ERR(skb); -+ -+ return ath10k_wmi_cmd_send(ar, skb, -+ ar->wmi.cmd->pdev_enable_adaptive_cca_cmdid); -+} -+ - #endif ---- a/drivers/net/wireless/ath/ath10k/wmi.c -+++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -148,6 +148,7 @@ static struct wmi_cmd_map wmi_cmd_map = - .gpio_config_cmdid = WMI_GPIO_CONFIG_CMDID, - .gpio_output_cmdid = WMI_GPIO_OUTPUT_CMDID, - .pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED, -+ .pdev_enable_adaptive_cca_cmdid = WMI_CMD_UNSUPPORTED, - .scan_update_request_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED, -@@ -313,6 +314,7 @@ static struct wmi_cmd_map wmi_10x_cmd_ma - .gpio_config_cmdid = WMI_10X_GPIO_CONFIG_CMDID, - .gpio_output_cmdid = WMI_10X_GPIO_OUTPUT_CMDID, - .pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED, -+ .pdev_enable_adaptive_cca_cmdid = WMI_CMD_UNSUPPORTED, - .scan_update_request_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED, -@@ -477,6 +479,7 @@ static struct wmi_cmd_map wmi_10_2_4_cmd - .gpio_config_cmdid = WMI_10_2_GPIO_CONFIG_CMDID, - .gpio_output_cmdid = WMI_10_2_GPIO_OUTPUT_CMDID, - .pdev_get_temperature_cmdid = WMI_10_2_PDEV_GET_TEMPERATURE_CMDID, -+ .pdev_enable_adaptive_cca_cmdid = WMI_10_2_SET_CCA_PARAMS, - .scan_update_request_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED, -@@ -1407,6 +1410,7 @@ static struct wmi_cmd_map wmi_10_2_cmd_m - .gpio_config_cmdid = WMI_10_2_GPIO_CONFIG_CMDID, - .gpio_output_cmdid = WMI_10_2_GPIO_OUTPUT_CMDID, - .pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED, -+ .pdev_enable_adaptive_cca_cmdid = WMI_CMD_UNSUPPORTED, - .scan_update_request_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED, - .vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED, -@@ -6996,6 +7000,28 @@ unlock: - buf[len] = 0; - } - -+static struct sk_buff * -+ath10k_wmi_op_gen_pdev_enable_adaptive_cca(struct ath10k *ar, u8 enable, -+ u32 detect_level, u32 detect_margin) -+{ -+ struct wmi_pdev_set_adaptive_cca_params *cmd; -+ struct sk_buff *skb; -+ -+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); -+ if (!skb) -+ return ERR_PTR(-ENOMEM); -+ -+ cmd = (struct wmi_pdev_set_adaptive_cca_params *)skb->data; -+ cmd->enable = __cpu_to_le32(enable); -+ cmd->cca_detect_level = __cpu_to_le32(detect_level); -+ cmd->cca_detect_margin = __cpu_to_le32(detect_margin); -+ -+ ath10k_dbg(ar, ATH10K_DBG_WMI, -+ "wmi pdev set adaptive cca params enable:%d detection level:%d detection margin:%d\n", -+ enable, detect_level, detect_margin); -+ return skb; -+} -+ - static const struct wmi_ops wmi_ops = { - .rx = ath10k_wmi_op_rx, - .map_svc = wmi_main_svc_map, -@@ -7059,6 +7085,7 @@ static const struct wmi_ops wmi_ops = { - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ - /* .gen_adaptive_qcs not implemented */ -+ /* .gen_pdev_enable_adaptive_cca not implemented */ - }; - - static const struct wmi_ops wmi_10_1_ops = { -@@ -7125,6 +7152,7 @@ static const struct wmi_ops wmi_10_1_ops - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ - /* .gen_adaptive_qcs not implemented */ -+ /* .gen_pdev_enable_adaptive_cca not implemented */ - }; - - static const struct wmi_ops wmi_10_2_ops = { -@@ -7188,6 +7216,7 @@ static const struct wmi_ops wmi_10_2_ops - .gen_addba_set_resp = ath10k_wmi_op_gen_addba_set_resp, - .gen_delba_send = ath10k_wmi_op_gen_delba_send, - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, -+ /* .gen_pdev_enable_adaptive_cca not implemented */ - }; - - static const struct wmi_ops wmi_10_2_4_ops = { -@@ -7251,6 +7280,8 @@ static const struct wmi_ops wmi_10_2_4_o - .gen_delba_send = ath10k_wmi_op_gen_delba_send, - .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, -+ .gen_pdev_enable_adaptive_cca = -+ ath10k_wmi_op_gen_pdev_enable_adaptive_cca, - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ ---- a/drivers/net/wireless/ath/ath10k/wmi.h -+++ b/drivers/net/wireless/ath/ath10k/wmi.h -@@ -772,6 +772,7 @@ struct wmi_cmd_map { - u32 mu_cal_start_cmdid; - u32 set_cca_params_cmdid; - u32 pdev_bss_chan_info_request_cmdid; -+ u32 pdev_enable_adaptive_cca_cmdid; - }; - - /* -@@ -1381,6 +1382,9 @@ enum wmi_10_2_cmd_id { - WMI_10_2_VDEV_ATF_REQUEST_CMDID, - WMI_10_2_PEER_ATF_REQUEST_CMDID, - WMI_10_2_PDEV_GET_TEMPERATURE_CMDID, -+ WMI_10_2_MU_CAL_START_CMDID, -+ WMI_10_2_SET_LTEU_CONFIG_CMDID, -+ WMI_10_2_SET_CCA_PARAMS, - WMI_10_2_PDEV_UTF_CMDID = WMI_10_2_END_CMDID - 1, - }; - -@@ -6094,6 +6098,15 @@ enum wmi_txbf_conf { - WMI_TXBF_CONF_AFTER_ASSOC, - }; - -+#define WMI_CCA_DETECT_LEVEL_AUTO 0 -+#define WMI_CCA_DETECT_MARGIN_AUTO 0 -+ -+struct wmi_pdev_set_adaptive_cca_params { -+ __le32 enable; -+ __le32 cca_detect_level; -+ __le32 cca_detect_margin; -+} __packed; -+ - struct ath10k; - struct ath10k_vif; - struct ath10k_fw_stats_pdev; diff --git a/package/kernel/mac80211/patches/304-ath10k-add-FW-API-support-to-test-mode.patch b/package/kernel/mac80211/patches/304-ath10k-add-FW-API-support-to-test-mode.patch deleted file mode 100644 index e4ccac342f..0000000000 --- a/package/kernel/mac80211/patches/304-ath10k-add-FW-API-support-to-test-mode.patch +++ /dev/null @@ -1,331 +0,0 @@ -From: Alan Liu -Date: Wed, 28 Oct 2015 21:38:32 +0200 -Subject: [PATCH] ath10k: add FW API support to test mode - -Add WMI-TLV and FW API support in ath10k testmode. -Ath10k can get right wmi command format from UTF image -to communicate UTF firmware. - -Signed-off-by: Alan Liu -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/core.c -+++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -569,8 +569,8 @@ static int ath10k_download_fw(struct ath - } - break; - case ATH10K_FIRMWARE_MODE_UTF: -- data = ar->testmode.utf->data; -- data_len = ar->testmode.utf->size; -+ data = ar->testmode.utf_firmware_data; -+ data_len = ar->testmode.utf_firmware_len; - mode_name = "utf"; - break; - default: ---- a/drivers/net/wireless/ath/ath10k/core.h -+++ b/drivers/net/wireless/ath/ath10k/core.h -@@ -817,9 +817,12 @@ struct ath10k { - struct { - /* protected by conf_mutex */ - const struct firmware *utf; -+ char utf_version[32]; -+ const void *utf_firmware_data; -+ size_t utf_firmware_len; - DECLARE_BITMAP(orig_fw_features, ATH10K_FW_FEATURE_COUNT); - enum ath10k_fw_wmi_op_version orig_wmi_op_version; -- -+ enum ath10k_fw_wmi_op_version op_version; - /* protected by data_lock */ - bool utf_monitor; - } testmode; ---- a/drivers/net/wireless/ath/ath10k/hw.h -+++ b/drivers/net/wireless/ath/ath10k/hw.h -@@ -94,6 +94,7 @@ enum qca6174_chip_id_rev { - #define ATH10K_FW_API5_FILE "firmware-5.bin" - - #define ATH10K_FW_UTF_FILE "utf.bin" -+#define ATH10K_FW_UTF_API2_FILE "utf-2.bin" - - /* includes also the null byte */ - #define ATH10K_FIRMWARE_MAGIC "QCA-ATH10K" ---- a/drivers/net/wireless/ath/ath10k/testmode.c -+++ b/drivers/net/wireless/ath/ath10k/testmode.c -@@ -139,11 +139,181 @@ static int ath10k_tm_cmd_get_version(str - return cfg80211_testmode_reply(skb); - } - --static int ath10k_tm_cmd_utf_start(struct ath10k *ar, struct nlattr *tb[]) -+static int ath10k_tm_fetch_utf_firmware_api_2(struct ath10k *ar) -+{ -+ size_t len, magic_len, ie_len; -+ struct ath10k_fw_ie *hdr; -+ char filename[100]; -+ __le32 *version; -+ const u8 *data; -+ int ie_id, ret; -+ -+ snprintf(filename, sizeof(filename), "%s/%s", -+ ar->hw_params.fw.dir, ATH10K_FW_UTF_API2_FILE); -+ -+ /* load utf firmware image */ -+ ret = request_firmware(&ar->testmode.utf, filename, ar->dev); -+ if (ret) { -+ ath10k_warn(ar, "failed to retrieve utf firmware '%s': %d\n", -+ filename, ret); -+ return ret; -+ } -+ -+ data = ar->testmode.utf->data; -+ len = ar->testmode.utf->size; -+ -+ /* FIXME: call release_firmware() in error cases */ -+ -+ /* magic also includes the null byte, check that as well */ -+ magic_len = strlen(ATH10K_FIRMWARE_MAGIC) + 1; -+ -+ if (len < magic_len) { -+ ath10k_err(ar, "utf firmware file is too small to contain magic\n"); -+ ret = -EINVAL; -+ goto err; -+ } -+ -+ if (memcmp(data, ATH10K_FIRMWARE_MAGIC, magic_len) != 0) { -+ ath10k_err(ar, "invalid firmware magic\n"); -+ ret = -EINVAL; -+ goto err; -+ } -+ -+ /* jump over the padding */ -+ magic_len = ALIGN(magic_len, 4); -+ -+ len -= magic_len; -+ data += magic_len; -+ -+ /* loop elements */ -+ while (len > sizeof(struct ath10k_fw_ie)) { -+ hdr = (struct ath10k_fw_ie *)data; -+ -+ ie_id = le32_to_cpu(hdr->id); -+ ie_len = le32_to_cpu(hdr->len); -+ -+ len -= sizeof(*hdr); -+ data += sizeof(*hdr); -+ -+ if (len < ie_len) { -+ ath10k_err(ar, "invalid length for FW IE %d (%zu < %zu)\n", -+ ie_id, len, ie_len); -+ ret = -EINVAL; -+ goto err; -+ } -+ -+ switch (ie_id) { -+ case ATH10K_FW_IE_FW_VERSION: -+ if (ie_len > sizeof(ar->testmode.utf_version) - 1) -+ break; -+ -+ memcpy(ar->testmode.utf_version, data, ie_len); -+ ar->testmode.utf_version[ie_len] = '\0'; -+ -+ ath10k_dbg(ar, ATH10K_DBG_TESTMODE, -+ "testmode found fw utf version %s\n", -+ ar->testmode.utf_version); -+ break; -+ case ATH10K_FW_IE_TIMESTAMP: -+ /* ignore timestamp, but don't warn about it either */ -+ break; -+ case ATH10K_FW_IE_FW_IMAGE: -+ ath10k_dbg(ar, ATH10K_DBG_TESTMODE, -+ "testmode found fw image ie (%zd B)\n", -+ ie_len); -+ -+ ar->testmode.utf_firmware_data = data; -+ ar->testmode.utf_firmware_len = ie_len; -+ break; -+ case ATH10K_FW_IE_WMI_OP_VERSION: -+ if (ie_len != sizeof(u32)) -+ break; -+ version = (__le32 *)data; -+ ar->testmode.op_version = le32_to_cpup(version); -+ ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode found fw ie wmi op version %d\n", -+ ar->testmode.op_version); -+ break; -+ default: -+ ath10k_warn(ar, "Unknown testmode FW IE: %u\n", -+ le32_to_cpu(hdr->id)); -+ break; -+ } -+ /* jump over the padding */ -+ ie_len = ALIGN(ie_len, 4); -+ -+ len -= ie_len; -+ data += ie_len; -+ } -+ -+ if (!ar->testmode.utf_firmware_data || !ar->testmode.utf_firmware_len) { -+ ath10k_err(ar, "No ATH10K_FW_IE_FW_IMAGE found\n"); -+ ret = -EINVAL; -+ goto err; -+ } -+ -+ return 0; -+ -+err: -+ release_firmware(ar->testmode.utf); -+ -+ return ret; -+} -+ -+static int ath10k_tm_fetch_utf_firmware_api_1(struct ath10k *ar) - { - char filename[100]; - int ret; - -+ snprintf(filename, sizeof(filename), "%s/%s", -+ ar->hw_params.fw.dir, ATH10K_FW_UTF_FILE); -+ -+ /* load utf firmware image */ -+ ret = request_firmware(&ar->testmode.utf, filename, ar->dev); -+ if (ret) { -+ ath10k_warn(ar, "failed to retrieve utf firmware '%s': %d\n", -+ filename, ret); -+ return ret; -+ } -+ -+ /* We didn't find FW UTF API 1 ("utf.bin") does not advertise -+ * firmware features. Do an ugly hack where we force the firmware -+ * features to match with 10.1 branch so that wmi.c will use the -+ * correct WMI interface. -+ */ -+ -+ ar->testmode.op_version = ATH10K_FW_WMI_OP_VERSION_10_1; -+ ar->testmode.utf_firmware_data = ar->testmode.utf->data; -+ ar->testmode.utf_firmware_len = ar->testmode.utf->size; -+ -+ return 0; -+} -+ -+static int ath10k_tm_fetch_firmware(struct ath10k *ar) -+{ -+ int ret; -+ -+ ret = ath10k_tm_fetch_utf_firmware_api_2(ar); -+ if (ret == 0) { -+ ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode using fw utf api 2"); -+ return 0; -+ } -+ -+ ret = ath10k_tm_fetch_utf_firmware_api_1(ar); -+ if (ret) { -+ ath10k_err(ar, "failed to fetch utf firmware binary: %d", ret); -+ return ret; -+ } -+ -+ ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode using utf api 1"); -+ -+ return 0; -+} -+ -+static int ath10k_tm_cmd_utf_start(struct ath10k *ar, struct nlattr *tb[]) -+{ -+ const char *ver; -+ int ret; -+ - ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode cmd utf start\n"); - - mutex_lock(&ar->conf_mutex); -@@ -165,36 +335,27 @@ static int ath10k_tm_cmd_utf_start(struc - goto err; - } - -- snprintf(filename, sizeof(filename), "%s/%s", -- ar->hw_params.fw.dir, ATH10K_FW_UTF_FILE); -- -- /* load utf firmware image */ -- ret = request_firmware(&ar->testmode.utf, filename, ar->dev); -+ ret = ath10k_tm_fetch_firmware(ar); - if (ret) { -- ath10k_warn(ar, "failed to retrieve utf firmware '%s': %d\n", -- filename, ret); -+ ath10k_err(ar, "failed to fetch UTF firmware: %d", ret); - goto err; - } - - spin_lock_bh(&ar->data_lock); -- - ar->testmode.utf_monitor = true; -- - spin_unlock_bh(&ar->data_lock); -- - BUILD_BUG_ON(sizeof(ar->fw_features) != - sizeof(ar->testmode.orig_fw_features)); - - memcpy(ar->testmode.orig_fw_features, ar->fw_features, - sizeof(ar->fw_features)); - ar->testmode.orig_wmi_op_version = ar->wmi.op_version; -- -- /* utf.bin firmware image does not advertise firmware features. Do -- * an ugly hack where we force the firmware features so that wmi.c -- * will use the correct WMI interface. -- */ - memset(ar->fw_features, 0, sizeof(ar->fw_features)); -- ar->wmi.op_version = ATH10K_FW_WMI_OP_VERSION_10_1; -+ -+ ar->wmi.op_version = ar->testmode.op_version; -+ -+ ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode wmi version %d\n", -+ ar->wmi.op_version); - - ret = ath10k_hif_power_up(ar); - if (ret) { -@@ -212,7 +373,12 @@ static int ath10k_tm_cmd_utf_start(struc - - ar->state = ATH10K_STATE_UTF; - -- ath10k_info(ar, "UTF firmware started\n"); -+ if (strlen(ar->testmode.utf_version) > 0) -+ ver = ar->testmode.utf_version; -+ else -+ ver = "API 1"; -+ -+ ath10k_info(ar, "UTF firmware %s started\n", ver); - - mutex_unlock(&ar->conf_mutex); - ---- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c -+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c -@@ -23,6 +23,7 @@ - #include "wmi-ops.h" - #include "wmi-tlv.h" - #include "p2p.h" -+#include "testmode.h" - - /***************/ - /* TLV helpers */ -@@ -419,6 +420,7 @@ static void ath10k_wmi_tlv_op_rx(struct - { - struct wmi_cmd_hdr *cmd_hdr; - enum wmi_tlv_event_id id; -+ bool consumed; - - cmd_hdr = (struct wmi_cmd_hdr *)skb->data; - id = MS(__le32_to_cpu(cmd_hdr->cmd_id), WMI_CMD_HDR_CMD_ID); -@@ -428,6 +430,18 @@ static void ath10k_wmi_tlv_op_rx(struct - - trace_ath10k_wmi_event(ar, id, skb->data, skb->len); - -+ consumed = ath10k_tm_event_wmi(ar, id, skb); -+ -+ /* Ready event must be handled normally also in UTF mode so that we -+ * know the UTF firmware has booted, others we are just bypass WMI -+ * events to testmode. -+ */ -+ if (consumed && id != WMI_TLV_READY_EVENTID) { -+ ath10k_dbg(ar, ATH10K_DBG_WMI, -+ "wmi tlv testmode consumed 0x%x\n", id); -+ goto out; -+ } -+ - switch (id) { - case WMI_TLV_MGMT_RX_EVENTID: - ath10k_wmi_event_mgmt_rx(ar, skb); diff --git a/package/kernel/mac80211/patches/305-ath10k-add-fw_stats-support-to-10.4-firmware.patch b/package/kernel/mac80211/patches/305-ath10k-add-fw_stats-support-to-10.4-firmware.patch deleted file mode 100644 index 7deb19c344..0000000000 --- a/package/kernel/mac80211/patches/305-ath10k-add-fw_stats-support-to-10.4-firmware.patch +++ /dev/null @@ -1,468 +0,0 @@ -From: Manikanta Pubbisetty -Date: Wed, 28 Oct 2015 21:38:33 +0200 -Subject: [PATCH] ath10k: add fw_stats support to 10.4 firmware - -This patch adds support for getting firmware debug stats in 10.4 fw. - -Signed-off-by: Manikanta Pubbisetty -Signed-off-by: Tamizh chelvam -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/core.h -+++ b/drivers/net/wireless/ath/ath10k/core.h -@@ -214,6 +214,7 @@ struct ath10k_fw_stats_pdev { - s32 hw_queued; - s32 hw_reaped; - s32 underrun; -+ u32 hw_paused; - s32 tx_abort; - s32 mpdus_requed; - u32 tx_ko; -@@ -226,6 +227,16 @@ struct ath10k_fw_stats_pdev { - u32 pdev_resets; - u32 phy_underrun; - u32 txop_ovf; -+ u32 seq_posted; -+ u32 seq_failed_queueing; -+ u32 seq_completed; -+ u32 seq_restarted; -+ u32 mu_seq_posted; -+ u32 mpdus_sw_flush; -+ u32 mpdus_hw_filter; -+ u32 mpdus_truncated; -+ u32 mpdus_ack_failed; -+ u32 mpdus_expired; - - /* PDEV RX stats */ - s32 mid_ppdu_route_change; -@@ -242,6 +253,7 @@ struct ath10k_fw_stats_pdev { - s32 phy_errs; - s32 phy_err_drop; - s32 mpdu_errs; -+ s32 rx_ovfl_errs; - }; - - struct ath10k_fw_stats { ---- a/drivers/net/wireless/ath/ath10k/wmi.c -+++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -2479,6 +2479,47 @@ void ath10k_wmi_pull_pdev_stats_tx(const - dst->txop_ovf = __le32_to_cpu(src->txop_ovf); - } - -+static void -+ath10k_wmi_10_4_pull_pdev_stats_tx(const struct wmi_10_4_pdev_stats_tx *src, -+ struct ath10k_fw_stats_pdev *dst) -+{ -+ dst->comp_queued = __le32_to_cpu(src->comp_queued); -+ dst->comp_delivered = __le32_to_cpu(src->comp_delivered); -+ dst->msdu_enqued = __le32_to_cpu(src->msdu_enqued); -+ dst->mpdu_enqued = __le32_to_cpu(src->mpdu_enqued); -+ dst->wmm_drop = __le32_to_cpu(src->wmm_drop); -+ dst->local_enqued = __le32_to_cpu(src->local_enqued); -+ dst->local_freed = __le32_to_cpu(src->local_freed); -+ dst->hw_queued = __le32_to_cpu(src->hw_queued); -+ dst->hw_reaped = __le32_to_cpu(src->hw_reaped); -+ dst->underrun = __le32_to_cpu(src->underrun); -+ dst->tx_abort = __le32_to_cpu(src->tx_abort); -+ dst->mpdus_requed = __le32_to_cpu(src->mpdus_requed); -+ dst->tx_ko = __le32_to_cpu(src->tx_ko); -+ dst->data_rc = __le32_to_cpu(src->data_rc); -+ dst->self_triggers = __le32_to_cpu(src->self_triggers); -+ dst->sw_retry_failure = __le32_to_cpu(src->sw_retry_failure); -+ dst->illgl_rate_phy_err = __le32_to_cpu(src->illgl_rate_phy_err); -+ dst->pdev_cont_xretry = __le32_to_cpu(src->pdev_cont_xretry); -+ dst->pdev_tx_timeout = __le32_to_cpu(src->pdev_tx_timeout); -+ dst->pdev_resets = __le32_to_cpu(src->pdev_resets); -+ dst->phy_underrun = __le32_to_cpu(src->phy_underrun); -+ dst->txop_ovf = __le32_to_cpu(src->txop_ovf); -+ dst->hw_paused = __le32_to_cpu(src->hw_paused); -+ dst->seq_posted = __le32_to_cpu(src->seq_posted); -+ dst->seq_failed_queueing = -+ __le32_to_cpu(src->seq_failed_queueing); -+ dst->seq_completed = __le32_to_cpu(src->seq_completed); -+ dst->seq_restarted = __le32_to_cpu(src->seq_restarted); -+ dst->mu_seq_posted = __le32_to_cpu(src->mu_seq_posted); -+ dst->mpdus_sw_flush = __le32_to_cpu(src->mpdus_sw_flush); -+ dst->mpdus_hw_filter = __le32_to_cpu(src->mpdus_hw_filter); -+ dst->mpdus_truncated = __le32_to_cpu(src->mpdus_truncated); -+ dst->mpdus_ack_failed = __le32_to_cpu(src->mpdus_ack_failed); -+ dst->mpdus_hw_filter = __le32_to_cpu(src->mpdus_hw_filter); -+ dst->mpdus_expired = __le32_to_cpu(src->mpdus_expired); -+} -+ - void ath10k_wmi_pull_pdev_stats_rx(const struct wmi_pdev_stats_rx *src, - struct ath10k_fw_stats_pdev *dst) - { -@@ -2789,6 +2830,86 @@ static int ath10k_wmi_10_2_4_op_pull_fw_ - return 0; - } - -+static int ath10k_wmi_10_4_op_pull_fw_stats(struct ath10k *ar, -+ struct sk_buff *skb, -+ struct ath10k_fw_stats *stats) -+{ -+ const struct wmi_10_2_stats_event *ev = (void *)skb->data; -+ u32 num_pdev_stats; -+ u32 num_pdev_ext_stats; -+ u32 num_vdev_stats; -+ u32 num_peer_stats; -+ int i; -+ -+ if (!skb_pull(skb, sizeof(*ev))) -+ return -EPROTO; -+ -+ num_pdev_stats = __le32_to_cpu(ev->num_pdev_stats); -+ num_pdev_ext_stats = __le32_to_cpu(ev->num_pdev_ext_stats); -+ num_vdev_stats = __le32_to_cpu(ev->num_vdev_stats); -+ num_peer_stats = __le32_to_cpu(ev->num_peer_stats); -+ -+ for (i = 0; i < num_pdev_stats; i++) { -+ const struct wmi_10_4_pdev_stats *src; -+ struct ath10k_fw_stats_pdev *dst; -+ -+ src = (void *)skb->data; -+ if (!skb_pull(skb, sizeof(*src))) -+ return -EPROTO; -+ -+ dst = kzalloc(sizeof(*dst), GFP_ATOMIC); -+ if (!dst) -+ continue; -+ -+ ath10k_wmi_pull_pdev_stats_base(&src->base, dst); -+ ath10k_wmi_10_4_pull_pdev_stats_tx(&src->tx, dst); -+ ath10k_wmi_pull_pdev_stats_rx(&src->rx, dst); -+ dst->rx_ovfl_errs = __le32_to_cpu(src->rx_ovfl_errs); -+ ath10k_wmi_pull_pdev_stats_extra(&src->extra, dst); -+ -+ list_add_tail(&dst->list, &stats->pdevs); -+ } -+ -+ for (i = 0; i < num_pdev_ext_stats; i++) { -+ const struct wmi_10_2_pdev_ext_stats *src; -+ -+ src = (void *)skb->data; -+ if (!skb_pull(skb, sizeof(*src))) -+ return -EPROTO; -+ -+ /* FIXME: expose values to userspace -+ * -+ * Note: Even though this loop seems to do nothing it is -+ * required to parse following sub-structures properly. -+ */ -+ } -+ -+ /* fw doesn't implement vdev stats */ -+ -+ for (i = 0; i < num_peer_stats; i++) { -+ const struct wmi_10_4_peer_stats *src; -+ struct ath10k_fw_stats_peer *dst; -+ -+ src = (void *)skb->data; -+ if (!skb_pull(skb, sizeof(*src))) -+ return -EPROTO; -+ -+ dst = kzalloc(sizeof(*dst), GFP_ATOMIC); -+ if (!dst) -+ continue; -+ -+ ether_addr_copy(dst->peer_macaddr, src->peer_macaddr.addr); -+ dst->peer_rssi = __le32_to_cpu(src->peer_rssi); -+ dst->peer_tx_rate = __le32_to_cpu(src->peer_tx_rate); -+ dst->peer_rx_rate = __le32_to_cpu(src->peer_rx_rate); -+ /* FIXME: expose 10.4 specific values */ -+ -+ list_add_tail(&dst->list, &stats->peers); -+ } -+ -+ return 0; -+} -+ - void ath10k_wmi_event_update_stats(struct ath10k *ar, struct sk_buff *skb) - { - ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_UPDATE_STATS_EVENTID\n"); -@@ -4935,6 +5056,9 @@ static void ath10k_wmi_10_4_op_rx(struct - ath10k_dbg(ar, ATH10K_DBG_WMI, - "received event id %d not implemented\n", id); - break; -+ case WMI_10_4_UPDATE_STATS_EVENTID: -+ ath10k_wmi_event_update_stats(ar, skb); -+ break; - default: - ath10k_warn(ar, "Unknown eventid: %d\n", id); - break; -@@ -7022,6 +7146,90 @@ ath10k_wmi_op_gen_pdev_enable_adaptive_c - return skb; - } - -+void ath10k_wmi_10_4_op_fw_stats_fill(struct ath10k *ar, -+ struct ath10k_fw_stats *fw_stats, -+ char *buf) -+{ -+ u32 len = 0; -+ u32 buf_len = ATH10K_FW_STATS_BUF_SIZE; -+ const struct ath10k_fw_stats_pdev *pdev; -+ const struct ath10k_fw_stats_vdev *vdev; -+ const struct ath10k_fw_stats_peer *peer; -+ size_t num_peers; -+ size_t num_vdevs; -+ -+ spin_lock_bh(&ar->data_lock); -+ -+ pdev = list_first_entry_or_null(&fw_stats->pdevs, -+ struct ath10k_fw_stats_pdev, list); -+ if (!pdev) { -+ ath10k_warn(ar, "failed to get pdev stats\n"); -+ goto unlock; -+ } -+ -+ num_peers = ath10k_wmi_fw_stats_num_peers(&fw_stats->peers); -+ num_vdevs = ath10k_wmi_fw_stats_num_vdevs(&fw_stats->vdevs); -+ -+ ath10k_wmi_fw_pdev_base_stats_fill(pdev, buf, &len); -+ ath10k_wmi_fw_pdev_extra_stats_fill(pdev, buf, &len); -+ ath10k_wmi_fw_pdev_tx_stats_fill(pdev, buf, &len); -+ -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "HW paused", pdev->hw_paused); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "Seqs posted", pdev->seq_posted); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "Seqs failed queueing", pdev->seq_failed_queueing); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "Seqs completed", pdev->seq_completed); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "Seqs restarted", pdev->seq_restarted); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "MU Seqs posted", pdev->mu_seq_posted); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "MPDUs SW flushed", pdev->mpdus_sw_flush); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "MPDUs HW filtered", pdev->mpdus_hw_filter); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "MPDUs truncated", pdev->mpdus_truncated); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "MPDUs receive no ACK", pdev->mpdus_ack_failed); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "MPDUs expired", pdev->mpdus_expired); -+ -+ ath10k_wmi_fw_pdev_rx_stats_fill(pdev, buf, &len); -+ len += scnprintf(buf + len, buf_len - len, "%30s %10d\n", -+ "Num Rx Overflow errors", pdev->rx_ovfl_errs); -+ -+ len += scnprintf(buf + len, buf_len - len, "\n"); -+ len += scnprintf(buf + len, buf_len - len, "%30s (%zu)\n", -+ "ath10k VDEV stats", num_vdevs); -+ len += scnprintf(buf + len, buf_len - len, "%30s\n\n", -+ "================="); -+ -+ list_for_each_entry(vdev, &fw_stats->vdevs, list) { -+ ath10k_wmi_fw_vdev_stats_fill(vdev, buf, &len); -+ } -+ -+ len += scnprintf(buf + len, buf_len - len, "\n"); -+ len += scnprintf(buf + len, buf_len - len, "%30s (%zu)\n", -+ "ath10k PEER stats", num_peers); -+ len += scnprintf(buf + len, buf_len - len, "%30s\n\n", -+ "================="); -+ -+ list_for_each_entry(peer, &fw_stats->peers, list) { -+ ath10k_wmi_fw_peer_stats_fill(peer, buf, &len); -+ } -+ -+unlock: -+ spin_unlock_bh(&ar->data_lock); -+ -+ if (len >= buf_len) -+ buf[len - 1] = 0; -+ else -+ buf[len] = 0; -+} -+ - static const struct wmi_ops wmi_ops = { - .rx = ath10k_wmi_op_rx, - .map_svc = wmi_main_svc_map, -@@ -7292,6 +7500,7 @@ static const struct wmi_ops wmi_10_4_ops - .rx = ath10k_wmi_10_4_op_rx, - .map_svc = wmi_10_4_svc_map, - -+ .pull_fw_stats = ath10k_wmi_10_4_op_pull_fw_stats, - .pull_scan = ath10k_wmi_op_pull_scan_ev, - .pull_mgmt_rx = ath10k_wmi_10_4_op_pull_mgmt_rx_ev, - .pull_ch_info = ath10k_wmi_10_4_op_pull_ch_info_ev, -@@ -7341,9 +7550,11 @@ static const struct wmi_ops wmi_10_4_ops - .gen_addba_send = ath10k_wmi_op_gen_addba_send, - .gen_addba_set_resp = ath10k_wmi_op_gen_addba_set_resp, - .gen_delba_send = ath10k_wmi_op_gen_delba_send, -+ .fw_stats_fill = ath10k_wmi_10_4_op_fw_stats_fill, - - /* shared with 10.2 */ - .gen_peer_assoc = ath10k_wmi_10_2_op_gen_peer_assoc, -+ .gen_request_stats = ath10k_wmi_op_gen_request_stats, - }; - - int ath10k_wmi_attach(struct ath10k *ar) ---- a/drivers/net/wireless/ath/ath10k/wmi.h -+++ b/drivers/net/wireless/ath/ath10k/wmi.h -@@ -3866,6 +3866,111 @@ struct wmi_pdev_stats_tx { - __le32 txop_ovf; - } __packed; - -+struct wmi_10_4_pdev_stats_tx { -+ /* Num HTT cookies queued to dispatch list */ -+ __le32 comp_queued; -+ -+ /* Num HTT cookies dispatched */ -+ __le32 comp_delivered; -+ -+ /* Num MSDU queued to WAL */ -+ __le32 msdu_enqued; -+ -+ /* Num MPDU queue to WAL */ -+ __le32 mpdu_enqued; -+ -+ /* Num MSDUs dropped by WMM limit */ -+ __le32 wmm_drop; -+ -+ /* Num Local frames queued */ -+ __le32 local_enqued; -+ -+ /* Num Local frames done */ -+ __le32 local_freed; -+ -+ /* Num queued to HW */ -+ __le32 hw_queued; -+ -+ /* Num PPDU reaped from HW */ -+ __le32 hw_reaped; -+ -+ /* Num underruns */ -+ __le32 underrun; -+ -+ /* HW Paused. */ -+ __le32 hw_paused; -+ -+ /* Num PPDUs cleaned up in TX abort */ -+ __le32 tx_abort; -+ -+ /* Num MPDUs requed by SW */ -+ __le32 mpdus_requed; -+ -+ /* excessive retries */ -+ __le32 tx_ko; -+ -+ /* data hw rate code */ -+ __le32 data_rc; -+ -+ /* Scheduler self triggers */ -+ __le32 self_triggers; -+ -+ /* frames dropped due to excessive sw retries */ -+ __le32 sw_retry_failure; -+ -+ /* illegal rate phy errors */ -+ __le32 illgl_rate_phy_err; -+ -+ /* wal pdev continuous xretry */ -+ __le32 pdev_cont_xretry; -+ -+ /* wal pdev tx timeouts */ -+ __le32 pdev_tx_timeout; -+ -+ /* wal pdev resets */ -+ __le32 pdev_resets; -+ -+ /* frames dropped due to non-availability of stateless TIDs */ -+ __le32 stateless_tid_alloc_failure; -+ -+ __le32 phy_underrun; -+ -+ /* MPDU is more than txop limit */ -+ __le32 txop_ovf; -+ -+ /* Number of Sequences posted */ -+ __le32 seq_posted; -+ -+ /* Number of Sequences failed queueing */ -+ __le32 seq_failed_queueing; -+ -+ /* Number of Sequences completed */ -+ __le32 seq_completed; -+ -+ /* Number of Sequences restarted */ -+ __le32 seq_restarted; -+ -+ /* Number of MU Sequences posted */ -+ __le32 mu_seq_posted; -+ -+ /* Num MPDUs flushed by SW, HWPAUSED,SW TXABORT(Reset,channel change) */ -+ __le32 mpdus_sw_flush; -+ -+ /* Num MPDUs filtered by HW, all filter condition (TTL expired) */ -+ __le32 mpdus_hw_filter; -+ -+ /* Num MPDUs truncated by PDG -+ * (TXOP, TBTT, PPDU_duration based on rate, dyn_bw) -+ */ -+ __le32 mpdus_truncated; -+ -+ /* Num MPDUs that was tried but didn't receive ACK or BA */ -+ __le32 mpdus_ack_failed; -+ -+ /* Num MPDUs that was dropped due to expiry. */ -+ __le32 mpdus_expired; -+} __packed; -+ - struct wmi_pdev_stats_rx { - /* Cnts any change in ring routing mid-ppdu */ - __le32 mid_ppdu_route_change; -@@ -4039,6 +4144,16 @@ struct wmi_10_2_pdev_stats { - struct wmi_pdev_stats_extra extra; - } __packed; - -+struct wmi_10_4_pdev_stats { -+ struct wmi_pdev_stats_base base; -+ struct wmi_10_4_pdev_stats_tx tx; -+ struct wmi_pdev_stats_rx rx; -+ __le32 rx_ovfl_errs; -+ struct wmi_pdev_stats_mem mem; -+ __le32 sram_free_size; -+ struct wmi_pdev_stats_extra extra; -+} __packed; -+ - /* - * VDEV statistics - * TODO: add all VDEV stats here -@@ -4080,6 +4195,23 @@ struct wmi_10_2_4_peer_stats { - __le32 unknown_value; /* FIXME: what is this word? */ - } __packed; - -+struct wmi_10_4_peer_stats { -+ struct wmi_mac_addr peer_macaddr; -+ __le32 peer_rssi; -+ __le32 peer_rssi_seq_num; -+ __le32 peer_tx_rate; -+ __le32 peer_rx_rate; -+ __le32 current_per; -+ __le32 retries; -+ __le32 tx_rate_count; -+ __le32 max_4ms_frame_len; -+ __le32 total_sub_frames; -+ __le32 tx_bytes; -+ __le32 num_pkt_loss_overflow[4]; -+ __le32 num_pkt_loss_excess_retry[4]; -+ __le32 peer_rssi_changed; -+} __packed; -+ - struct wmi_10_2_pdev_ext_stats { - __le32 rx_rssi_comb; - __le32 rx_rssi[4]; -@@ -6201,5 +6333,8 @@ void ath10k_wmi_10x_op_fw_stats_fill(str - char *buf); - size_t ath10k_wmi_fw_stats_num_peers(struct list_head *head); - size_t ath10k_wmi_fw_stats_num_vdevs(struct list_head *head); -+void ath10k_wmi_10_4_op_fw_stats_fill(struct ath10k *ar, -+ struct ath10k_fw_stats *fw_stats, -+ char *buf); - - #endif /* _WMI_H_ */ diff --git a/package/kernel/mac80211/patches/306-ath10k-use-local-memory-instead-of-shadow-descriptor.patch b/package/kernel/mac80211/patches/306-ath10k-use-local-memory-instead-of-shadow-descriptor.patch deleted file mode 100644 index 58db2b2996..0000000000 --- a/package/kernel/mac80211/patches/306-ath10k-use-local-memory-instead-of-shadow-descriptor.patch +++ /dev/null @@ -1,60 +0,0 @@ -From: Rajkumar Manoharan -Date: Fri, 23 Oct 2015 18:01:03 +0530 -Subject: [PATCH] ath10k: use local memory instead of shadow descriptor - in ce_send - -Currently to avoid uncached memory access while filling up copy engine -descriptors, shadow descriptors are used. This can be optimized further -by removing shadow descriptors. To achieve that first shadow ring -dependency in ce_send is removed by creating local copy of the -descriptor on stack and make a one-shot copy into the "uncached" -descriptor. - -Signed-off-by: Rajkumar Manoharan -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/ce.c -+++ b/drivers/net/wireless/ath/ath10k/ce.c -@@ -274,7 +274,7 @@ int ath10k_ce_send_nolock(struct ath10k_ - { - struct ath10k *ar = ce_state->ar; - struct ath10k_ce_ring *src_ring = ce_state->src_ring; -- struct ce_desc *desc, *sdesc; -+ struct ce_desc *desc, sdesc; - unsigned int nentries_mask = src_ring->nentries_mask; - unsigned int sw_index = src_ring->sw_index; - unsigned int write_index = src_ring->write_index; -@@ -294,7 +294,6 @@ int ath10k_ce_send_nolock(struct ath10k_ - - desc = CE_SRC_RING_TO_DESC(src_ring->base_addr_owner_space, - write_index); -- sdesc = CE_SRC_RING_TO_DESC(src_ring->shadow_base, write_index); - - desc_flags |= SM(transfer_id, CE_DESC_FLAGS_META_DATA); - -@@ -303,11 +302,11 @@ int ath10k_ce_send_nolock(struct ath10k_ - if (flags & CE_SEND_FLAG_BYTE_SWAP) - desc_flags |= CE_DESC_FLAGS_BYTE_SWAP; - -- sdesc->addr = __cpu_to_le32(buffer); -- sdesc->nbytes = __cpu_to_le16(nbytes); -- sdesc->flags = __cpu_to_le16(desc_flags); -+ sdesc.addr = __cpu_to_le32(buffer); -+ sdesc.nbytes = __cpu_to_le16(nbytes); -+ sdesc.flags = __cpu_to_le16(desc_flags); - -- *desc = *sdesc; -+ *desc = sdesc; - - src_ring->per_transfer_context[write_index] = per_transfer_context; - -@@ -614,7 +613,7 @@ int ath10k_ce_completed_send_next_nolock - if (read_index == sw_index) - return -EIO; - -- sbase = src_ring->shadow_base; -+ sbase = src_ring->base_addr_owner_space; - sdesc = CE_SRC_RING_TO_DESC(sbase, sw_index); - - /* Return data from completed source descriptor */ diff --git a/package/kernel/mac80211/patches/307-ath10k-remove-send-completion-validation-in-diag-rea.patch b/package/kernel/mac80211/patches/307-ath10k-remove-send-completion-validation-in-diag-rea.patch deleted file mode 100644 index a61a334f69..0000000000 --- a/package/kernel/mac80211/patches/307-ath10k-remove-send-completion-validation-in-diag-rea.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Rajkumar Manoharan -Date: Fri, 23 Oct 2015 18:01:04 +0530 -Subject: [PATCH] ath10k: remove send completion validation in diag - read/write - -CE diag window access is serialized (it has to be by design) so -there's no way to get a different send completion. so there's no -need for post completion validation. - -Signed-off-by: Rajkumar Manoharan -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/pci.c -+++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -920,16 +920,6 @@ static int ath10k_pci_diag_read_mem(stru - } - } - -- if (nbytes != completed_nbytes) { -- ret = -EIO; -- goto done; -- } -- -- if (buf != (u32)address) { -- ret = -EIO; -- goto done; -- } -- - i = 0; - while (ath10k_ce_completed_recv_next_nolock(ce_diag, NULL, &buf, - &completed_nbytes, -@@ -1094,16 +1084,6 @@ static int ath10k_pci_diag_write_mem(str - } - } - -- if (nbytes != completed_nbytes) { -- ret = -EIO; -- goto done; -- } -- -- if (buf != ce_data) { -- ret = -EIO; -- goto done; -- } -- - i = 0; - while (ath10k_ce_completed_recv_next_nolock(ce_diag, NULL, &buf, - &completed_nbytes, diff --git a/package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch b/package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch deleted file mode 100644 index e758665118..0000000000 --- a/package/kernel/mac80211/patches/308-ath10k-cleanup-copy-engine-send-completion.patch +++ /dev/null @@ -1,165 +0,0 @@ -From: Rajkumar Manoharan -Date: Fri, 23 Oct 2015 18:01:05 +0530 -Subject: [PATCH] ath10k: cleanup copy engine send completion - -The physical address necessary to unmap DMA ('bufferp') is stored -in ath10k_skb_cb as 'paddr'. ath10k doesn't rely on the meta/transfer_id -when handling send completion (htc ep id is stored in sk_buff control -buffer). So the unused output arguments {bufferp, nbytesp and transfer_idp} -are removed from CE send completion. This change is needed before removing -the shadow copy of copy engine (CE) descriptors in follow up patch. - -Signed-off-by: Rajkumar Manoharan -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/ce.c -+++ b/drivers/net/wireless/ath/ath10k/ce.c -@@ -578,17 +578,13 @@ int ath10k_ce_revoke_recv_next(struct at - * The caller takes responsibility for any necessary locking. - */ - int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp) -+ void **per_transfer_contextp) - { - struct ath10k_ce_ring *src_ring = ce_state->src_ring; - u32 ctrl_addr = ce_state->ctrl_addr; - struct ath10k *ar = ce_state->ar; - unsigned int nentries_mask = src_ring->nentries_mask; - unsigned int sw_index = src_ring->sw_index; -- struct ce_desc *sdesc, *sbase; - unsigned int read_index; - - if (src_ring->hw_index == sw_index) { -@@ -613,15 +609,6 @@ int ath10k_ce_completed_send_next_nolock - if (read_index == sw_index) - return -EIO; - -- sbase = src_ring->base_addr_owner_space; -- sdesc = CE_SRC_RING_TO_DESC(sbase, sw_index); -- -- /* Return data from completed source descriptor */ -- *bufferp = __le32_to_cpu(sdesc->addr); -- *nbytesp = __le16_to_cpu(sdesc->nbytes); -- *transfer_idp = MS(__le16_to_cpu(sdesc->flags), -- CE_DESC_FLAGS_META_DATA); -- - if (per_transfer_contextp) - *per_transfer_contextp = - src_ring->per_transfer_context[sw_index]; -@@ -696,10 +683,7 @@ int ath10k_ce_cancel_send_next(struct at - } - - int ath10k_ce_completed_send_next(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp) -+ void **per_transfer_contextp) - { - struct ath10k *ar = ce_state->ar; - struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); -@@ -707,9 +691,7 @@ int ath10k_ce_completed_send_next(struct - - spin_lock_bh(&ar_pci->ce_lock); - ret = ath10k_ce_completed_send_next_nolock(ce_state, -- per_transfer_contextp, -- bufferp, nbytesp, -- transfer_idp); -+ per_transfer_contextp); - spin_unlock_bh(&ar_pci->ce_lock); - - return ret; ---- a/drivers/net/wireless/ath/ath10k/ce.h -+++ b/drivers/net/wireless/ath/ath10k/ce.h -@@ -192,16 +192,10 @@ int ath10k_ce_completed_recv_next(struct - * Pops 1 completed send buffer from Source ring. - */ - int ath10k_ce_completed_send_next(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp); -+ void **per_transfer_contextp); - - int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state, -- void **per_transfer_contextp, -- u32 *bufferp, -- unsigned int *nbytesp, -- unsigned int *transfer_idp); -+ void **per_transfer_contextp); - - /*==================CE Engine Initialization=======================*/ - ---- a/drivers/net/wireless/ath/ath10k/pci.c -+++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -910,9 +910,8 @@ static int ath10k_pci_diag_read_mem(stru - goto done; - - i = 0; -- while (ath10k_ce_completed_send_next_nolock(ce_diag, NULL, &buf, -- &completed_nbytes, -- &id) != 0) { -+ while (ath10k_ce_completed_send_next_nolock(ce_diag, -+ NULL) != 0) { - mdelay(1); - if (i++ > DIAG_ACCESS_CE_TIMEOUT_MS) { - ret = -EBUSY; -@@ -1073,9 +1072,8 @@ static int ath10k_pci_diag_write_mem(str - goto done; - - i = 0; -- while (ath10k_ce_completed_send_next_nolock(ce_diag, NULL, &buf, -- &completed_nbytes, -- &id) != 0) { -+ while (ath10k_ce_completed_send_next_nolock(ce_diag, -+ NULL) != 0) { - mdelay(1); - - if (i++ > DIAG_ACCESS_CE_TIMEOUT_MS) { -@@ -1139,13 +1137,9 @@ static void ath10k_pci_htc_tx_cb(struct - struct ath10k *ar = ce_state->ar; - struct sk_buff_head list; - struct sk_buff *skb; -- u32 ce_data; -- unsigned int nbytes; -- unsigned int transfer_id; - - __skb_queue_head_init(&list); -- while (ath10k_ce_completed_send_next(ce_state, (void **)&skb, &ce_data, -- &nbytes, &transfer_id) == 0) { -+ while (ath10k_ce_completed_send_next(ce_state, (void **)&skb) == 0) { - /* no need to call tx completion for NULL pointers */ - if (skb == NULL) - continue; -@@ -1215,12 +1209,8 @@ static void ath10k_pci_htt_tx_cb(struct - { - struct ath10k *ar = ce_state->ar; - struct sk_buff *skb; -- u32 ce_data; -- unsigned int nbytes; -- unsigned int transfer_id; - -- while (ath10k_ce_completed_send_next(ce_state, (void **)&skb, &ce_data, -- &nbytes, &transfer_id) == 0) { -+ while (ath10k_ce_completed_send_next(ce_state, (void **)&skb) == 0) { - /* no need to call tx completion for NULL pointers */ - if (!skb) - continue; -@@ -1796,12 +1786,8 @@ err_dma: - static void ath10k_pci_bmi_send_done(struct ath10k_ce_pipe *ce_state) - { - struct bmi_xfer *xfer; -- u32 ce_data; -- unsigned int nbytes; -- unsigned int transfer_id; - -- if (ath10k_ce_completed_send_next(ce_state, (void **)&xfer, &ce_data, -- &nbytes, &transfer_id)) -+ if (ath10k_ce_completed_send_next(ce_state, (void **)&xfer)) - return; - - xfer->tx_done = true; diff --git a/package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch b/package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch deleted file mode 100644 index 5bd8833c80..0000000000 --- a/package/kernel/mac80211/patches/309-ath10k-remove-shadow-copy-of-CE-descriptors-for-sour.patch +++ /dev/null @@ -1,90 +0,0 @@ -From: Rajkumar Manoharan -Date: Fri, 23 Oct 2015 18:01:06 +0530 -Subject: [PATCH] ath10k: remove shadow copy of CE descriptors for source - ring - -For the messages from host to target, shadow copy of CE descriptors -are maintained in source ring. Before writing actual CE descriptor, -first shadow copy is filled and then it is copied to CE address space. -To optimize in download path and to reduce d-cache pressure, removing -shadow copy of CE descriptors. This will also reduce driver memory -consumption by 33KB during on device probing. - -Signed-off-by: Rajkumar Manoharan -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/ce.c -+++ b/drivers/net/wireless/ath/ath10k/ce.c -@@ -921,27 +921,6 @@ ath10k_ce_alloc_src_ring(struct ath10k * - src_ring->base_addr_ce_space_unaligned, - CE_DESC_RING_ALIGN); - -- /* -- * Also allocate a shadow src ring in regular -- * mem to use for faster access. -- */ -- src_ring->shadow_base_unaligned = -- kmalloc((nentries * sizeof(struct ce_desc) + -- CE_DESC_RING_ALIGN), GFP_KERNEL); -- if (!src_ring->shadow_base_unaligned) { -- dma_free_coherent(ar->dev, -- (nentries * sizeof(struct ce_desc) + -- CE_DESC_RING_ALIGN), -- src_ring->base_addr_owner_space, -- src_ring->base_addr_ce_space); -- kfree(src_ring); -- return ERR_PTR(-ENOMEM); -- } -- -- src_ring->shadow_base = PTR_ALIGN( -- src_ring->shadow_base_unaligned, -- CE_DESC_RING_ALIGN); -- - return src_ring; - } - -@@ -1120,7 +1099,6 @@ void ath10k_ce_free_pipe(struct ath10k * - struct ath10k_ce_pipe *ce_state = &ar_pci->ce_states[ce_id]; - - if (ce_state->src_ring) { -- kfree(ce_state->src_ring->shadow_base_unaligned); - dma_free_coherent(ar->dev, - (ce_state->src_ring->nentries * - sizeof(struct ce_desc) + ---- a/drivers/net/wireless/ath/ath10k/ce.h -+++ b/drivers/net/wireless/ath/ath10k/ce.h -@@ -100,12 +100,6 @@ struct ath10k_ce_ring { - - /* CE address space */ - u32 base_addr_ce_space; -- /* -- * Start of shadow copy of descriptors, within regular memory. -- * Aligned to descriptor-size boundary. -- */ -- void *shadow_base_unaligned; -- struct ce_desc *shadow_base; - - /* keep last */ - void *per_transfer_context[0]; ---- a/drivers/net/wireless/ath/ath10k/pci.c -+++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -1594,7 +1594,6 @@ static void ath10k_pci_tx_pipe_cleanup(s - struct ath10k_pci *ar_pci; - struct ath10k_ce_pipe *ce_pipe; - struct ath10k_ce_ring *ce_ring; -- struct ce_desc *ce_desc; - struct sk_buff *skb; - int i; - -@@ -1609,10 +1608,6 @@ static void ath10k_pci_tx_pipe_cleanup(s - if (!pci_pipe->buf_sz) - return; - -- ce_desc = ce_ring->shadow_base; -- if (WARN_ON(!ce_desc)) -- return; -- - for (i = 0; i < ce_ring->nentries; i++) { - skb = ce_ring->per_transfer_context[i]; - if (!skb) diff --git a/package/kernel/mac80211/patches/310-ath10k-remove-supported-chain-mask.patch b/package/kernel/mac80211/patches/310-ath10k-remove-supported-chain-mask.patch deleted file mode 100644 index cc79dd78cb..0000000000 --- a/package/kernel/mac80211/patches/310-ath10k-remove-supported-chain-mask.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Rajkumar Manoharan -Date: Tue, 27 Oct 2015 17:51:11 +0530 -Subject: [PATCH] ath10k: remove supported chain mask - -Removing supported chainmask fields as it can be always derived -from num_rf_chains. - -Signed-off-by: Rajkumar Manoharan -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/core.h -+++ b/drivers/net/wireless/ath/ath10k/core.h -@@ -745,8 +745,6 @@ struct ath10k { - int num_started_vdevs; - - /* Protected by conf-mutex */ -- u8 supp_tx_chainmask; -- u8 supp_rx_chainmask; - u8 cfg_tx_chainmask; - u8 cfg_rx_chainmask; - ---- a/drivers/net/wireless/ath/ath10k/mac.c -+++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -3736,13 +3736,8 @@ static int ath10k_get_antenna(struct iee - - mutex_lock(&ar->conf_mutex); - -- if (ar->cfg_tx_chainmask) { -- *tx_ant = ar->cfg_tx_chainmask; -- *rx_ant = ar->cfg_rx_chainmask; -- } else { -- *tx_ant = ar->supp_tx_chainmask; -- *rx_ant = ar->supp_rx_chainmask; -- } -+ *tx_ant = ar->cfg_tx_chainmask; -+ *rx_ant = ar->cfg_rx_chainmask; - - mutex_unlock(&ar->conf_mutex); - -@@ -3884,9 +3879,7 @@ static int ath10k_start(struct ieee80211 - } - } - -- if (ar->cfg_tx_chainmask) -- __ath10k_set_antenna(ar, ar->cfg_tx_chainmask, -- ar->cfg_rx_chainmask); -+ __ath10k_set_antenna(ar, ar->cfg_tx_chainmask, ar->cfg_rx_chainmask); - - /* - * By default FW set ARP frames ac to voice (6). In that case ARP -@@ -7169,8 +7162,8 @@ int ath10k_mac_register(struct ath10k *a - BIT(NL80211_IFTYPE_AP) | - BIT(NL80211_IFTYPE_MESH_POINT); - -- ar->hw->wiphy->available_antennas_rx = ar->supp_rx_chainmask; -- ar->hw->wiphy->available_antennas_tx = ar->supp_tx_chainmask; -+ ar->hw->wiphy->available_antennas_rx = ar->cfg_rx_chainmask; -+ ar->hw->wiphy->available_antennas_tx = ar->cfg_tx_chainmask; - - if (!test_bit(ATH10K_FW_FEATURE_NO_P2P, ar->fw_features)) - ar->hw->wiphy->interface_modes |= ---- a/drivers/net/wireless/ath/ath10k/wmi.c -+++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -4460,8 +4460,10 @@ static void ath10k_wmi_event_service_rea - ar->num_rf_chains = ar->max_spatial_stream; - } - -- ar->supp_tx_chainmask = (1 << ar->num_rf_chains) - 1; -- ar->supp_rx_chainmask = (1 << ar->num_rf_chains) - 1; -+ if (!ar->cfg_tx_chainmask) { -+ ar->cfg_tx_chainmask = (1 << ar->num_rf_chains) - 1; -+ ar->cfg_rx_chainmask = (1 << ar->num_rf_chains) - 1; -+ } - - if (strlen(ar->hw->wiphy->fw_version) == 0) { - snprintf(ar->hw->wiphy->fw_version, diff --git a/package/kernel/mac80211/patches/311-ath10k-fill-HT-VHT-MCS-rateset-only-for-configured-c.patch b/package/kernel/mac80211/patches/311-ath10k-fill-HT-VHT-MCS-rateset-only-for-configured-c.patch deleted file mode 100644 index b4ca9ca3ad..0000000000 --- a/package/kernel/mac80211/patches/311-ath10k-fill-HT-VHT-MCS-rateset-only-for-configured-c.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Rajkumar Manoharan -Date: Tue, 27 Oct 2015 17:51:12 +0530 -Subject: [PATCH] ath10k: fill HT/VHT MCS rateset only for configured - chainmask - -HT/VHT MCS rateset should be filled only for configured chainmask -rather that max supported chainmask. Fix that by checking configured -chainmask while filling HT/VHT MCS rate map. - -Signed-off-by: Rajkumar Manoharan -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/mac.c -+++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -6984,7 +6984,7 @@ static struct ieee80211_sta_vht_cap ath1 - - mcs_map = 0; - for (i = 0; i < 8; i++) { -- if (i < ar->num_rf_chains) -+ if ((i < ar->num_rf_chains) && (ar->cfg_tx_chainmask & BIT(i))) - mcs_map |= IEEE80211_VHT_MCS_SUPPORT_0_9 << (i*2); - else - mcs_map |= IEEE80211_VHT_MCS_NOT_SUPPORTED << (i*2); -@@ -7051,8 +7051,10 @@ static struct ieee80211_sta_ht_cap ath10 - if (ar->vht_cap_info & WMI_VHT_CAP_MAX_MPDU_LEN_MASK) - ht_cap.cap |= IEEE80211_HT_CAP_MAX_AMSDU; - -- for (i = 0; i < ar->num_rf_chains; i++) -- ht_cap.mcs.rx_mask[i] = 0xFF; -+ for (i = 0; i < ar->num_rf_chains; i++) { -+ if (ar->cfg_rx_chainmask & BIT(i)) -+ ht_cap.mcs.rx_mask[i] = 0xFF; -+ } - - ht_cap.mcs.tx_params |= IEEE80211_HT_MCS_TX_DEFINED; - diff --git a/package/kernel/mac80211/patches/312-ath10k-move-static-HT-VHT-capability-setup-functions.patch b/package/kernel/mac80211/patches/312-ath10k-move-static-HT-VHT-capability-setup-functions.patch deleted file mode 100644 index ea79b1a6f0..0000000000 --- a/package/kernel/mac80211/patches/312-ath10k-move-static-HT-VHT-capability-setup-functions.patch +++ /dev/null @@ -1,314 +0,0 @@ -From: Rajkumar Manoharan -Date: Tue, 27 Oct 2015 17:51:13 +0530 -Subject: [PATCH] ath10k: move static HT/VHT capability setup functions - -Move HT and VHT capabiltity setup static functions to avoid -forward declaration. - -Signed-off-by: Rajkumar Manoharan -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath10k/mac.c -+++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -3757,6 +3757,146 @@ static void ath10k_check_chain_mask(stru - dbg, cm); - } - -+static int ath10k_mac_get_vht_cap_bf_sts(struct ath10k *ar) -+{ -+ int nsts = ar->vht_cap_info; -+ -+ nsts &= IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; -+ nsts >>= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; -+ -+ /* If firmware does not deliver to host number of space-time -+ * streams supported, assume it support up to 4 BF STS and return -+ * the value for VHT CAP: nsts-1) -+ */ -+ if (nsts == 0) -+ return 3; -+ -+ return nsts; -+} -+ -+static int ath10k_mac_get_vht_cap_bf_sound_dim(struct ath10k *ar) -+{ -+ int sound_dim = ar->vht_cap_info; -+ -+ sound_dim &= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK; -+ sound_dim >>= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT; -+ -+ /* If the sounding dimension is not advertised by the firmware, -+ * let's use a default value of 1 -+ */ -+ if (sound_dim == 0) -+ return 1; -+ -+ return sound_dim; -+} -+ -+static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar) -+{ -+ struct ieee80211_sta_vht_cap vht_cap = {0}; -+ u16 mcs_map; -+ u32 val; -+ int i; -+ -+ vht_cap.vht_supported = 1; -+ vht_cap.cap = ar->vht_cap_info; -+ -+ if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE | -+ IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE)) { -+ val = ath10k_mac_get_vht_cap_bf_sts(ar); -+ val <<= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; -+ val &= IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; -+ -+ vht_cap.cap |= val; -+ } -+ -+ if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE | -+ IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE)) { -+ val = ath10k_mac_get_vht_cap_bf_sound_dim(ar); -+ val <<= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT; -+ val &= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK; -+ -+ vht_cap.cap |= val; -+ } -+ -+ mcs_map = 0; -+ for (i = 0; i < 8; i++) { -+ if ((i < ar->num_rf_chains) && (ar->cfg_tx_chainmask & BIT(i))) -+ mcs_map |= IEEE80211_VHT_MCS_SUPPORT_0_9 << (i * 2); -+ else -+ mcs_map |= IEEE80211_VHT_MCS_NOT_SUPPORTED << (i * 2); -+ } -+ -+ vht_cap.vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map); -+ vht_cap.vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map); -+ -+ return vht_cap; -+} -+ -+static struct ieee80211_sta_ht_cap ath10k_get_ht_cap(struct ath10k *ar) -+{ -+ int i; -+ struct ieee80211_sta_ht_cap ht_cap = {0}; -+ -+ if (!(ar->ht_cap_info & WMI_HT_CAP_ENABLED)) -+ return ht_cap; -+ -+ ht_cap.ht_supported = 1; -+ ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; -+ ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_8; -+ ht_cap.cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40; -+ ht_cap.cap |= IEEE80211_HT_CAP_DSSSCCK40; -+ ht_cap.cap |= WLAN_HT_CAP_SM_PS_STATIC << IEEE80211_HT_CAP_SM_PS_SHIFT; -+ -+ if (ar->ht_cap_info & WMI_HT_CAP_HT20_SGI) -+ ht_cap.cap |= IEEE80211_HT_CAP_SGI_20; -+ -+ if (ar->ht_cap_info & WMI_HT_CAP_HT40_SGI) -+ ht_cap.cap |= IEEE80211_HT_CAP_SGI_40; -+ -+ if (ar->ht_cap_info & WMI_HT_CAP_DYNAMIC_SMPS) { -+ u32 smps; -+ -+ smps = WLAN_HT_CAP_SM_PS_DYNAMIC; -+ smps <<= IEEE80211_HT_CAP_SM_PS_SHIFT; -+ -+ ht_cap.cap |= smps; -+ } -+ -+ if (ar->ht_cap_info & WMI_HT_CAP_TX_STBC) -+ ht_cap.cap |= IEEE80211_HT_CAP_TX_STBC; -+ -+ if (ar->ht_cap_info & WMI_HT_CAP_RX_STBC) { -+ u32 stbc; -+ -+ stbc = ar->ht_cap_info; -+ stbc &= WMI_HT_CAP_RX_STBC; -+ stbc >>= WMI_HT_CAP_RX_STBC_MASK_SHIFT; -+ stbc <<= IEEE80211_HT_CAP_RX_STBC_SHIFT; -+ stbc &= IEEE80211_HT_CAP_RX_STBC; -+ -+ ht_cap.cap |= stbc; -+ } -+ -+ if (ar->ht_cap_info & WMI_HT_CAP_LDPC) -+ ht_cap.cap |= IEEE80211_HT_CAP_LDPC_CODING; -+ -+ if (ar->ht_cap_info & WMI_HT_CAP_L_SIG_TXOP_PROT) -+ ht_cap.cap |= IEEE80211_HT_CAP_LSIG_TXOP_PROT; -+ -+ /* max AMSDU is implicitly taken from vht_cap_info */ -+ if (ar->vht_cap_info & WMI_VHT_CAP_MAX_MPDU_LEN_MASK) -+ ht_cap.cap |= IEEE80211_HT_CAP_MAX_AMSDU; -+ -+ for (i = 0; i < ar->num_rf_chains; i++) { -+ if (ar->cfg_rx_chainmask & BIT(i)) -+ ht_cap.mcs.rx_mask[i] = 0xFF; -+ } -+ -+ ht_cap.mcs.tx_params |= IEEE80211_HT_MCS_TX_DEFINED; -+ -+ return ht_cap; -+} -+ - static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant) - { - int ret; -@@ -4068,39 +4208,6 @@ static u32 get_nss_from_chainmask(u16 ch - return 1; - } - --static int ath10k_mac_get_vht_cap_bf_sts(struct ath10k *ar) --{ -- int nsts = ar->vht_cap_info; -- -- nsts &= IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; -- nsts >>= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; -- -- /* If firmware does not deliver to host number of space-time -- * streams supported, assume it support up to 4 BF STS and return -- * the value for VHT CAP: nsts-1) -- * */ -- if (nsts == 0) -- return 3; -- -- return nsts; --} -- --static int ath10k_mac_get_vht_cap_bf_sound_dim(struct ath10k *ar) --{ -- int sound_dim = ar->vht_cap_info; -- -- sound_dim &= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK; -- sound_dim >>= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT; -- -- /* If the sounding dimension is not advertised by the firmware, -- * let's use a default value of 1 -- */ -- if (sound_dim == 0) -- return 1; -- -- return sound_dim; --} -- - static int ath10k_mac_set_txbf_conf(struct ath10k_vif *arvif) - { - u32 value = 0; -@@ -6954,113 +7061,6 @@ static const struct ieee80211_iface_comb - }, - }; - --static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar) --{ -- struct ieee80211_sta_vht_cap vht_cap = {0}; -- u16 mcs_map; -- u32 val; -- int i; -- -- vht_cap.vht_supported = 1; -- vht_cap.cap = ar->vht_cap_info; -- -- if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE | -- IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE)) { -- val = ath10k_mac_get_vht_cap_bf_sts(ar); -- val <<= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; -- val &= IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; -- -- vht_cap.cap |= val; -- } -- -- if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE | -- IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE)) { -- val = ath10k_mac_get_vht_cap_bf_sound_dim(ar); -- val <<= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT; -- val &= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK; -- -- vht_cap.cap |= val; -- } -- -- mcs_map = 0; -- for (i = 0; i < 8; i++) { -- if ((i < ar->num_rf_chains) && (ar->cfg_tx_chainmask & BIT(i))) -- mcs_map |= IEEE80211_VHT_MCS_SUPPORT_0_9 << (i*2); -- else -- mcs_map |= IEEE80211_VHT_MCS_NOT_SUPPORTED << (i*2); -- } -- -- vht_cap.vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map); -- vht_cap.vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map); -- -- return vht_cap; --} -- --static struct ieee80211_sta_ht_cap ath10k_get_ht_cap(struct ath10k *ar) --{ -- int i; -- struct ieee80211_sta_ht_cap ht_cap = {0}; -- -- if (!(ar->ht_cap_info & WMI_HT_CAP_ENABLED)) -- return ht_cap; -- -- ht_cap.ht_supported = 1; -- ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; -- ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_8; -- ht_cap.cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40; -- ht_cap.cap |= IEEE80211_HT_CAP_DSSSCCK40; -- ht_cap.cap |= WLAN_HT_CAP_SM_PS_STATIC << IEEE80211_HT_CAP_SM_PS_SHIFT; -- -- if (ar->ht_cap_info & WMI_HT_CAP_HT20_SGI) -- ht_cap.cap |= IEEE80211_HT_CAP_SGI_20; -- -- if (ar->ht_cap_info & WMI_HT_CAP_HT40_SGI) -- ht_cap.cap |= IEEE80211_HT_CAP_SGI_40; -- -- if (ar->ht_cap_info & WMI_HT_CAP_DYNAMIC_SMPS) { -- u32 smps; -- -- smps = WLAN_HT_CAP_SM_PS_DYNAMIC; -- smps <<= IEEE80211_HT_CAP_SM_PS_SHIFT; -- -- ht_cap.cap |= smps; -- } -- -- if (ar->ht_cap_info & WMI_HT_CAP_TX_STBC) -- ht_cap.cap |= IEEE80211_HT_CAP_TX_STBC; -- -- if (ar->ht_cap_info & WMI_HT_CAP_RX_STBC) { -- u32 stbc; -- -- stbc = ar->ht_cap_info; -- stbc &= WMI_HT_CAP_RX_STBC; -- stbc >>= WMI_HT_CAP_RX_STBC_MASK_SHIFT; -- stbc <<= IEEE80211_HT_CAP_RX_STBC_SHIFT; -- stbc &= IEEE80211_HT_CAP_RX_STBC; -- -- ht_cap.cap |= stbc; -- } -- -- if (ar->ht_cap_info & WMI_HT_CAP_LDPC) -- ht_cap.cap |= IEEE80211_HT_CAP_LDPC_CODING; -- -- if (ar->ht_cap_info & WMI_HT_CAP_L_SIG_TXOP_PROT) -- ht_cap.cap |= IEEE80211_HT_CAP_LSIG_TXOP_PROT; -- -- /* max AMSDU is implicitly taken from vht_cap_info */ -- if (ar->vht_cap_info & WMI_VHT_CAP_MAX_MPDU_LEN_MASK) -- ht_cap.cap |= IEEE80211_HT_CAP_MAX_AMSDU; -- -- for (i = 0; i < ar->num_rf_chains; i++) { -- if (ar->cfg_rx_chainmask & BIT(i)) -- ht_cap.mcs.rx_mask[i] = 0xFF; -- } -- -- ht_cap.mcs.tx_params |= IEEE80211_HT_MCS_TX_DEFINED; -- -- return ht_cap; --} -- - static void ath10k_get_arvif_iter(void *data, u8 *mac, - struct ieee80211_vif *vif) - { diff --git a/package/kernel/mac80211/patches/313-mac80211-fix-crash-on-mesh-local-link-ID-generation-.patch b/package/kernel/mac80211/patches/313-mac80211-fix-crash-on-mesh-local-link-ID-generation-.patch deleted file mode 100644 index 7424ca43e2..0000000000 --- a/package/kernel/mac80211/patches/313-mac80211-fix-crash-on-mesh-local-link-ID-generation-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From: Matthias Schiffer -Date: Sat, 24 Oct 2015 21:25:51 +0200 -Subject: [PATCH] mac80211: fix crash on mesh local link ID generation with - VIFs - -llid_in_use needs to be limited to stations of the same VIF, otherwise it -will cause a NULL deref as the sta_info of non-mesh-VIFs don't have -sta->mesh set. - -Steps to reproduce: - - modprobe mac80211_hwsim channels=2 - iw phy phy0 interface add ibss0 type ibss - iw phy phy0 interface add mesh0 type mp - iw phy phy1 interface add ibss1 type ibss - iw phy phy1 interface add mesh1 type mp - ip link set ibss0 up - ip link set mesh0 up - ip link set ibss1 up - ip link set mesh1 up - iw dev ibss0 ibss join foo 2412 - iw dev ibss1 ibss join foo 2412 - # Ensure that ibss0 and ibss1 are actually associated; I often need to - # leave and join the cell on ibss1 a second time. - iw dev mesh0 mesh join bar - iw dev mesh1 mesh join bar # crash - -Signed-off-by: Matthias Schiffer ---- - ---- a/net/mac80211/mesh_plink.c -+++ b/net/mac80211/mesh_plink.c -@@ -686,6 +686,9 @@ static bool llid_in_use(struct ieee80211 - - rcu_read_lock(); - list_for_each_entry_rcu(sta, &local->sta_list, list) { -+ if (sdata != sta->sdata) -+ continue; -+ - if (!memcmp(&sta->mesh->llid, &llid, sizeof(llid))) { - in_use = true; - break; diff --git a/package/kernel/mac80211/patches/314-mac80211-don-t-advertise-NL80211_FEATURE_FULL_AP_CLI.patch b/package/kernel/mac80211/patches/314-mac80211-don-t-advertise-NL80211_FEATURE_FULL_AP_CLI.patch deleted file mode 100644 index 7f6e9c89bd..0000000000 --- a/package/kernel/mac80211/patches/314-mac80211-don-t-advertise-NL80211_FEATURE_FULL_AP_CLI.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Johannes Berg -Date: Wed, 4 Nov 2015 14:09:02 +0100 -Subject: [PATCH] mac80211: don't advertise - NL80211_FEATURE_FULL_AP_CLIENT_STATE - -For now, this feature doesn't actually work. To avoid shipping a -kernel that has it enabled but where it can't be used disable it -for now - we can re-enable it when it's fixed. - -This partially reverts 44674d9c2267 ("mac80211: advertise support -for full station state in AP mode"). - -Cc: Ayala Beker -Signed-off-by: Johannes Berg ---- - ---- a/net/mac80211/main.c -+++ b/net/mac80211/main.c -@@ -541,8 +541,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ - NL80211_FEATURE_HT_IBSS | - NL80211_FEATURE_VIF_TXPOWER | - NL80211_FEATURE_MAC_ON_CREATE | -- NL80211_FEATURE_USERSPACE_MPM | -- NL80211_FEATURE_FULL_AP_CLIENT_STATE; -+ NL80211_FEATURE_USERSPACE_MPM; - - if (!ops->hw_scan) - wiphy->features |= NL80211_FEATURE_LOW_PRIORITY_SCAN | diff --git a/package/kernel/mac80211/patches/315-ssb-pick-PCMCIA-host-code-support-from-b43-driver.patch b/package/kernel/mac80211/patches/315-ssb-pick-PCMCIA-host-code-support-from-b43-driver.patch deleted file mode 100644 index 64601ddf45..0000000000 --- a/package/kernel/mac80211/patches/315-ssb-pick-PCMCIA-host-code-support-from-b43-driver.patch +++ /dev/null @@ -1,485 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Thu, 15 Oct 2015 07:23:25 +0200 -Subject: [PATCH] ssb: pick PCMCIA host code support from b43 driver -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -ssb bus can be found on various "host" devices like PCI/PCMCIA/SDIO. -Every ssb bus contains cores AKA devices. -The main idea is to have ssb driver scan/initialize bus and register -ready-to-use cores. This way ssb drivers can operate on a single core -mostly ignoring underlaying details. - -For some reason PCMCIA support was split between ssb and b43. We got -PCMCIA host device probing in b43, then bus scanning in ssb and then -wireless core probing back in b43. The truth is it's very unlikely we -will ever see PCMCIA ssb device with no 802.11 core but I still don't -see any advantage of the current architecture. - -With proposed change we get the same functionality with a simpler -architecture, less Kconfig symbols, one killed EXPORT and hopefully -cleaner b43. Since b43 supports both: ssb & bcma I prefer to keep ssb -specific code in ssb driver. - -This mostly moves code from b43's pcmcia.c to bridge_pcmcia_80211.c. We -already use similar solution with b43_pci_bridge.c. I didn't use "b43" -in name of this new file as in theory any driver can operate on wireless -core. - -Signed-off-by: Rafał Miłecki -Signed-off-by: Kalle Valo ---- - delete mode 100644 drivers/net/wireless/b43/pcmcia.c - delete mode 100644 drivers/net/wireless/b43/pcmcia.h - create mode 100644 drivers/ssb/bridge_pcmcia_80211.c - ---- a/drivers/net/wireless/b43/Kconfig -+++ b/drivers/net/wireless/b43/Kconfig -@@ -72,26 +72,6 @@ config B43_PCICORE_AUTOSELECT - select SSB_DRIVER_PCICORE - default y - --config B43_PCMCIA -- bool "Broadcom 43xx PCMCIA device support" -- depends on B43 && B43_SSB && SSB_PCMCIAHOST_POSSIBLE -- select SSB_PCMCIAHOST -- ---help--- -- Broadcom 43xx PCMCIA device support. -- -- Support for 16bit PCMCIA devices. -- Please note that most PC-CARD devices are _NOT_ 16bit PCMCIA -- devices, but 32bit CardBUS devices. CardBUS devices are supported -- out of the box by b43. -- -- With this config option you can drive b43 cards in -- CompactFlash formfactor in a PCMCIA adaptor. -- CF b43 cards can sometimes be found in handheld PCs. -- -- It's safe to select Y here, even if you don't have a B43 PCMCIA device. -- -- If unsure, say N. -- - config B43_SDIO - bool "Broadcom 43xx SDIO device support" - depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE ---- a/drivers/net/wireless/b43/Makefile -+++ b/drivers/net/wireless/b43/Makefile -@@ -21,7 +21,6 @@ b43-y += pio.o - b43-y += rfkill.o - b43-y += ppr.o - b43-$(CPTCFG_B43_LEDS) += leds.o --b43-$(CPTCFG_B43_PCMCIA) += pcmcia.o - b43-$(CPTCFG_B43_SDIO) += sdio.o - b43-$(CPTCFG_B43_DEBUG) += debugfs.o - ---- a/drivers/net/wireless/b43/main.c -+++ b/drivers/net/wireless/b43/main.c -@@ -56,7 +56,6 @@ - #include "sysfs.h" - #include "xmit.h" - #include "lo.h" --#include "pcmcia.h" - #include "sdio.h" - #include - -@@ -5850,12 +5849,9 @@ static int __init b43_init(void) - int err; - - b43_debugfs_init(); -- err = b43_pcmcia_init(); -- if (err) -- goto err_dfs_exit; - err = b43_sdio_init(); - if (err) -- goto err_pcmcia_exit; -+ goto err_dfs_exit; - #ifdef CPTCFG_B43_BCMA - err = bcma_driver_register(&b43_bcma_driver); - if (err) -@@ -5878,8 +5874,6 @@ err_bcma_driver_exit: - err_sdio_exit: - #endif - b43_sdio_exit(); --err_pcmcia_exit: -- b43_pcmcia_exit(); - err_dfs_exit: - b43_debugfs_exit(); - return err; -@@ -5894,7 +5888,6 @@ static void __exit b43_exit(void) - bcma_driver_unregister(&b43_bcma_driver); - #endif - b43_sdio_exit(); -- b43_pcmcia_exit(); - b43_debugfs_exit(); - } - ---- a/drivers/net/wireless/b43/pcmcia.h -+++ /dev/null -@@ -1,20 +0,0 @@ --#ifndef B43_PCMCIA_H_ --#define B43_PCMCIA_H_ -- --#ifdef CPTCFG_B43_PCMCIA -- --int b43_pcmcia_init(void); --void b43_pcmcia_exit(void); -- --#else /* CPTCFG_B43_PCMCIA */ -- --static inline int b43_pcmcia_init(void) --{ -- return 0; --} --static inline void b43_pcmcia_exit(void) --{ --} -- --#endif /* CPTCFG_B43_PCMCIA */ --#endif /* B43_PCMCIA_H_ */ ---- a/drivers/ssb/Makefile -+++ b/drivers/ssb/Makefile -@@ -5,7 +5,7 @@ ssb-$(CPTCFG_SSB_SPROM) += sprom.o - - # host support - ssb-$(CPTCFG_SSB_PCIHOST) += pci.o pcihost_wrapper.o --ssb-$(CPTCFG_SSB_PCMCIAHOST) += pcmcia.o -+ssb-$(CPTCFG_SSB_PCMCIAHOST) += pcmcia.o bridge_pcmcia_80211.o - ssb-$(CPTCFG_SSB_SDIOHOST) += sdio.o - - # built-in drivers ---- /dev/null -+++ b/drivers/ssb/bridge_pcmcia_80211.c -@@ -0,0 +1,128 @@ -+/* -+ * Broadcom 43xx PCMCIA-SSB bridge module -+ * -+ * Copyright (c) 2007 Michael Buesch -+ * -+ * Licensed under the GNU/GPL. See COPYING for details. -+ */ -+ -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "ssb_private.h" -+ -+static const struct pcmcia_device_id ssb_host_pcmcia_tbl[] = { -+ PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x448), -+ PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x476), -+ PCMCIA_DEVICE_NULL, -+}; -+ -+MODULE_DEVICE_TABLE(pcmcia, ssb_host_pcmcia_tbl); -+ -+static int ssb_host_pcmcia_probe(struct pcmcia_device *dev) -+{ -+ struct ssb_bus *ssb; -+ int err = -ENOMEM; -+ int res = 0; -+ -+ ssb = kzalloc(sizeof(*ssb), GFP_KERNEL); -+ if (!ssb) -+ goto out_error; -+ -+ err = -ENODEV; -+ -+ dev->config_flags |= CONF_ENABLE_IRQ; -+ -+ dev->resource[2]->flags |= WIN_ENABLE | WIN_DATA_WIDTH_16 | -+ WIN_USE_WAIT; -+ dev->resource[2]->start = 0; -+ dev->resource[2]->end = SSB_CORE_SIZE; -+ res = pcmcia_request_window(dev, dev->resource[2], 250); -+ if (res != 0) -+ goto err_kfree_ssb; -+ -+ res = pcmcia_map_mem_page(dev, dev->resource[2], 0); -+ if (res != 0) -+ goto err_disable; -+ -+ if (!dev->irq) -+ goto err_disable; -+ -+ res = pcmcia_enable_device(dev); -+ if (res != 0) -+ goto err_disable; -+ -+ err = ssb_bus_pcmciabus_register(ssb, dev, dev->resource[2]->start); -+ if (err) -+ goto err_disable; -+ dev->priv = ssb; -+ -+ return 0; -+ -+err_disable: -+ pcmcia_disable_device(dev); -+err_kfree_ssb: -+ kfree(ssb); -+out_error: -+ ssb_err("Initialization failed (%d, %d)\n", res, err); -+ return err; -+} -+ -+static void ssb_host_pcmcia_remove(struct pcmcia_device *dev) -+{ -+ struct ssb_bus *ssb = dev->priv; -+ -+ ssb_bus_unregister(ssb); -+ pcmcia_disable_device(dev); -+ kfree(ssb); -+ dev->priv = NULL; -+} -+ -+#ifdef CPTCFG_PM -+static int ssb_host_pcmcia_suspend(struct pcmcia_device *dev) -+{ -+ struct ssb_bus *ssb = dev->priv; -+ -+ return ssb_bus_suspend(ssb); -+} -+ -+static int ssb_host_pcmcia_resume(struct pcmcia_device *dev) -+{ -+ struct ssb_bus *ssb = dev->priv; -+ -+ return ssb_bus_resume(ssb); -+} -+#else /* CPTCFG_PM */ -+# define ssb_host_pcmcia_suspend NULL -+# define ssb_host_pcmcia_resume NULL -+#endif /* CPTCFG_PM */ -+ -+static struct pcmcia_driver ssb_host_pcmcia_driver = { -+ .owner = THIS_MODULE, -+ .name = "ssb-pcmcia", -+ .id_table = ssb_host_pcmcia_tbl, -+ .probe = ssb_host_pcmcia_probe, -+ .remove = ssb_host_pcmcia_remove, -+ .suspend = ssb_host_pcmcia_suspend, -+ .resume = ssb_host_pcmcia_resume, -+}; -+ -+/* -+ * These are not module init/exit functions! -+ * The module_pcmcia_driver() helper cannot be used here. -+ */ -+int ssb_host_pcmcia_init(void) -+{ -+ return pcmcia_register_driver(&ssb_host_pcmcia_driver); -+} -+ -+void ssb_host_pcmcia_exit(void) -+{ -+ pcmcia_unregister_driver(&ssb_host_pcmcia_driver); -+} ---- a/drivers/ssb/main.c -+++ b/drivers/ssb/main.c -@@ -906,7 +906,6 @@ int ssb_bus_pcmciabus_register(struct ss - - return err; - } --EXPORT_SYMBOL(ssb_bus_pcmciabus_register); - #endif /* CPTCFG_SSB_PCMCIAHOST */ - - #ifdef CPTCFG_SSB_SDIOHOST -@@ -1474,6 +1473,12 @@ static int __init ssb_modinit(void) - /* don't fail SSB init because of this */ - err = 0; - } -+ err = ssb_host_pcmcia_init(); -+ if (err) { -+ ssb_err("PCMCIA host initialization failed\n"); -+ /* don't fail SSB init because of this */ -+ err = 0; -+ } - err = ssb_gige_init(); - if (err) { - ssb_err("SSB Broadcom Gigabit Ethernet driver initialization failed\n"); -@@ -1491,6 +1496,7 @@ fs_initcall(ssb_modinit); - static void __exit ssb_modexit(void) - { - ssb_gige_exit(); -+ ssb_host_pcmcia_exit(); - b43_pci_ssb_bridge_exit(); - bus_unregister(&ssb_bustype); - } ---- a/drivers/ssb/ssb_private.h -+++ b/drivers/ssb/ssb_private.h -@@ -94,6 +94,8 @@ extern int ssb_pcmcia_get_invariants(str - extern int ssb_pcmcia_hardware_setup(struct ssb_bus *bus); - extern void ssb_pcmcia_exit(struct ssb_bus *bus); - extern int ssb_pcmcia_init(struct ssb_bus *bus); -+extern int ssb_host_pcmcia_init(void); -+extern void ssb_host_pcmcia_exit(void); - extern const struct ssb_bus_ops ssb_pcmcia_ops; - #else /* CPTCFG_SSB_PCMCIAHOST */ - static inline int ssb_pcmcia_switch_coreidx(struct ssb_bus *bus, -@@ -117,6 +119,13 @@ static inline int ssb_pcmcia_init(struct - { - return 0; - } -+static inline int ssb_host_pcmcia_init(void) -+{ -+ return 0; -+} -+static inline void ssb_host_pcmcia_exit(void) -+{ -+} - #endif /* CPTCFG_SSB_PCMCIAHOST */ - - /* sdio.c */ ---- a/drivers/net/wireless/b43/pcmcia.c -+++ /dev/null -@@ -1,145 +0,0 @@ --/* -- -- Broadcom B43 wireless driver -- -- Copyright (c) 2007 Michael Buesch -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; see the file COPYING. If not, write to -- the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor, -- Boston, MA 02110-1301, USA. -- --*/ -- --#include "pcmcia.h" -- --#include --#include --#include -- --#include --#include --#include --#include -- -- --static const struct pcmcia_device_id b43_pcmcia_tbl[] = { -- PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x448), -- PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x476), -- PCMCIA_DEVICE_NULL, --}; -- --MODULE_DEVICE_TABLE(pcmcia, b43_pcmcia_tbl); -- --#ifdef CONFIG_PM --static int b43_pcmcia_suspend(struct pcmcia_device *dev) --{ -- struct ssb_bus *ssb = dev->priv; -- -- return ssb_bus_suspend(ssb); --} -- --static int b43_pcmcia_resume(struct pcmcia_device *dev) --{ -- struct ssb_bus *ssb = dev->priv; -- -- return ssb_bus_resume(ssb); --} --#else /* CONFIG_PM */ --# define b43_pcmcia_suspend NULL --# define b43_pcmcia_resume NULL --#endif /* CONFIG_PM */ -- --static int b43_pcmcia_probe(struct pcmcia_device *dev) --{ -- struct ssb_bus *ssb; -- int err = -ENOMEM; -- int res = 0; -- -- ssb = kzalloc(sizeof(*ssb), GFP_KERNEL); -- if (!ssb) -- goto out_error; -- -- err = -ENODEV; -- -- dev->config_flags |= CONF_ENABLE_IRQ; -- -- dev->resource[2]->flags |= WIN_ENABLE | WIN_DATA_WIDTH_16 | -- WIN_USE_WAIT; -- dev->resource[2]->start = 0; -- dev->resource[2]->end = SSB_CORE_SIZE; -- res = pcmcia_request_window(dev, dev->resource[2], 250); -- if (res != 0) -- goto err_kfree_ssb; -- -- res = pcmcia_map_mem_page(dev, dev->resource[2], 0); -- if (res != 0) -- goto err_disable; -- -- if (!dev->irq) -- goto err_disable; -- -- res = pcmcia_enable_device(dev); -- if (res != 0) -- goto err_disable; -- -- err = ssb_bus_pcmciabus_register(ssb, dev, dev->resource[2]->start); -- if (err) -- goto err_disable; -- dev->priv = ssb; -- -- return 0; -- --err_disable: -- pcmcia_disable_device(dev); --err_kfree_ssb: -- kfree(ssb); --out_error: -- printk(KERN_ERR "b43-pcmcia: Initialization failed (%d, %d)\n", -- res, err); -- return err; --} -- --static void b43_pcmcia_remove(struct pcmcia_device *dev) --{ -- struct ssb_bus *ssb = dev->priv; -- -- ssb_bus_unregister(ssb); -- pcmcia_disable_device(dev); -- kfree(ssb); -- dev->priv = NULL; --} -- --static struct pcmcia_driver b43_pcmcia_driver = { -- .owner = THIS_MODULE, -- .name = "b43-pcmcia", -- .id_table = b43_pcmcia_tbl, -- .probe = b43_pcmcia_probe, -- .remove = b43_pcmcia_remove, -- .suspend = b43_pcmcia_suspend, -- .resume = b43_pcmcia_resume, --}; -- --/* -- * These are not module init/exit functions! -- * The module_pcmcia_driver() helper cannot be used here. -- */ --int b43_pcmcia_init(void) --{ -- return pcmcia_register_driver(&b43_pcmcia_driver); --} -- --void b43_pcmcia_exit(void) --{ -- pcmcia_unregister_driver(&b43_pcmcia_driver); --} diff --git a/package/kernel/mac80211/patches/316-ath10k-do-not-use-coherent-memory-for-allocated-devi.patch b/package/kernel/mac80211/patches/316-ath10k-do-not-use-coherent-memory-for-allocated-devi.patch deleted file mode 100644 index 66ebe7628e..0000000000 --- a/package/kernel/mac80211/patches/316-ath10k-do-not-use-coherent-memory-for-allocated-devi.patch +++ /dev/null @@ -1,103 +0,0 @@ -From: Felix Fietkau -Date: Sun, 22 Nov 2015 14:03:40 +0100 -Subject: [PATCH] ath10k: do not use coherent memory for allocated device - memory chunks - -Coherent memory is more expensive to allocate (and constrained on some -architectures where it has to be pre-allocated). It is also completely -unnecessary, since the host has no reason to even access these allocated -memory spaces - -Signed-off-by: Felix Fietkau ---- - ---- a/drivers/net/wireless/ath/ath10k/wmi.c -+++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -4258,34 +4258,58 @@ void ath10k_wmi_event_vdev_resume_req(st - ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_RESUME_REQ_EVENTID\n"); - } - --static int ath10k_wmi_alloc_host_mem(struct ath10k *ar, u32 req_id, -- u32 num_units, u32 unit_len) -+static int ath10k_wmi_alloc_chunk(struct ath10k *ar, u32 req_id, -+ u32 num_units, u32 unit_len) - { - dma_addr_t paddr; - u32 pool_size; - int idx = ar->wmi.num_mem_chunks; -+ void *vaddr = NULL; - -- pool_size = num_units * round_up(unit_len, 4); -+ if (ar->wmi.num_mem_chunks == ARRAY_SIZE(ar->wmi.mem_chunks)) -+ return -ENOMEM; - -- if (!pool_size) -- return -EINVAL; -+ while (!vaddr && num_units) { -+ pool_size = num_units * round_up(unit_len, 4); -+ if (!pool_size) -+ return -EINVAL; - -- ar->wmi.mem_chunks[idx].vaddr = dma_alloc_coherent(ar->dev, -- pool_size, -- &paddr, -- GFP_KERNEL); -- if (!ar->wmi.mem_chunks[idx].vaddr) { -- ath10k_warn(ar, "failed to allocate memory chunk\n"); -- return -ENOMEM; -+ vaddr = kzalloc(pool_size, GFP_KERNEL | __GFP_NOWARN); -+ if (!vaddr) -+ num_units /= 2; - } - -- memset(ar->wmi.mem_chunks[idx].vaddr, 0, pool_size); -+ if (!num_units) -+ return -ENOMEM; - -+ paddr = dma_map_single(ar->dev, vaddr, pool_size, DMA_TO_DEVICE); -+ if (dma_mapping_error(ar->dev, paddr)) { -+ kfree(vaddr); -+ return -ENOMEM; -+ } -+ -+ ar->wmi.mem_chunks[idx].vaddr = vaddr; - ar->wmi.mem_chunks[idx].paddr = paddr; - ar->wmi.mem_chunks[idx].len = pool_size; - ar->wmi.mem_chunks[idx].req_id = req_id; - ar->wmi.num_mem_chunks++; - -+ return num_units; -+} -+ -+static int ath10k_wmi_alloc_host_mem(struct ath10k *ar, u32 req_id, -+ u32 num_units, u32 unit_len) -+{ -+ int ret; -+ -+ while (num_units) { -+ ret = ath10k_wmi_alloc_chunk(ar, req_id, num_units, unit_len); -+ if (ret < 0) -+ return ret; -+ -+ num_units -= ret; -+ } -+ - return 0; - } - -@@ -7616,10 +7640,11 @@ void ath10k_wmi_free_host_mem(struct ath - - /* free the host memory chunks requested by firmware */ - for (i = 0; i < ar->wmi.num_mem_chunks; i++) { -- dma_free_coherent(ar->dev, -- ar->wmi.mem_chunks[i].len, -- ar->wmi.mem_chunks[i].vaddr, -- ar->wmi.mem_chunks[i].paddr); -+ dma_unmap_single(ar->dev, -+ ar->wmi.mem_chunks[i].paddr, -+ ar->wmi.mem_chunks[i].len, -+ DMA_TO_DEVICE); -+ kfree(ar->wmi.mem_chunks[i].vaddr); - } - - ar->wmi.num_mem_chunks = 0; diff --git a/package/kernel/mac80211/patches/317-ath10k-stop-abusing-GFP_DMA.patch b/package/kernel/mac80211/patches/317-ath10k-stop-abusing-GFP_DMA.patch deleted file mode 100644 index a229a1306a..0000000000 --- a/package/kernel/mac80211/patches/317-ath10k-stop-abusing-GFP_DMA.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: Felix Fietkau -Date: Tue, 24 Nov 2015 11:33:54 +0100 -Subject: [PATCH] ath10k: stop abusing GFP_DMA - -Allocations from the DMA zone were originally added for legacy ISA -stuff, or PCI devices that have specific limitations in their DMA -addressing capabilities. It has no place in ath10k, which can do -full 32-bit DMA. - -Fixes memory allocation errors on some platforms. - -Signed-off-by: Felix Fietkau ---- - ---- a/drivers/net/wireless/ath/ath10k/htt_rx.c -+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c -@@ -536,7 +536,7 @@ int ath10k_htt_rx_alloc(struct ath10k_ht - - size = htt->rx_ring.size * sizeof(htt->rx_ring.paddrs_ring); - -- vaddr = dma_alloc_coherent(htt->ar->dev, size, &paddr, GFP_DMA); -+ vaddr = dma_alloc_coherent(htt->ar->dev, size, &paddr, GFP_KERNEL); - if (!vaddr) - goto err_dma_ring; - -@@ -545,7 +545,7 @@ int ath10k_htt_rx_alloc(struct ath10k_ht - - vaddr = dma_alloc_coherent(htt->ar->dev, - sizeof(*htt->rx_ring.alloc_idx.vaddr), -- &paddr, GFP_DMA); -+ &paddr, GFP_KERNEL); - if (!vaddr) - goto err_dma_idx; - ---- a/drivers/net/wireless/ath/ath10k/htt_tx.c -+++ b/drivers/net/wireless/ath/ath10k/htt_tx.c -@@ -111,7 +111,7 @@ int ath10k_htt_tx_alloc(struct ath10k_ht - size = htt->max_num_pending_tx * sizeof(struct ath10k_htt_txbuf); - htt->txbuf.vaddr = dma_alloc_coherent(ar->dev, size, - &htt->txbuf.paddr, -- GFP_DMA); -+ GFP_KERNEL); - if (!htt->txbuf.vaddr) { - ath10k_err(ar, "failed to alloc tx buffer\n"); - ret = -ENOMEM; -@@ -124,7 +124,7 @@ int ath10k_htt_tx_alloc(struct ath10k_ht - size = htt->max_num_pending_tx * sizeof(struct htt_msdu_ext_desc); - htt->frag_desc.vaddr = dma_alloc_coherent(ar->dev, size, - &htt->frag_desc.paddr, -- GFP_DMA); -+ GFP_KERNEL); - if (!htt->frag_desc.vaddr) { - ath10k_warn(ar, "failed to alloc fragment desc memory\n"); - ret = -ENOMEM; diff --git a/package/kernel/mac80211/patches/402-ath_regd_optional.patch b/package/kernel/mac80211/patches/402-ath_regd_optional.patch index 1000cd8eb4..f1b4d0b858 100644 --- a/package/kernel/mac80211/patches/402-ath_regd_optional.patch +++ b/package/kernel/mac80211/patches/402-ath_regd_optional.patch @@ -47,9 +47,9 @@ --- a/drivers/net/wireless/ath/Kconfig +++ b/drivers/net/wireless/ath/Kconfig -@@ -22,6 +22,9 @@ menuconfig ATH_CARDS +@@ -23,6 +23,9 @@ config WLAN_VENDOR_ATH - if ATH_CARDS + if WLAN_VENDOR_ATH +config ATH_USER_REGD + bool "Do not enforce EEPROM regulatory restrictions" @@ -59,9 +59,9 @@ ---help--- --- a/.local-symbols +++ b/.local-symbols -@@ -140,6 +140,7 @@ RTL8187_LEDS= +@@ -126,6 +126,7 @@ ADM8211= ATH_COMMON= - ATH_CARDS= + WLAN_VENDOR_ATH= ATH_DEBUG= +ATH_USER_REGD= ATH_TRACEPOINTS= diff --git a/package/kernel/mac80211/patches/404-regd_no_assoc_hints.patch b/package/kernel/mac80211/patches/404-regd_no_assoc_hints.patch index ca11199a20..30af48a7e5 100644 --- a/package/kernel/mac80211/patches/404-regd_no_assoc_hints.patch +++ b/package/kernel/mac80211/patches/404-regd_no_assoc_hints.patch @@ -1,6 +1,6 @@ --- a/net/wireless/reg.c +++ b/net/wireless/reg.c -@@ -2480,6 +2480,8 @@ void regulatory_hint_country_ie(struct w +@@ -2463,6 +2463,8 @@ void regulatory_hint_country_ie(struct w enum environment_cap env = ENVIRON_ANY; struct regulatory_request *request = NULL, *lr; @@ -9,7 +9,7 @@ /* IE len must be evenly divisible by 2 */ if (country_ie_len & 0x01) return; -@@ -2686,6 +2688,7 @@ static void restore_regulatory_settings( +@@ -2669,6 +2671,7 @@ static void restore_regulatory_settings( void regulatory_hint_disconnect(void) { diff --git a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch index 8bbac4d90e..2c40df63df 100644 --- a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch +++ b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch @@ -1,6 +1,6 @@ --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -2361,6 +2361,7 @@ struct cfg80211_qos_map { +@@ -2363,6 +2363,7 @@ struct cfg80211_qos_map { * (as advertised by the nl80211 feature flag.) * @get_tx_power: store the current TX power into the dbm variable; * return 0 if successful @@ -8,7 +8,7 @@ * * @set_wds_peer: set the WDS peer for a WDS interface * -@@ -2617,6 +2618,7 @@ struct cfg80211_ops { +@@ -2624,6 +2625,7 @@ struct cfg80211_ops { enum nl80211_tx_power_setting type, int mbm); int (*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev, int *dbm); @@ -18,7 +18,7 @@ const u8 *addr); --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -1250,6 +1250,7 @@ enum ieee80211_smps_mode { +@@ -1252,6 +1252,7 @@ enum ieee80211_smps_mode { * * @power_level: requested transmit power (in dBm), backward compatibility * value only that is set to the minimum of all interfaces @@ -26,7 +26,7 @@ * * @chandef: the channel definition to tune to * @radar_enabled: whether radar detection is enabled -@@ -1270,6 +1271,7 @@ enum ieee80211_smps_mode { +@@ -1272,6 +1273,7 @@ enum ieee80211_smps_mode { struct ieee80211_conf { u32 flags; int power_level, dynamic_ps_timeout; @@ -36,7 +36,7 @@ u8 ps_dtim_period; --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h -@@ -1783,6 +1783,9 @@ enum nl80211_commands { +@@ -1790,6 +1790,9 @@ enum nl80211_commands { * between scans. The scan plans are executed sequentially. * Each scan plan is a nested attribute of &enum nl80211_sched_scan_plan. * @@ -46,7 +46,7 @@ * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use -@@ -2157,6 +2160,8 @@ enum nl80211_attrs { +@@ -2164,6 +2167,8 @@ enum nl80211_attrs { NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS, NL80211_ATTR_SCHED_SCAN_PLANS, @@ -57,7 +57,7 @@ __NL80211_ATTR_AFTER_LAST, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2206,6 +2206,19 @@ static int ieee80211_get_tx_power(struct +@@ -2201,6 +2201,19 @@ static int ieee80211_get_tx_power(struct return 0; } @@ -77,7 +77,7 @@ static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev, const u8 *addr) { -@@ -3849,6 +3862,7 @@ const struct cfg80211_ops mac80211_confi +@@ -3375,6 +3388,7 @@ const struct cfg80211_ops mac80211_confi .set_wiphy_params = ieee80211_set_wiphy_params, .set_tx_power = ieee80211_set_tx_power, .get_tx_power = ieee80211_get_tx_power, @@ -87,7 +87,7 @@ CFG80211_TESTMODE_CMD(ieee80211_testmode_cmd) --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -1321,6 +1321,7 @@ struct ieee80211_local { +@@ -1317,6 +1317,7 @@ struct ieee80211_local { int dynamic_ps_forced_timeout; int user_power_level; /* in dBm, for all interfaces */ @@ -119,7 +119,7 @@ if (local->hw.conf.power_level != power) { changed |= IEEE80211_CONF_CHANGE_POWER; local->hw.conf.power_level = power; -@@ -579,6 +585,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ +@@ -580,6 +586,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ IEEE80211_RADIOTAP_MCS_HAVE_BW; local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI | IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH; diff --git a/package/kernel/mac80211/patches/600-0001-rt2x00-rt2800lib-move-rt2800_drv_data-declaration-in.patch b/package/kernel/mac80211/patches/600-0001-rt2x00-rt2800lib-move-rt2800_drv_data-declaration-in.patch index 15863a6edd..bd81555ac1 100644 --- a/package/kernel/mac80211/patches/600-0001-rt2x00-rt2800lib-move-rt2800_drv_data-declaration-in.patch +++ b/package/kernel/mac80211/patches/600-0001-rt2x00-rt2800lib-move-rt2800_drv_data-declaration-in.patch @@ -16,12 +16,12 @@ Signed-off-by: Gabor Juhos --- Changes since v1: --- --- - drivers/net/wireless/rt2x00/rt2800.h | 13 ------------- - drivers/net/wireless/rt2x00/rt2800lib.h | 11 +++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800.h | 13 ------------- + drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 11 +++++++++++ 2 files changed, 11 insertions(+), 13 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.h -+++ b/drivers/net/wireless/rt2x00/rt2800lib.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h @@ -20,6 +20,20 @@ #ifndef RT2800LIB_H #define RT2800LIB_H @@ -43,8 +43,8 @@ Changes since v1: --- struct rt2800_ops { void (*register_read)(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u32 *value); ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -2969,18 +2969,4 @@ enum rt2800_eeprom_word { #define WCID_END 222 #define STA_IDS_SIZE (WCID_END - WCID_START + 2) diff --git a/package/kernel/mac80211/patches/600-0002-rt2x00-rt2800lib-introduce-RT2800_HAS_HIGH_SHARED_ME.patch b/package/kernel/mac80211/patches/600-0002-rt2x00-rt2800lib-introduce-RT2800_HAS_HIGH_SHARED_ME.patch index 9165eec318..dbab62c7ae 100644 --- a/package/kernel/mac80211/patches/600-0002-rt2x00-rt2800lib-introduce-RT2800_HAS_HIGH_SHARED_ME.patch +++ b/package/kernel/mac80211/patches/600-0002-rt2x00-rt2800lib-introduce-RT2800_HAS_HIGH_SHARED_ME.patch @@ -18,12 +18,12 @@ Signed-off-by: Gabor Juhos Changes since v1: - don't enable the new flag for RT3071 and RT5592 --- - drivers/net/wireless/rt2x00/rt2800lib.c | 4 ++++ - drivers/net/wireless/rt2x00/rt2800lib.h | 13 +++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 13 +++++++++++++ 2 files changed, 17 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7721,6 +7721,7 @@ static int rt2800_probe_rt(struct rt2x00 int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev) @@ -42,8 +42,8 @@ Changes since v1: /* * Allocate eeprom data. */ ---- a/drivers/net/wireless/rt2x00/rt2800lib.h -+++ b/drivers/net/wireless/rt2x00/rt2800lib.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h @@ -22,6 +22,10 @@ #include "rt2800.h" diff --git a/package/kernel/mac80211/patches/600-0003-rt2x00-rt2800-serialize-shared-memory-access.patch b/package/kernel/mac80211/patches/600-0003-rt2x00-rt2800-serialize-shared-memory-access.patch index 5671515196..0a85340f00 100644 --- a/package/kernel/mac80211/patches/600-0003-rt2x00-rt2800-serialize-shared-memory-access.patch +++ b/package/kernel/mac80211/patches/600-0003-rt2x00-rt2800-serialize-shared-memory-access.patch @@ -17,17 +17,17 @@ Signed-off-by: Gabor Juhos --- Changes since v1: --- --- - drivers/net/wireless/rt2x00/rt2800lib.c | 55 +++++++++++++++++++++++++++++- - drivers/net/wireless/rt2x00/rt2800lib.h | 32 +++++++++++++++++ - drivers/net/wireless/rt2x00/rt2800mmio.c | 26 ++++++++++++++ - drivers/net/wireless/rt2x00/rt2800mmio.h | 4 +++ - drivers/net/wireless/rt2x00/rt2800pci.c | 14 ++++++++ - drivers/net/wireless/rt2x00/rt2800soc.c | 3 ++ - drivers/net/wireless/rt2x00/rt2800usb.c | 31 +++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 55 +++++++++++++++++++++++++++++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 32 +++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 26 ++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800mmio.h | 4 +++ + drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 14 ++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 3 ++ + drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 31 +++++++++++++++++ 7 files changed, 164 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -451,11 +451,13 @@ void rt2800_mcu_request(struct rt2x00_de rt2x00_set_field32(®, H2M_MAILBOX_CSR_CMD_TOKEN, token); rt2x00_set_field32(®, H2M_MAILBOX_CSR_ARG0, arg0); @@ -260,8 +260,8 @@ Changes since v1: --- memcpy(&seq->tkip.iv16, &iveiv_entry.iv[0], 2); memcpy(&seq->tkip.iv32, &iveiv_entry.iv[4], 4); ---- a/drivers/net/wireless/rt2x00/rt2800lib.h -+++ b/drivers/net/wireless/rt2x00/rt2800lib.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h @@ -38,6 +38,11 @@ struct rt2800_drv_data { DECLARE_BITMAP(sta_ids, STA_IDS_SIZE); @@ -315,8 +315,8 @@ Changes since v1: --- static inline void rt2800_register_read(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u32 *value) ---- a/drivers/net/wireless/rt2x00/rt2800mmio.c -+++ b/drivers/net/wireless/rt2x00/rt2800mmio.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c @@ -820,8 +820,10 @@ int rt2800mmio_init_registers(struct rt2 rt2x00_set_field32(®, WPDMA_RST_IDX_DRX_IDX0, 1); rt2x00mmio_register_write(rt2x00dev, WPDMA_RST_IDX, reg); @@ -359,8 +359,8 @@ Changes since v1: --- MODULE_AUTHOR(DRV_PROJECT); MODULE_VERSION(DRV_VERSION); MODULE_DESCRIPTION("rt2800 MMIO library"); ---- a/drivers/net/wireless/rt2x00/rt2800mmio.h -+++ b/drivers/net/wireless/rt2x00/rt2800mmio.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h @@ -160,4 +160,8 @@ int rt2800mmio_init_registers(struct rt2 /* Device state switch handlers. */ int rt2800mmio_enable_radio(struct rt2x00_dev *rt2x00dev); @@ -370,8 +370,8 @@ Changes since v1: --- +void rt2800mmio_shmem_unlock(struct rt2x00_dev *rt2x00dev); + #endif /* RT2800MMIO_H */ ---- a/drivers/net/wireless/rt2x00/rt2800pci.c -+++ b/drivers/net/wireless/rt2x00/rt2800pci.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c @@ -69,7 +69,9 @@ static void rt2800pci_mcu_status(struct return; @@ -444,8 +444,8 @@ Changes since v1: --- }; static const struct rt2x00lib_ops rt2800pci_rt2x00_ops = { ---- a/drivers/net/wireless/rt2x00/rt2800soc.c -+++ b/drivers/net/wireless/rt2x00/rt2800soc.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c @@ -176,6 +176,9 @@ static const struct rt2800_ops rt2800soc .drv_write_firmware = rt2800soc_write_firmware, .drv_init_registers = rt2800mmio_init_registers, @@ -456,8 +456,8 @@ Changes since v1: --- }; static const struct rt2x00lib_ops rt2800soc_rt2x00_ops = { ---- a/drivers/net/wireless/rt2x00/rt2800usb.c -+++ b/drivers/net/wireless/rt2x00/rt2800usb.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c @@ -51,6 +51,27 @@ static bool rt2800usb_hwcrypt_disabled(s return modparam_nohwcrypt; } diff --git a/package/kernel/mac80211/patches/600-0004-rt2x00-rt2800lib-fix-beacon-generation-on-RT3593.patch b/package/kernel/mac80211/patches/600-0004-rt2x00-rt2800lib-fix-beacon-generation-on-RT3593.patch index b8c1914645..985a3b91f1 100644 --- a/package/kernel/mac80211/patches/600-0004-rt2x00-rt2800lib-fix-beacon-generation-on-RT3593.patch +++ b/package/kernel/mac80211/patches/600-0004-rt2x00-rt2800lib-fix-beacon-generation-on-RT3593.patch @@ -23,12 +23,12 @@ Signed-off-by: Gabor Juhos --- Changes since v1: --- --- - drivers/net/wireless/rt2x00/rt2800.h | 3 +++ - drivers/net/wireless/rt2x00/rt2800lib.c | 44 +++++++++++++++++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800.h | 3 +++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 44 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -574,6 +574,7 @@ #define PBF_SYS_CTRL 0x0400 #define PBF_SYS_CTRL_READY FIELD32(0x00000080) @@ -46,8 +46,8 @@ Changes since v1: --- #define BEACON_BASE_TO_OFFSET(_base) (((_base) - 0x4000) / 64) /* ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -82,6 +82,39 @@ static inline bool rt2800_is_305x_soc(st return false; } diff --git a/package/kernel/mac80211/patches/600-0005-rt2x00-rt2800lib-add-hw_beacon_count-field-to-struct.patch b/package/kernel/mac80211/patches/600-0005-rt2x00-rt2800lib-add-hw_beacon_count-field-to-struct.patch index d04998a838..8aad283fc7 100644 --- a/package/kernel/mac80211/patches/600-0005-rt2x00-rt2800lib-add-hw_beacon_count-field-to-struct.patch +++ b/package/kernel/mac80211/patches/600-0005-rt2x00-rt2800lib-add-hw_beacon_count-field-to-struct.patch @@ -18,12 +18,12 @@ new field with the actually used value. Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 5 ++++- - drivers/net/wireless/rt2x00/rt2800lib.h | 1 + + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 5 ++++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -4614,6 +4614,7 @@ EXPORT_SYMBOL_GPL(rt2800_link_tuner); */ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev) @@ -50,8 +50,8 @@ Signed-off-by: Gabor Juhos /* * Allocate eeprom data. */ ---- a/drivers/net/wireless/rt2x00/rt2800lib.h -+++ b/drivers/net/wireless/rt2x00/rt2800lib.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h @@ -35,6 +35,7 @@ struct rt2800_drv_data { u8 txmixer_gain_24g; u8 txmixer_gain_5g; diff --git a/package/kernel/mac80211/patches/600-0006-rt2x00-rt2800lib-init-additional-beacon-offset-regis.patch b/package/kernel/mac80211/patches/600-0006-rt2x00-rt2800lib-init-additional-beacon-offset-regis.patch index f5231f0f13..e4a83f6bba 100644 --- a/package/kernel/mac80211/patches/600-0006-rt2x00-rt2800lib-init-additional-beacon-offset-regis.patch +++ b/package/kernel/mac80211/patches/600-0006-rt2x00-rt2800lib-init-additional-beacon-offset-regis.patch @@ -5,12 +5,12 @@ Subject: [PATCH] rt2x00: rt2800lib: init additional beacon offset registers Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800.h | 14 ++++++++++++++ - drivers/net/wireless/rt2x00/rt2800lib.c | 24 ++++++++++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800.h | 14 ++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 24 ++++++++++++++++++++++++ 2 files changed, 38 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -629,6 +629,20 @@ */ #define PBF_DBG 0x043c @@ -32,8 +32,8 @@ Signed-off-by: Gabor Juhos /* * RF registers */ ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -4626,6 +4626,30 @@ static int rt2800_init_registers(struct if (ret) return ret; diff --git a/package/kernel/mac80211/patches/600-0007-rt2x00-rt2800lib-fix-max-supported-beacon-count-for-.patch b/package/kernel/mac80211/patches/600-0007-rt2x00-rt2800lib-fix-max-supported-beacon-count-for-.patch index 4b21eaebb3..8e2d7001c4 100644 --- a/package/kernel/mac80211/patches/600-0007-rt2x00-rt2800lib-fix-max-supported-beacon-count-for-.patch +++ b/package/kernel/mac80211/patches/600-0007-rt2x00-rt2800lib-fix-max-supported-beacon-count-for-.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: fix max supported beacon count for RT3593 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 5 ++++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7851,7 +7851,10 @@ int rt2800_probe_hw(struct rt2x00_dev *r if (rt2x00_rt(rt2x00dev, RT3593)) __set_bit(RT2800_HAS_HIGH_SHARED_MEM, &drv_data->rt2800_flags); diff --git a/package/kernel/mac80211/patches/600-0008-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch b/package/kernel/mac80211/patches/600-0008-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch index 8a10c6e02f..565e39de5f 100644 --- a/package/kernel/mac80211/patches/600-0008-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0008-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: allow to build rt2800soc module for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/Kconfig | 2 +- + drivers/net/wireless/ralink/rt2x00/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/Kconfig -+++ b/drivers/net/wireless/rt2x00/Kconfig +--- a/drivers/net/wireless/ralink/rt2x00/Kconfig ++++ b/drivers/net/wireless/ralink/rt2x00/Kconfig @@ -210,7 +210,7 @@ endif config RT2800SOC tristate "Ralink WiSoC support" diff --git a/package/kernel/mac80211/patches/600-0009-rt2x00-rt2800lib-enable-support-for-RT3883.patch b/package/kernel/mac80211/patches/600-0009-rt2x00-rt2800lib-enable-support-for-RT3883.patch index e77cd86ade..e6a063a9de 100644 --- a/package/kernel/mac80211/patches/600-0009-rt2x00-rt2800lib-enable-support-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0009-rt2x00-rt2800lib-enable-support-for-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: enable support for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 1 + + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 1 + 1 file changed, 1 insertion(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7821,6 +7821,7 @@ static int rt2800_probe_rt(struct rt2x00 case RT3390: case RT3572: diff --git a/package/kernel/mac80211/patches/600-0010-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch b/package/kernel/mac80211/patches/600-0010-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch index 780c1dde56..ef651a6fa1 100644 --- a/package/kernel/mac80211/patches/600-0010-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch +++ b/package/kernel/mac80211/patches/600-0010-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch @@ -5,12 +5,12 @@ Subject: [PATCH] rt2x00: rt2800lib: add rf_vals for RF3853 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800.h | 4 +- - drivers/net/wireless/rt2x00/rt2800lib.c | 65 +++++++++++++++++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800.h | 4 +- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 65 +++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -48,7 +48,8 @@ * RF2853 2.4G/5G 3T3R * RF3320 2.4G 1T1R(RT3350/RT3370/RT3390) @@ -29,8 +29,8 @@ Signed-off-by: Gabor Juhos #define RF5360 0x5360 #define RF5362 0x5362 #define RF5370 0x5370 ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7441,6 +7441,66 @@ static const struct rf_channel rf_vals_3 {173, 0x61, 0, 9}, }; diff --git a/package/kernel/mac80211/patches/600-0011-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch b/package/kernel/mac80211/patches/600-0011-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch index 858dece6a1..8f6a021506 100644 --- a/package/kernel/mac80211/patches/600-0011-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch +++ b/package/kernel/mac80211/patches/600-0011-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: enable VCO calibration for RF3853 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 2 ++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 ++ 1 file changed, 2 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -4378,6 +4378,7 @@ void rt2800_vco_calibration(struct rt2x0 case RF3053: case RF3070: diff --git a/package/kernel/mac80211/patches/600-0012-rt2x00-rt2800lib-add-channel-configuration-function-.patch b/package/kernel/mac80211/patches/600-0012-rt2x00-rt2800lib-add-channel-configuration-function-.patch index ed82e44b78..952d69dd54 100644 --- a/package/kernel/mac80211/patches/600-0012-rt2x00-rt2800lib-add-channel-configuration-function-.patch +++ b/package/kernel/mac80211/patches/600-0012-rt2x00-rt2800lib-add-channel-configuration-function-.patch @@ -6,11 +6,11 @@ Subject: [PATCH] rt2x00: rt2800lib: add channel configuration function for Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 208 +++++++++++++++++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 208 +++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -2625,6 +2625,211 @@ static void rt2800_config_channel_rf3053 } } diff --git a/package/kernel/mac80211/patches/600-0013-rt2x00-rt2800lib-enable-RF3853-support.patch b/package/kernel/mac80211/patches/600-0013-rt2x00-rt2800lib-enable-RF3853-support.patch index 33cbc4c36c..ce18b2fae5 100644 --- a/package/kernel/mac80211/patches/600-0013-rt2x00-rt2800lib-enable-RF3853-support.patch +++ b/package/kernel/mac80211/patches/600-0013-rt2x00-rt2800lib-enable-RF3853-support.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: enable RF3853 support Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 1 + + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 1 + 1 file changed, 1 insertion(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7406,6 +7406,7 @@ static int rt2800_init_eeprom(struct rt2 case RF3290: case RF3320: diff --git a/package/kernel/mac80211/patches/600-0014-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch b/package/kernel/mac80211/patches/600-0014-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch index c3a4798d0e..f16e13e60b 100644 --- a/package/kernel/mac80211/patches/600-0014-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch +++ b/package/kernel/mac80211/patches/600-0014-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch @@ -6,12 +6,12 @@ Subject: [PATCH] rt2x00: rt2800lib: add MAC register initialization for Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800.h | 14 ++++++++++++++ - drivers/net/wireless/rt2x00/rt2800lib.c | 19 ++++++++++++++++--- + drivers/net/wireless/ralink/rt2x00/rt2800.h | 14 ++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 19 ++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -1588,6 +1588,20 @@ #define TX_PWR_CFG_9_STBC7_CH2 FIELD32(0x00000f00) @@ -33,8 +33,8 @@ Signed-off-by: Gabor Juhos * RX_FILTER_CFG: RX configuration register. */ #define RX_FILTER_CFG 0x1400 ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -4981,6 +4981,12 @@ static int rt2800_init_registers(struct rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000); diff --git a/package/kernel/mac80211/patches/600-0015-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch b/package/kernel/mac80211/patches/600-0015-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch index 837c025b84..d68ad50447 100644 --- a/package/kernel/mac80211/patches/600-0015-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch +++ b/package/kernel/mac80211/patches/600-0015-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800soc: fix rt2800soc_disable_radio for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800soc.c | 9 ++++++++- + drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800soc.c -+++ b/drivers/net/wireless/rt2x00/rt2800soc.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c @@ -51,9 +51,16 @@ static bool rt2800soc_hwcrypt_disabled(s static void rt2800soc_disable_radio(struct rt2x00_dev *rt2x00dev) diff --git a/package/kernel/mac80211/patches/600-0016-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch b/package/kernel/mac80211/patches/600-0016-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch index e64777761c..0f80807b71 100644 --- a/package/kernel/mac80211/patches/600-0016-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch +++ b/package/kernel/mac80211/patches/600-0016-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch @@ -6,11 +6,11 @@ Subject: [PATCH] rt2x00: rt2800lib: add BBP register initialization for Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 44 +++++++++++++++++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -5784,6 +5784,47 @@ static void rt2800_init_bbp_3593(struct rt2800_bbp_write(rt2x00dev, 103, 0xc0); } diff --git a/package/kernel/mac80211/patches/600-0017-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch b/package/kernel/mac80211/patches/600-0017-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch index 0fec3cd899..f2e9a498cb 100644 --- a/package/kernel/mac80211/patches/600-0017-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0017-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch @@ -5,12 +5,12 @@ Subject: [PATCH] rt2x00: rt2800lib: add RFCSR initialization for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800.h | 1 + - drivers/net/wireless/rt2x00/rt2800lib.c | 141 +++++++++++++++++++++++++++++++ + drivers/net/wireless/ralink/rt2x00/rt2800.h | 1 + + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 141 +++++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -2171,6 +2171,7 @@ struct mac_iveiv_entry { /* * RFCSR 2: @@ -19,8 +19,8 @@ Signed-off-by: Gabor Juhos #define RFCSR2_RESCAL_EN FIELD8(0x80) /* ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -6819,6 +6819,144 @@ static void rt2800_init_rfcsr_3593(struc /* TODO: enable stream mode support */ } diff --git a/package/kernel/mac80211/patches/600-0018-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch b/package/kernel/mac80211/patches/600-0018-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch index 57af96106f..ae899f73be 100644 --- a/package/kernel/mac80211/patches/600-0018-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch +++ b/package/kernel/mac80211/patches/600-0018-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: use the extended EEPROM map for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 ++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -342,7 +342,8 @@ static unsigned int rt2800_eeprom_word_i wiphy_name(rt2x00dev->hw->wiphy), word)) return 0; diff --git a/package/kernel/mac80211/patches/600-0019-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch b/package/kernel/mac80211/patches/600-0019-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch index c9d1e06eae..0bf7dc9519 100644 --- a/package/kernel/mac80211/patches/600-0019-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0019-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: force rf type to RF3853 on RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 2 ++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 ++ 1 file changed, 2 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7587,6 +7587,8 @@ static int rt2800_init_eeprom(struct rt2 rt2x00_rt(rt2x00dev, RT5390) || rt2x00_rt(rt2x00dev, RT5392)) diff --git a/package/kernel/mac80211/patches/600-0020-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch b/package/kernel/mac80211/patches/600-0020-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch index 12b9c3318b..15de2be39f 100644 --- a/package/kernel/mac80211/patches/600-0020-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch +++ b/package/kernel/mac80211/patches/600-0020-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: add channel configuration code for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 72 +++++++++++++++++++++++++++++-- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 72 +++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 3 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -3405,6 +3405,36 @@ static char rt2800_txpower_to_dev(struct return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER); } diff --git a/package/kernel/mac80211/patches/600-0021-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch b/package/kernel/mac80211/patches/600-0021-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch index 3f40b4e794..5e4b09858c 100644 --- a/package/kernel/mac80211/patches/600-0021-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch +++ b/package/kernel/mac80211/patches/600-0021-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: fix txpower_to_dev function for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 6 ++++-- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -3392,13 +3392,15 @@ static char rt2800_txpower_to_dev(struct unsigned int channel, char txpower) diff --git a/package/kernel/mac80211/patches/600-0022-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch b/package/kernel/mac80211/patches/600-0022-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch index 52baeecd42..90483963ca 100644 --- a/package/kernel/mac80211/patches/600-0022-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch +++ b/package/kernel/mac80211/patches/600-0022-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch @@ -6,11 +6,11 @@ Subject: [PATCH] rt2x00: rt2800lib: use correct txpower calculation function Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 ++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -4611,7 +4611,8 @@ static void rt2800_config_txpower(struct struct ieee80211_channel *chan, int power_level) diff --git a/package/kernel/mac80211/patches/600-0023-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch b/package/kernel/mac80211/patches/600-0023-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch index b9dafc6129..d15e34419d 100644 --- a/package/kernel/mac80211/patches/600-0023-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch +++ b/package/kernel/mac80211/patches/600-0023-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch @@ -6,11 +6,11 @@ Subject: [PATCH] rt2x00: rt2800lib: hardcode txmixer gain values to zero for Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 6 ++++-- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7469,7 +7469,8 @@ static u8 rt2800_get_txmixer_gain_24g(st { u16 word; diff --git a/package/kernel/mac80211/patches/600-0024-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch b/package/kernel/mac80211/patches/600-0024-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch index 53435aa17e..125928642f 100644 --- a/package/kernel/mac80211/patches/600-0024-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0024-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: use correct [RT]XWI size for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 1 + + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 1 + 1 file changed, 1 insertion(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -558,6 +558,7 @@ void rt2800_get_txwi_rxwi_size(struct rt { switch (rt2x00dev->chip.rt) { diff --git a/package/kernel/mac80211/patches/600-0025-rt2x00-rt2800lib-use-correct-beacon-base-for-RT3883.patch b/package/kernel/mac80211/patches/600-0025-rt2x00-rt2800lib-use-correct-beacon-base-for-RT3883.patch index 08f3f88797..0dcc027ffc 100644 --- a/package/kernel/mac80211/patches/600-0025-rt2x00-rt2800lib-use-correct-beacon-base-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0025-rt2x00-rt2800lib-use-correct-beacon-base-for-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: use correct beacon base for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 ++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -983,7 +983,8 @@ EXPORT_SYMBOL_GPL(rt2800_txdone_entry); static unsigned int rt2800_hw_beacon_base(struct rt2x00_dev *rt2x00dev, unsigned int index) diff --git a/package/kernel/mac80211/patches/600-0026-rt2x00-rt2800lib-use-correct-beacon-count-for-RT3883.patch b/package/kernel/mac80211/patches/600-0026-rt2x00-rt2800lib-use-correct-beacon-count-for-RT3883.patch index f09f80340a..9142a10561 100644 --- a/package/kernel/mac80211/patches/600-0026-rt2x00-rt2800lib-use-correct-beacon-count-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0026-rt2x00-rt2800lib-use-correct-beacon-count-for-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: use correct beacon count for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 ++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -8402,7 +8402,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r if (rt2x00_rt(rt2x00dev, RT3593)) __set_bit(RT2800_HAS_HIGH_SHARED_MEM, &drv_data->rt2800_flags); diff --git a/package/kernel/mac80211/patches/600-0027-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch b/package/kernel/mac80211/patches/600-0027-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch index f7d23fcd24..821c8488ef 100644 --- a/package/kernel/mac80211/patches/600-0027-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch +++ b/package/kernel/mac80211/patches/600-0027-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: fix antenna configuration for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 ++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -1937,7 +1937,8 @@ void rt2800_config_ant(struct rt2x00_dev rt2800_bbp_write(rt2x00dev, 3, r3); rt2800_bbp_write(rt2x00dev, 1, r1); diff --git a/package/kernel/mac80211/patches/600-0028-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch b/package/kernel/mac80211/patches/600-0028-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch index 4da750e712..0ed7ac2d0c 100644 --- a/package/kernel/mac80211/patches/600-0028-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch +++ b/package/kernel/mac80211/patches/600-0028-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: fix LNA gain configuration for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 6 ++++-- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -1960,7 +1960,8 @@ static void rt2800_config_lna_gain(struc rt2800_eeprom_read(rt2x00dev, EEPROM_LNA, &eeprom); lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_A0); diff --git a/package/kernel/mac80211/patches/600-0029-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch b/package/kernel/mac80211/patches/600-0029-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch index 628b2370d8..31f3bef77f 100644 --- a/package/kernel/mac80211/patches/600-0029-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0029-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: fix VGC setup for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 11 +++++++++-- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -4811,7 +4811,8 @@ static u8 rt2800_get_default_vgc(struct else vgc = 0x2e + rt2x00dev->lna_gain; diff --git a/package/kernel/mac80211/patches/600-0030-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch b/package/kernel/mac80211/patches/600-0030-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch index 216b8b672a..286efeef67 100644 --- a/package/kernel/mac80211/patches/600-0030-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch +++ b/package/kernel/mac80211/patches/600-0030-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: fix EEPROM LNA validation for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 9 ++++++--- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7606,7 +7606,8 @@ static int rt2800_validate_eeprom(struct rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &word); if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10) diff --git a/package/kernel/mac80211/patches/600-0031-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch b/package/kernel/mac80211/patches/600-0031-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch index 515086f18a..737687b361 100644 --- a/package/kernel/mac80211/patches/600-0031-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch +++ b/package/kernel/mac80211/patches/600-0031-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: fix txpower compensation for RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 +++ + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 +++ 1 file changed, 3 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -3981,6 +3981,9 @@ static u8 rt2800_compensate_txpower(stru if (rt2x00_rt(rt2x00dev, RT3593)) return min_t(u8, txpower, 0xc); diff --git a/package/kernel/mac80211/patches/600-0032-rt2x00-rt2800lib-enable-RT2800_HAS_HIGH_SHARED_MEM-f.patch b/package/kernel/mac80211/patches/600-0032-rt2x00-rt2800lib-enable-RT2800_HAS_HIGH_SHARED_MEM-f.patch index 77e3f1bc6e..c321ac6c43 100644 --- a/package/kernel/mac80211/patches/600-0032-rt2x00-rt2800lib-enable-RT2800_HAS_HIGH_SHARED_MEM-f.patch +++ b/package/kernel/mac80211/patches/600-0032-rt2x00-rt2800lib-enable-RT2800_HAS_HIGH_SHARED_MEM-f.patch @@ -6,11 +6,11 @@ Subject: [PATCH] rt2x00: rt2800lib: enable RT2800_HAS_HIGH_SHARED_MEM for Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 ++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -8415,7 +8415,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r if (retval) return retval; diff --git a/package/kernel/mac80211/patches/600-0033-rt2x00-rt2800lib-use-high-memory-for-beacons-on-RT38.patch b/package/kernel/mac80211/patches/600-0033-rt2x00-rt2800lib-use-high-memory-for-beacons-on-RT38.patch index dc06e6a64b..4f2e754869 100644 --- a/package/kernel/mac80211/patches/600-0033-rt2x00-rt2800lib-use-high-memory-for-beacons-on-RT38.patch +++ b/package/kernel/mac80211/patches/600-0033-rt2x00-rt2800lib-use-high-memory-for-beacons-on-RT38.patch @@ -5,11 +5,11 @@ Subject: [PATCH] rt2x00: rt2800lib: use high memory for beacons on RT3883 Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800lib.c | 3 ++- + drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -97,7 +97,8 @@ static inline void rt2800_shared_mem_sel static inline bool rt2800_beacon_uses_high_mem(struct rt2x00_dev *rt2x00dev) diff --git a/package/kernel/mac80211/patches/600-0034-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch b/package/kernel/mac80211/patches/600-0034-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch index 71f7bbaee7..c64cf9eb2d 100644 --- a/package/kernel/mac80211/patches/600-0034-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch +++ b/package/kernel/mac80211/patches/600-0034-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch @@ -6,12 +6,12 @@ Subject: [PATCH] rt2x00: rt2800mmio: add a workaround for spurious Signed-off-by: Gabor Juhos --- - drivers/net/wireless/rt2x00/rt2800mmio.c | 72 +++++++++++++++++++++++++----- - drivers/net/wireless/rt2x00/rt2x00.h | 5 +++ + drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 72 +++++++++++++++++++++++++----- + drivers/net/wireless/ralink/rt2x00/rt2x00.h | 5 +++ 2 files changed, 65 insertions(+), 12 deletions(-) ---- a/drivers/net/wireless/rt2x00/rt2800mmio.c -+++ b/drivers/net/wireless/rt2x00/rt2800mmio.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c @@ -415,9 +415,9 @@ void rt2800mmio_autowake_tasklet(unsigne } EXPORT_SYMBOL_GPL(rt2800mmio_autowake_tasklet); @@ -120,8 +120,8 @@ Signed-off-by: Gabor Juhos /* * Never disable the TX_FIFO_STATUS interrupt. */ ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -989,6 +989,11 @@ struct rt2x00_dev { int rf_channel; diff --git a/package/kernel/mac80211/patches/601-rt2x00-set_pci_mwi.patch b/package/kernel/mac80211/patches/601-rt2x00-set_pci_mwi.patch index 08c8fa651c..a40716163f 100644 --- a/package/kernel/mac80211/patches/601-rt2x00-set_pci_mwi.patch +++ b/package/kernel/mac80211/patches/601-rt2x00-set_pci_mwi.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2x00pci.c -+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00pci.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00pci.c @@ -94,8 +94,10 @@ int rt2x00pci_probe(struct pci_dev *pci_ pci_set_master(pci_dev); diff --git a/package/kernel/mac80211/patches/602-rt2x00-introduce-rt2x00_platform_h.patch b/package/kernel/mac80211/patches/602-rt2x00-introduce-rt2x00_platform_h.patch index 8c71075b5c..7a183a404b 100644 --- a/package/kernel/mac80211/patches/602-rt2x00-introduce-rt2x00_platform_h.patch +++ b/package/kernel/mac80211/patches/602-rt2x00-introduce-rt2x00_platform_h.patch @@ -20,8 +20,8 @@ +}; + +#endif /* _RT2X00_PLATFORM_H */ ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -38,6 +38,7 @@ #include #include diff --git a/package/kernel/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch b/package/kernel/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch index 1255d75725..855bc8292d 100644 --- a/package/kernel/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch +++ b/package/kernel/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch @@ -1,15 +1,15 @@ --- a/.local-symbols +++ b/.local-symbols -@@ -314,6 +314,7 @@ RT2X00_LIB_FIRMWARE= +@@ -329,6 +329,7 @@ RT2X00_LIB_FIRMWARE= RT2X00_LIB_CRYPTO= RT2X00_LIB_LEDS= RT2X00_LIB_DEBUGFS= +RT2X00_LIB_EEPROM= RT2X00_DEBUG= - WL_MEDIATEK= - MT7601U= ---- a/drivers/net/wireless/rt2x00/Kconfig -+++ b/drivers/net/wireless/rt2x00/Kconfig + WLAN_VENDOR_REALTEK= + RTL8180= +--- a/drivers/net/wireless/ralink/rt2x00/Kconfig ++++ b/drivers/net/wireless/ralink/rt2x00/Kconfig @@ -69,6 +69,7 @@ config RT2800PCI select RT2X00_LIB_MMIO select RT2X00_LIB_PCI @@ -36,8 +36,8 @@ config RT2X00_LIB_LEDS bool default y if (RT2X00_LIB=y && LEDS_CLASS=y) || (RT2X00_LIB=m && LEDS_CLASS!=n) ---- a/drivers/net/wireless/rt2x00/Makefile -+++ b/drivers/net/wireless/rt2x00/Makefile +--- a/drivers/net/wireless/ralink/rt2x00/Makefile ++++ b/drivers/net/wireless/ralink/rt2x00/Makefile @@ -7,6 +7,7 @@ rt2x00lib-$(CPTCFG_RT2X00_LIB_DEBUGFS) + rt2x00lib-$(CPTCFG_RT2X00_LIB_CRYPTO) += rt2x00crypto.o rt2x00lib-$(CPTCFG_RT2X00_LIB_FIRMWARE) += rt2x00firmware.o @@ -46,8 +46,8 @@ obj-$(CPTCFG_RT2X00_LIB) += rt2x00lib.o obj-$(CPTCFG_RT2X00_LIB_MMIO) += rt2x00mmio.o ---- a/drivers/net/wireless/rt2x00/rt2800lib.h -+++ b/drivers/net/wireless/rt2x00/rt2800lib.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h @@ -46,6 +46,8 @@ struct rt2800_drv_data { } shmem_lock; }; @@ -73,8 +73,8 @@ return rt2800ops->read_eeprom(rt2x00dev); } ---- a/drivers/net/wireless/rt2x00/rt2800soc.c -+++ b/drivers/net/wireless/rt2x00/rt2800soc.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c @@ -102,19 +102,6 @@ static int rt2800soc_set_device_state(st return retval; } @@ -103,8 +103,8 @@ .hwcrypt_disabled = rt2800soc_hwcrypt_disabled, .drv_write_firmware = rt2800soc_write_firmware, .drv_init_registers = rt2800mmio_init_registers, ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -697,6 +697,7 @@ enum rt2x00_capability_flags { REQUIRE_HT_TX_DESC, REQUIRE_PS_AUTOWAKE, @@ -125,8 +125,8 @@ * FIFO for storing tx status reports between isr and tasklet. */ DECLARE_KFIFO_PTR(txstatus_fifo, u32); ---- a/drivers/net/wireless/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c @@ -1334,6 +1334,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup); INIT_WORK(&rt2x00dev->sleep_work, rt2x00lib_sleep); @@ -151,7 +151,7 @@ EXPORT_SYMBOL_GPL(rt2x00lib_remove_dev); --- /dev/null -+++ b/drivers/net/wireless/rt2x00/rt2x00eeprom.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c @@ -0,0 +1,111 @@ +/* + Copyright (C) 2004 - 2009 Ivo van Doorn @@ -264,8 +264,8 @@ + release_firmware(rt2x00dev->eeprom_file); + rt2x00dev->eeprom_file = NULL; +} ---- a/drivers/net/wireless/rt2x00/rt2x00lib.h -+++ b/drivers/net/wireless/rt2x00/rt2x00lib.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00lib.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00lib.h @@ -320,6 +320,22 @@ static inline void rt2x00lib_free_firmwa #endif /* CPTCFG_RT2X00_LIB_FIRMWARE */ @@ -289,8 +289,8 @@ * Debugfs handlers. */ #ifdef CPTCFG_RT2X00_LIB_DEBUGFS ---- a/drivers/net/wireless/rt2x00/rt2x00soc.c -+++ b/drivers/net/wireless/rt2x00/rt2x00soc.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00soc.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00soc.c @@ -92,6 +92,7 @@ int rt2x00soc_probe(struct platform_devi rt2x00dev->hw = hw; rt2x00dev->irq = platform_get_irq(pdev, 0); diff --git a/package/kernel/mac80211/patches/604-rt2x00-of_load_eeprom_filename.patch b/package/kernel/mac80211/patches/604-rt2x00-of_load_eeprom_filename.patch index 4bc6f37adb..9dffef1812 100644 --- a/package/kernel/mac80211/patches/604-rt2x00-of_load_eeprom_filename.patch +++ b/package/kernel/mac80211/patches/604-rt2x00-of_load_eeprom_filename.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2x00eeprom.c -+++ b/drivers/net/wireless/rt2x00/rt2x00eeprom.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c @@ -26,6 +26,7 @@ #include diff --git a/package/kernel/mac80211/patches/605-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch b/package/kernel/mac80211/patches/605-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch index 75f0415b73..5dceff8794 100644 --- a/package/kernel/mac80211/patches/605-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch +++ b/package/kernel/mac80211/patches/605-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch @@ -6,12 +6,12 @@ Subject: [PATCH] rt2x00: load eeprom on SoC from a mtd device defines inside Signed-off-by: John Crispin --- - drivers/net/wireless/rt2x00/Kconfig | 1 + - drivers/net/wireless/rt2x00/rt2800pci.c | 44 ++++++++++++++++++++++++++----- + drivers/net/wireless/ralink/rt2x00/Kconfig | 1 + + drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 44 ++++++++++++++++++++++++++----- 2 files changed, 39 insertions(+), 6 deletions(-) ---- a/drivers/net/wireless/rt2x00/Kconfig -+++ b/drivers/net/wireless/rt2x00/Kconfig +--- a/drivers/net/wireless/ralink/rt2x00/Kconfig ++++ b/drivers/net/wireless/ralink/rt2x00/Kconfig @@ -219,6 +219,7 @@ config RT2800SOC select RT2X00_LIB_EEPROM select RT2800_LIB @@ -20,8 +20,8 @@ Signed-off-by: John Crispin ---help--- This adds support for Ralink WiSoC devices. Supported chips: RT2880, RT3050, RT3052, RT3350, RT3352. ---- a/drivers/net/wireless/rt2x00/rt2x00eeprom.c -+++ b/drivers/net/wireless/rt2x00/rt2x00eeprom.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c @@ -26,11 +26,66 @@ #include @@ -79,7 +79,7 @@ Signed-off-by: John Crispin + if (!ret) { + rt2x00dev->eeprom_file = &mtd_fw; + mtd_fw.size = len; -+ mtd_fw.data = rt2x00dev->eeprom; ++ mtd_fw.data = (const u8 *) rt2x00dev->eeprom; + } +#endif + diff --git a/package/kernel/mac80211/patches/607-rt2x00-allow_disabling_bands_through_platform_data.patch b/package/kernel/mac80211/patches/607-rt2x00-allow_disabling_bands_through_platform_data.patch index 76269f2bb7..d923e05c77 100644 --- a/package/kernel/mac80211/patches/607-rt2x00-allow_disabling_bands_through_platform_data.patch +++ b/package/kernel/mac80211/patches/607-rt2x00-allow_disabling_bands_through_platform_data.patch @@ -10,8 +10,8 @@ }; #endif /* _RT2X00_PLATFORM_H */ ---- a/drivers/net/wireless/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c @@ -940,6 +940,22 @@ static int rt2x00lib_probe_hw_modes(stru unsigned int num_rates; unsigned int i; @@ -35,8 +35,8 @@ num_rates = 0; if (spec->supported_rates & SUPPORT_RATE_CCK) num_rates += 4; ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -405,6 +405,7 @@ struct hw_mode_spec { unsigned int supported_bands; #define SUPPORT_BAND_2GHZ 0x00000001 diff --git a/package/kernel/mac80211/patches/608-add_platform_data_mac_addr.patch b/package/kernel/mac80211/patches/608-add_platform_data_mac_addr.patch index 0177c80256..848e71bd0a 100644 --- a/package/kernel/mac80211/patches/608-add_platform_data_mac_addr.patch +++ b/package/kernel/mac80211/patches/608-add_platform_data_mac_addr.patch @@ -8,8 +8,8 @@ int disable_2ghz; int disable_5ghz; ---- a/drivers/net/wireless/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c @@ -931,6 +931,18 @@ static void rt2x00lib_rate(struct ieee80 entry->flags |= IEEE80211_RATE_SHORT_PREAMBLE; } @@ -29,8 +29,8 @@ static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev, struct hw_mode_spec *spec) { ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -1412,6 +1412,7 @@ static inline void rt2x00debug_dump_fram */ u32 rt2x00lib_get_bssidx(struct rt2x00_dev *rt2x00dev, @@ -39,8 +39,8 @@ /* * Interrupt context handlers. ---- a/drivers/net/wireless/rt2x00/rt61pci.c -+++ b/drivers/net/wireless/rt2x00/rt61pci.c +--- a/drivers/net/wireless/ralink/rt2x00/rt61pci.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.c @@ -2390,6 +2390,7 @@ static int rt61pci_validate_eeprom(struc u32 reg; u16 word; diff --git a/package/kernel/mac80211/patches/609-rt2x00-allow_disabling_bands_through_dts.patch b/package/kernel/mac80211/patches/609-rt2x00-allow_disabling_bands_through_dts.patch index 63a8641464..3fdaae759b 100644 --- a/package/kernel/mac80211/patches/609-rt2x00-allow_disabling_bands_through_dts.patch +++ b/package/kernel/mac80211/patches/609-rt2x00-allow_disabling_bands_through_dts.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c @@ -26,6 +26,7 @@ #include #include diff --git a/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch b/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch index d6ea384254..bbcf10a4b4 100644 --- a/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch +++ b/package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -3528,11 +3528,18 @@ static void rt2800_config_channel(struct /* * Change BBP settings @@ -137,8 +137,8 @@ return 0; } ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -2335,6 +2335,12 @@ struct mac_iveiv_entry { #define RFCSR36_RF_BS FIELD8(0x80) @@ -198,8 +198,8 @@ /* * EEPROM frequency ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -717,6 +717,8 @@ enum rt2x00_capability_flags { CAPABILITY_DOUBLE_ANTENNA, CAPABILITY_BT_COEXIST, diff --git a/package/kernel/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch b/package/kernel/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch index 41a8294aff..432d2dad73 100644 --- a/package/kernel/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch +++ b/package/kernel/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -8185,6 +8185,27 @@ static const struct rf_channel rf_vals_5 {196, 83, 0, 12, 1}, }; @@ -76,8 +76,8 @@ * Initialize hw specifications. */ retval = rt2800_probe_hw_mode(rt2x00dev); ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -400,6 +400,7 @@ static inline struct rt2x00_intf* vif_to * @channels: Device/chipset specific channel values (See &struct rf_channel). * @channels_info: Additional information for channels (See &struct channel_info). diff --git a/package/kernel/mac80211/patches/612-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch b/package/kernel/mac80211/patches/612-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch index 1970efc08c..e4b028b1a9 100644 --- a/package/kernel/mac80211/patches/612-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch +++ b/package/kernel/mac80211/patches/612-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch @@ -8,11 +8,11 @@ devicetree. Signed-off-by: John Crispin --- - drivers/net/wireless/rt2x00/rt2800pci.c | 7 +++++++ + drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/drivers/net/wireless/rt2x00/rt2800soc.c -+++ b/drivers/net/wireless/rt2x00/rt2800soc.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c @@ -237,10 +237,17 @@ static int rt2800soc_probe(struct platfo return rt2x00soc_probe(pdev, &rt2800soc_ops); } diff --git a/package/kernel/mac80211/patches/615-rt2x00-fix_20mhz_clk.patch b/package/kernel/mac80211/patches/615-rt2x00-fix_20mhz_clk.patch index 9f11862a1c..fc5eb4715e 100644 --- a/package/kernel/mac80211/patches/615-rt2x00-fix_20mhz_clk.patch +++ b/package/kernel/mac80211/patches/615-rt2x00-fix_20mhz_clk.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -36,6 +36,7 @@ #include #include diff --git a/package/kernel/mac80211/patches/616-rt2x00-support-rt5350.patch b/package/kernel/mac80211/patches/616-rt2x00-support-rt5350.patch index 9679d710c1..7af443a078 100644 --- a/package/kernel/mac80211/patches/616-rt2x00-support-rt5350.patch +++ b/package/kernel/mac80211/patches/616-rt2x00-support-rt5350.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -74,6 +74,7 @@ #define RF3070 0x3070 #define RF3290 0x3290 @@ -8,8 +8,8 @@ #define RF5360 0x5360 #define RF5362 0x5362 #define RF5370 0x5370 ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -3014,6 +3014,13 @@ static void rt2800_config_channel_rf53xx rt2800_rfcsr_write(rt2x00dev, 59, @@ -264,8 +264,8 @@ case RT5390: case RT5392: case RT5592: ---- a/drivers/net/wireless/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/rt2x00/rt2x00.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -169,6 +169,7 @@ struct rt2x00_chip { #define RT3572 0x3572 #define RT3593 0x3593 diff --git a/package/kernel/mac80211/patches/619-rt2x00-change-led-polarity-from-OF.patch b/package/kernel/mac80211/patches/619-rt2x00-change-led-polarity-from-OF.patch index b085c5e670..4595a53721 100644 --- a/package/kernel/mac80211/patches/619-rt2x00-change-led-polarity-from-OF.patch +++ b/package/kernel/mac80211/patches/619-rt2x00-change-led-polarity-from-OF.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -37,6 +37,7 @@ #include #include @@ -26,8 +26,8 @@ rt2x00dev->led_mcu_reg = eeprom; #endif /* CPTCFG_RT2X00_LIB_LEDS */ ---- a/drivers/net/wireless/rt2x00/rt2x00leds.c -+++ b/drivers/net/wireless/rt2x00/rt2x00leds.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00leds.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00leds.c @@ -109,6 +109,9 @@ static int rt2x00leds_register_led(struc led->led_dev.name = name; led->led_dev.brightness = LED_OFF; diff --git a/package/kernel/mac80211/patches/620-rt2x00-add-AP+STA-support.patch b/package/kernel/mac80211/patches/620-rt2x00-add-AP+STA-support.patch index 2dbfd10f70..dba6033edb 100644 --- a/package/kernel/mac80211/patches/620-rt2x00-add-AP+STA-support.patch +++ b/package/kernel/mac80211/patches/620-rt2x00-add-AP+STA-support.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c @@ -1283,7 +1283,7 @@ static inline void rt2x00lib_set_if_comb */ if_limit = &rt2x00dev->if_limits_ap; diff --git a/package/kernel/mac80211/patches/620-rt2x00-rt3352-rf-id.patch b/package/kernel/mac80211/patches/620-rt2x00-rt3352-rf-id.patch index 259cb1f1b2..d221561d89 100644 --- a/package/kernel/mac80211/patches/620-rt2x00-rt3352-rf-id.patch +++ b/package/kernel/mac80211/patches/620-rt2x00-rt3352-rf-id.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -7817,10 +7817,11 @@ static int rt2800_init_eeprom(struct rt2 * RT53xx: defined in "EEPROM_CHIP_ID" field */ diff --git a/package/kernel/mac80211/patches/621-rt2x00-ht20_40_fix.patch b/package/kernel/mac80211/patches/621-rt2x00-ht20_40_fix.patch index 77d63febd5..7e5f3040ed 100644 --- a/package/kernel/mac80211/patches/621-rt2x00-ht20_40_fix.patch +++ b/package/kernel/mac80211/patches/621-rt2x00-ht20_40_fix.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -2321,6 +2321,8 @@ struct mac_iveiv_entry { #define RFCSR30_RX_H20M FIELD8(0x04) #define RFCSR30_RX_VCM FIELD8(0x18) @@ -9,8 +9,8 @@ /* * RFCSR 31: ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -3527,8 +3527,13 @@ static void rt2800_config_channel(struct rt2x00_rf(rt2x00dev, RF5390) || rt2x00_rf(rt2x00dev, RF5392)) { diff --git a/package/kernel/mac80211/patches/622-rt2x00-fix-beacon-bit-balance.patch b/package/kernel/mac80211/patches/622-rt2x00-fix-beacon-bit-balance.patch index 78bc89fd3a..dd04454328 100644 --- a/package/kernel/mac80211/patches/622-rt2x00-fix-beacon-bit-balance.patch +++ b/package/kernel/mac80211/patches/622-rt2x00-fix-beacon-bit-balance.patch @@ -1,6 +1,6 @@ ---- a/drivers/net/wireless/rt2x00/rt2x00mac.c -+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c -@@ -632,12 +632,8 @@ +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c +@@ -632,12 +632,8 @@ void rt2x00mac_bss_info_changed(struct i } else if (bss_conf->enable_beacon && !intf->enable_beacon) { rt2x00dev->intf_beaconing++; intf->enable_beacon = true; @@ -15,9 +15,9 @@ if (rt2x00dev->intf_beaconing == 1) { /* ---- a/drivers/net/wireless/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c -@@ -144,7 +144,8 @@ +--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c +@@ -144,7 +144,8 @@ static void rt2x00lib_intf_scheduled_ite if (test_and_clear_bit(DELAYED_UPDATE_BEACON, &intf->delayed_flags)) { mutex_lock(&intf->beacon_skb_mutex); @@ -27,7 +27,7 @@ mutex_unlock(&intf->beacon_skb_mutex); } } -@@ -207,6 +208,7 @@ +@@ -207,6 +208,7 @@ static void rt2x00lib_beaconupdate_iter( struct ieee80211_vif *vif) { struct rt2x00_dev *rt2x00dev = data; @@ -35,7 +35,7 @@ if (vif->type != NL80211_IFTYPE_AP && vif->type != NL80211_IFTYPE_ADHOC && -@@ -220,7 +222,8 @@ +@@ -220,7 +222,8 @@ static void rt2x00lib_beaconupdate_iter( * never be called for USB devices. */ WARN_ON(rt2x00_is_usb(rt2x00dev)); diff --git a/package/kernel/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch b/package/kernel/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch index 9903aa505c..de3b1d8cd2 100644 --- a/package/kernel/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch +++ b/package/kernel/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/mwl8k.c -+++ b/drivers/net/wireless/mwl8k.c +--- a/drivers/net/wireless/marvell/mwl8k.c ++++ b/drivers/net/wireless/marvell/mwl8k.c @@ -5679,6 +5679,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw") MODULE_FIRMWARE(MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API)); diff --git a/package/kernel/mac80211/patches/801-libertas-configure-sysfs-links.patch b/package/kernel/mac80211/patches/801-libertas-configure-sysfs-links.patch index 3b8b75684c..fd885cc002 100644 --- a/package/kernel/mac80211/patches/801-libertas-configure-sysfs-links.patch +++ b/package/kernel/mac80211/patches/801-libertas-configure-sysfs-links.patch @@ -1,6 +1,6 @@ ---- a/drivers/net/wireless/libertas/cfg.c -+++ b/drivers/net/wireless/libertas/cfg.c -@@ -2083,6 +2083,8 @@ struct wireless_dev *lbs_cfg_alloc(struc +--- a/drivers/net/wireless/marvell/libertas/cfg.c ++++ b/drivers/net/wireless/marvell/libertas/cfg.c +@@ -2084,6 +2084,8 @@ struct wireless_dev *lbs_cfg_alloc(struc goto err_wiphy_new; } @@ -9,8 +9,8 @@ lbs_deb_leave(LBS_DEB_CFG80211); return wdev; ---- a/drivers/net/wireless/libertas/main.c -+++ b/drivers/net/wireless/libertas/main.c +--- a/drivers/net/wireless/marvell/libertas/main.c ++++ b/drivers/net/wireless/marvell/libertas/main.c @@ -987,6 +987,7 @@ struct lbs_private *lbs_add_card(void *c goto err_adapter; } diff --git a/package/kernel/mac80211/patches/802-libertas-set-wireless-macaddr.patch b/package/kernel/mac80211/patches/802-libertas-set-wireless-macaddr.patch index dace56b070..b67a95f948 100644 --- a/package/kernel/mac80211/patches/802-libertas-set-wireless-macaddr.patch +++ b/package/kernel/mac80211/patches/802-libertas-set-wireless-macaddr.patch @@ -1,6 +1,6 @@ ---- a/drivers/net/wireless/libertas/cfg.c -+++ b/drivers/net/wireless/libertas/cfg.c -@@ -2173,6 +2173,8 @@ int lbs_cfg_register(struct lbs_private +--- a/drivers/net/wireless/marvell/libertas/cfg.c ++++ b/drivers/net/wireless/marvell/libertas/cfg.c +@@ -2174,6 +2174,8 @@ int lbs_cfg_register(struct lbs_private wdev->wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites); wdev->wiphy->reg_notifier = lbs_reg_notifier; diff --git a/package/kernel/mac80211/patches/805-b43-gpio-mask-module-option.patch b/package/kernel/mac80211/patches/805-b43-gpio-mask-module-option.patch index 6de31dd60f..fd9e6fd974 100644 --- a/package/kernel/mac80211/patches/805-b43-gpio-mask-module-option.patch +++ b/package/kernel/mac80211/patches/805-b43-gpio-mask-module-option.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/b43/b43.h -+++ b/drivers/net/wireless/b43/b43.h +--- a/drivers/net/wireless/broadcom/b43/b43.h ++++ b/drivers/net/wireless/broadcom/b43/b43.h @@ -839,6 +839,7 @@ struct b43_wldev { bool qos_enabled; /* TRUE, if QoS is used. */ bool hwcrypto_enabled; /* TRUE, if HW crypto acceleration is enabled. */ @@ -8,8 +8,8 @@ /* PHY/Radio device. */ struct b43_phy phy; ---- a/drivers/net/wireless/b43/main.c -+++ b/drivers/net/wireless/b43/main.c +--- a/drivers/net/wireless/broadcom/b43/main.c ++++ b/drivers/net/wireless/broadcom/b43/main.c @@ -75,6 +75,11 @@ MODULE_FIRMWARE("b43/ucode16_mimo.fw"); MODULE_FIRMWARE("b43/ucode5.fw"); MODULE_FIRMWARE("b43/ucode9.fw"); diff --git a/package/kernel/mac80211/patches/810-b43_no_pio.patch b/package/kernel/mac80211/patches/810-b43_no_pio.patch index 79175528ed..79428c2784 100644 --- a/package/kernel/mac80211/patches/810-b43_no_pio.patch +++ b/package/kernel/mac80211/patches/810-b43_no_pio.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/b43/Makefile -+++ b/drivers/net/wireless/b43/Makefile +--- a/drivers/net/wireless/broadcom/b43/Makefile ++++ b/drivers/net/wireless/broadcom/b43/Makefile @@ -17,7 +17,7 @@ b43-$(CPTCFG_B43_PHY_AC) += phy_ac.o b43-y += sysfs.o b43-y += xmit.o @@ -9,8 +9,8 @@ b43-y += rfkill.o b43-y += ppr.o b43-$(CPTCFG_B43_LEDS) += leds.o ---- a/drivers/net/wireless/b43/main.c -+++ b/drivers/net/wireless/b43/main.c +--- a/drivers/net/wireless/broadcom/b43/main.c ++++ b/drivers/net/wireless/broadcom/b43/main.c @@ -2008,10 +2008,12 @@ static void b43_do_interrupt_thread(stru dma_reason[0], dma_reason[1], dma_reason[2], dma_reason[3], @@ -24,8 +24,8 @@ b43_controller_restart(dev, "DMA error"); return; } ---- a/drivers/net/wireless/b43/pio.h -+++ b/drivers/net/wireless/b43/pio.h +--- a/drivers/net/wireless/broadcom/b43/pio.h ++++ b/drivers/net/wireless/broadcom/b43/pio.h @@ -150,7 +150,7 @@ static inline void b43_piorx_write32(str b43_write32(q->dev, q->mmio_base + offset, value); } @@ -73,8 +73,8 @@ +#endif /* CPTCFG_B43_PIO */ #endif /* B43_PIO_H_ */ ---- a/drivers/net/wireless/b43/Kconfig -+++ b/drivers/net/wireless/b43/Kconfig +--- a/drivers/net/wireless/broadcom/b43/Kconfig ++++ b/drivers/net/wireless/broadcom/b43/Kconfig @@ -98,7 +98,7 @@ config B43_BCMA_PIO default y diff --git a/package/kernel/mac80211/patches/820-b43-add-antenna-control.patch b/package/kernel/mac80211/patches/820-b43-add-antenna-control.patch index dd82ce5032..06c731fce6 100644 --- a/package/kernel/mac80211/patches/820-b43-add-antenna-control.patch +++ b/package/kernel/mac80211/patches/820-b43-add-antenna-control.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/b43/main.c -+++ b/drivers/net/wireless/b43/main.c +--- a/drivers/net/wireless/broadcom/b43/main.c ++++ b/drivers/net/wireless/broadcom/b43/main.c @@ -1648,7 +1648,7 @@ static void b43_write_beacon_template(st len, ram_offset, shm_size_offset, rate); @@ -118,8 +118,8 @@ wl->hw_registred = false; hw->max_rates = 2; SET_IEEE80211_DEV(hw, dev->dev); ---- a/drivers/net/wireless/b43/b43.h -+++ b/drivers/net/wireless/b43/b43.h +--- a/drivers/net/wireless/broadcom/b43/b43.h ++++ b/drivers/net/wireless/broadcom/b43/b43.h @@ -840,6 +840,8 @@ struct b43_wldev { bool hwcrypto_enabled; /* TRUE, if HW crypto acceleration is enabled. */ bool use_pio; /* TRUE if next init should use PIO */ diff --git a/package/kernel/mac80211/patches/841-b43-reduce-number-of-RX-slots.patch b/package/kernel/mac80211/patches/841-b43-reduce-number-of-RX-slots.patch index 9c51ac63d7..5899706896 100644 --- a/package/kernel/mac80211/patches/841-b43-reduce-number-of-RX-slots.patch +++ b/package/kernel/mac80211/patches/841-b43-reduce-number-of-RX-slots.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/b43/dma.h -+++ b/drivers/net/wireless/b43/dma.h +--- a/drivers/net/wireless/broadcom/b43/dma.h ++++ b/drivers/net/wireless/broadcom/b43/dma.h @@ -169,7 +169,7 @@ struct b43_dmadesc_generic { /* DMA engine tuning knobs */ diff --git a/package/kernel/mac80211/patches/845-b43-only-use-gpio-0-1-for-led.patch b/package/kernel/mac80211/patches/845-b43-only-use-gpio-0-1-for-led.patch index d4f9a8892b..8d0c0412d2 100644 --- a/package/kernel/mac80211/patches/845-b43-only-use-gpio-0-1-for-led.patch +++ b/package/kernel/mac80211/patches/845-b43-only-use-gpio-0-1-for-led.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/b43/main.c -+++ b/drivers/net/wireless/b43/main.c +--- a/drivers/net/wireless/broadcom/b43/main.c ++++ b/drivers/net/wireless/broadcom/b43/main.c @@ -2899,6 +2899,14 @@ static int b43_gpio_init(struct b43_wlde } else if (dev->dev->chip_id == 0x5354) { /* Don't allow overtaking buttons GPIOs */ diff --git a/package/kernel/mac80211/patches/847-b43-always-take-overlapping-devs.patch b/package/kernel/mac80211/patches/847-b43-always-take-overlapping-devs.patch index e3b8133483..ef7f3c92d2 100644 --- a/package/kernel/mac80211/patches/847-b43-always-take-overlapping-devs.patch +++ b/package/kernel/mac80211/patches/847-b43-always-take-overlapping-devs.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/b43/main.c -+++ b/drivers/net/wireless/b43/main.c +--- a/drivers/net/wireless/broadcom/b43/main.c ++++ b/drivers/net/wireless/broadcom/b43/main.c @@ -117,7 +117,7 @@ static int b43_modparam_pio = 0; module_param_named(pio, b43_modparam_pio, int, 0644); MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO"); diff --git a/package/kernel/mac80211/patches/850-brcmsmac-remove-extra-regulation-restriction.patch b/package/kernel/mac80211/patches/850-brcmsmac-remove-extra-regulation-restriction.patch index 185c4279e9..3c93386b30 100644 --- a/package/kernel/mac80211/patches/850-brcmsmac-remove-extra-regulation-restriction.patch +++ b/package/kernel/mac80211/patches/850-brcmsmac-remove-extra-regulation-restriction.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/brcm80211/brcmsmac/channel.c -+++ b/drivers/net/wireless/brcm80211/brcmsmac/channel.c +--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c @@ -58,19 +58,12 @@ (((c) < 149) ? 3 : 4)))) diff --git a/package/kernel/mac80211/patches/861-brcmfmac-register-wiphy-s-during-module_init.patch b/package/kernel/mac80211/patches/861-brcmfmac-register-wiphy-s-during-module_init.patch index d60d3fa711..03ee2b5b86 100644 --- a/package/kernel/mac80211/patches/861-brcmfmac-register-wiphy-s-during-module_init.patch +++ b/package/kernel/mac80211/patches/861-brcmfmac-register-wiphy-s-during-module_init.patch @@ -11,9 +11,9 @@ module loads successfully. Signed-off-by: Rafał Miłecki --- ---- a/drivers/net/wireless/brcm80211/brcmfmac/core.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/core.c -@@ -1236,6 +1236,7 @@ static int __init brcmfmac_module_init(v +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +@@ -1226,6 +1226,7 @@ static int __init brcmfmac_module_init(v #endif if (!schedule_work(&brcmf_driver_work)) return -EBUSY; @@ -21,8 +21,8 @@ Signed-off-by: Rafał Miłecki return 0; } ---- a/drivers/net/wireless/brcm80211/brcmfmac/firmware.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/firmware.c +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c @@ -420,6 +420,7 @@ struct brcmf_fw { u16 bus_nr; void (*done)(struct device *dev, const struct firmware *fw, @@ -31,7 +31,7 @@ Signed-off-by: Rafał Miłecki }; static void brcmf_fw_request_nvram_done(const struct firmware *fw, void *ctx) -@@ -455,6 +456,8 @@ static void brcmf_fw_request_nvram_done( +@@ -454,6 +455,8 @@ static void brcmf_fw_request_nvram_done( goto fail; fwctx->done(fwctx->dev, fwctx->code, nvram, nvram_length); @@ -40,7 +40,7 @@ Signed-off-by: Rafał Miłecki kfree(fwctx); return; -@@ -462,6 +465,8 @@ fail: +@@ -461,6 +464,8 @@ fail: brcmf_dbg(TRACE, "failed: dev=%s\n", dev_name(fwctx->dev)); release_firmware(fwctx->code); device_release_driver(fwctx->dev); @@ -49,7 +49,7 @@ Signed-off-by: Rafał Miłecki kfree(fwctx); } -@@ -477,6 +482,8 @@ static void brcmf_fw_request_code_done(c +@@ -476,6 +481,8 @@ static void brcmf_fw_request_code_done(c /* only requested code so done here */ if (!(fwctx->flags & BRCMF_FW_REQUEST_NVRAM)) { fwctx->done(fwctx->dev, fw, NULL, 0); @@ -58,7 +58,7 @@ Signed-off-by: Rafał Miłecki kfree(fwctx); return; } -@@ -494,6 +501,8 @@ static void brcmf_fw_request_code_done(c +@@ -493,6 +500,8 @@ static void brcmf_fw_request_code_done(c fail: brcmf_dbg(TRACE, "failed: dev=%s\n", dev_name(fwctx->dev)); device_release_driver(fwctx->dev); @@ -67,7 +67,7 @@ Signed-off-by: Rafał Miłecki kfree(fwctx); } -@@ -505,6 +514,8 @@ int brcmf_fw_get_firmwares_pcie(struct d +@@ -504,6 +513,8 @@ int brcmf_fw_get_firmwares_pcie(struct d u16 domain_nr, u16 bus_nr) { struct brcmf_fw *fwctx; @@ -76,7 +76,7 @@ Signed-off-by: Rafał Miłecki brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev)); if (!fw_cb || !code) -@@ -525,9 +536,17 @@ int brcmf_fw_get_firmwares_pcie(struct d +@@ -524,9 +535,17 @@ int brcmf_fw_get_firmwares_pcie(struct d fwctx->domain_nr = domain_nr; fwctx->bus_nr = bus_nr; diff --git a/package/kernel/mac80211/patches/862-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch b/package/kernel/mac80211/patches/862-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch index 43582f6d23..2201e82e02 100644 --- a/package/kernel/mac80211/patches/862-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch +++ b/package/kernel/mac80211/patches/862-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch @@ -8,8 +8,8 @@ Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- ---- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -609,9 +609,37 @@ static struct wireless_dev *brcmf_cfg802 u32 *flags, struct vif_params *params) diff --git a/package/kernel/mac80211/patches/910-00-rt2x00-enable-rt2800soc-for-mt7620.patch b/package/kernel/mac80211/patches/910-00-rt2x00-enable-rt2800soc-for-mt7620.patch index e6b2d7be0d..bc9f799520 100644 --- a/package/kernel/mac80211/patches/910-00-rt2x00-enable-rt2800soc-for-mt7620.patch +++ b/package/kernel/mac80211/patches/910-00-rt2x00-enable-rt2800soc-for-mt7620.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/Kconfig -+++ b/drivers/net/wireless/rt2x00/Kconfig +--- a/drivers/net/wireless/ralink/rt2x00/Kconfig ++++ b/drivers/net/wireless/ralink/rt2x00/Kconfig @@ -211,7 +211,7 @@ endif config RT2800SOC tristate "Ralink WiSoC support" diff --git a/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch b/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch index b0536ce9a3..354aee7bb6 100644 --- a/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch +++ b/package/kernel/mac80211/patches/910-01-add-support-for-mt7620.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h +--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h @@ -81,6 +81,7 @@ #define RF5372 0x5372 #define RF5390 0x5390 @@ -62,8 +62,8 @@ /* TX_PWR_CFG_7 */ #define TX_PWR_CFG_7 0x13d4 #define TX_PWR_CFG_7_OFDM54_CH0 FIELD32(0x0000000f) ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c +--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -61,6 +61,8 @@ rt2800_regbusy_read((__dev), BBP_CSR_CFG, BBP_CSR_CFG_BUSY, (__reg)) #define WAIT_FOR_RFCSR(__dev, __reg) \ diff --git a/package/kernel/mac80211/patches/921-ath10k_init_devices_synchronously.patch b/package/kernel/mac80211/patches/921-ath10k_init_devices_synchronously.patch index af35560a15..8c6d720a73 100644 --- a/package/kernel/mac80211/patches/921-ath10k_init_devices_synchronously.patch +++ b/package/kernel/mac80211/patches/921-ath10k_init_devices_synchronously.patch @@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -1844,6 +1844,16 @@ int ath10k_core_register(struct ath10k * +@@ -1914,6 +1914,16 @@ int ath10k_core_register(struct ath10k * ar->chip_id = chip_id; queue_work(ar->workqueue, &ar->register_work); diff --git a/package/kernel/mac80211/patches/930-ath10k_add_tpt_led_trigger.patch b/package/kernel/mac80211/patches/930-ath10k_add_tpt_led_trigger.patch index f2718c78c9..39c6f2476d 100644 --- a/package/kernel/mac80211/patches/930-ath10k_add_tpt_led_trigger.patch +++ b/package/kernel/mac80211/patches/930-ath10k_add_tpt_led_trigger.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -7092,6 +7092,21 @@ struct ath10k_vif *ath10k_get_arvif(stru +@@ -7138,6 +7138,21 @@ struct ath10k_vif *ath10k_get_arvif(stru return arvif_iter.arvif; } @@ -22,7 +22,7 @@ int ath10k_mac_register(struct ath10k *ar) { static const u32 cipher_suites[] = { -@@ -7317,6 +7332,12 @@ int ath10k_mac_register(struct ath10k *a +@@ -7354,6 +7369,12 @@ int ath10k_mac_register(struct ath10k *a ar->hw->wiphy->cipher_suites = cipher_suites; ar->hw->wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites); diff --git a/package/kernel/mac80211/patches/940-mwl8k_init_devices_synchronously.patch b/package/kernel/mac80211/patches/940-mwl8k_init_devices_synchronously.patch index d487504c22..e10534c84f 100644 --- a/package/kernel/mac80211/patches/940-mwl8k_init_devices_synchronously.patch +++ b/package/kernel/mac80211/patches/940-mwl8k_init_devices_synchronously.patch @@ -1,5 +1,5 @@ ---- a/drivers/net/wireless/mwl8k.c -+++ b/drivers/net/wireless/mwl8k.c +--- a/drivers/net/wireless/marvell/mwl8k.c ++++ b/drivers/net/wireless/marvell/mwl8k.c @@ -6262,6 +6262,8 @@ static int mwl8k_probe(struct pci_dev *p priv->running_bsses = 0;