[OpenWrt-Devel] [PATCH] mac80211: switch to upstream owl-loader driver

Hauke Mehrtens hauke at hauke-m.de
Sun Nov 17 18:34:01 EST 2019


On 11/17/19 2:44 AM, Christian Lamparter wrote:
> The Owl Loader (named after the codename that Atheros gave
> these devices back in the day) has been accepted upstream.
> 
> This patch removes the "misc" driver OpenWrt had and adds
> the remaining differences against the version that ships
> with 5.4-rc1 into a separate "120-owl-loader-compat.patch"
> file that can be cut down once AR71XX is being dealt with.
> 
> Note: I decided to keep the existing (kmod-)owl-loader
> package name around for now. The kernel module file in
> the kmod package will be called ath9k_pci_owl_loader.ko
> though.
> 
> Signed-off-by: Christian Lamparter <chunkeey at gmail.com>

Acked-by: Hauke Mehrtens <hauke at hauke-m.de>

> ---
>  package/kernel/linux/modules/wireless.mk      |  21 --
>  package/kernel/mac80211/ath.mk                |  20 +-
>  .../patches/ath/120-owl-loader-compat.patch   |  67 +++++
>  .../generic/files/drivers/misc/owl-loader.c   | 246 ------------------
>  .../hack-4.14/835-misc-owl_loader.patch       |  52 ----
>  .../hack-4.19/835-misc-owl_loader.patch       |  52 ----
>  .../hack-4.9/835-misc-owl_loader.patch        |  52 ----
>  7 files changed, 86 insertions(+), 424 deletions(-)
>  create mode 100644 package/kernel/mac80211/patches/ath/120-owl-loader-compat.patch
>  delete mode 100644 target/linux/generic/files/drivers/misc/owl-loader.c
>  delete mode 100644 target/linux/generic/hack-4.14/835-misc-owl_loader.patch
>  delete mode 100644 target/linux/generic/hack-4.19/835-misc-owl_loader.patch
>  delete mode 100644 target/linux/generic/hack-4.9/835-misc-owl_loader.patch
> 
> diff --git a/package/kernel/linux/modules/wireless.mk b/package/kernel/linux/modules/wireless.mk
> index 7b1c663567..72e2bf477b 100644
> --- a/package/kernel/linux/modules/wireless.mk
> +++ b/package/kernel/linux/modules/wireless.mk
> @@ -41,24 +41,3 @@ define KernelPackage/net-rtl8192su/description
>  endef
>  
>  $(eval $(call KernelPackage,net-rtl8192su))
> -
> -
> -define KernelPackage/owl-loader
> -  SUBMENU:=$(WIRELESS_MENU)
> -  TITLE:=Owl loader for initializing Atheros PCI(e) Wifi chips
> -  DEPENDS:=@PCI_SUPPORT
> -  KCONFIG:=CONFIG_OWL_LOADER
> -  FILES:=$(LINUX_DIR)/drivers/misc/owl-loader.ko
> -  AUTOLOAD:=$(call AutoProbe,owl-loader)
> -endef
> -
> -define KernelPackage/owl-loader/description
> -  Kernel module that helps to initialize certain Qualcomm
> -  Atheros' PCI(e) Wifi chips, which have the init data
> -  (which contains the PCI device ID for example) stored
> -  together with the calibration data in the file system.
> -
> -  This is necessary for devices like the Cisco Meraki Z1.
> -endef
> -
> -$(eval $(call KernelPackage,owl-loader))
> diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk
> index 64aac41b4d..788131b751 100644
> --- a/package/kernel/mac80211/ath.mk
> +++ b/package/kernel/mac80211/ath.mk
> @@ -1,6 +1,6 @@
>  PKG_DRIVERS += \
>  	ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k \
> -	carl9170
> +	carl9170 owl-loader
>  
>  PKG_CONFIG_DEPENDS += \
>  	CONFIG_PACKAGE_ATH_DEBUG \
> @@ -38,6 +38,7 @@ config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL
>  config-$(CONFIG_PACKAGE_ATH_DYNACK) += ATH9K_DYNACK
>  config-$(call config_package,ath9k) += ATH9K
>  config-$(call config_package,ath9k-common) += ATH9K_COMMON
> +config-$(call config_package,owl-loader) += ATH9K_PCI_NO_EEPROM
>  config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
>  config-$(CONFIG_TARGET_ath79) += ATH9K_AHB
>  config-$(CONFIG_TARGET_ipq40xx) += ATH10K_AHB
> @@ -274,3 +275,20 @@ define KernelPackage/carl9170
>    FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
>    AUTOLOAD:=$(call AutoProbe,carl9170)
>  endef
> +
> +define KernelPackage/owl-loader
> +  $(call KernelPackage/mac80211/Default)
> +  TITLE:=Owl loader for initializing Atheros PCI(e) Wifi chips
> +  DEPENDS:=@PCI_SUPPORT +kmod-ath9k
> +  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.ko
> +  AUTOLOAD:=$(call AutoProbe,ath9k_pci_owl_loader)
> +endef
> +
> +define KernelPackage/owl-loader/description
> +  Kernel module that helps to initialize certain Qualcomm
> +  Atheros' PCI(e) Wifi chips, which have the init data
> +  (which contains the PCI device ID for example) stored
> +  together with the calibration data in the file system.
> +
> +  This is necessary for devices like the Cisco Meraki Z1.
> +endef
> diff --git a/package/kernel/mac80211/patches/ath/120-owl-loader-compat.patch b/package/kernel/mac80211/patches/ath/120-owl-loader-compat.patch
> new file mode 100644
> index 0000000000..256fca45e4
> --- /dev/null
> +++ b/package/kernel/mac80211/patches/ath/120-owl-loader-compat.patch
> @@ -0,0 +1,67 @@
> +From: Christian Lamparter <chunkeey at gmail.com>
> +Date: Sat, 16 Nov 2019 19:25:24 +0100
> +Subject: [PATCH] owl_loader: compatibility patch
> +
> +This patch includes OpenWrt specific changes that are
> +not included in the upstream owl-loader.
> +
> +These include:
> +	- A Byteswap fix for lantiq's PCI code
> +
> +	- platform data handling for ar71xx
> +
> +Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
> +
> +--- a/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c
> ++++ b/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c
> +@@ -84,6 +84,10 @@
> + 			val = swahb32(val);
> + 		}
> + 
> ++#ifdef CONFIG_LANTIQ
> ++		val = swab32(val);
> ++#endif

Lantiq is big endian, are there other big endian system which do not
need this byte swap?

> ++
> + 		__raw_writel(val, mem + reg);
> + 		usleep_range(100, 120);
> + 	}

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list