[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