diff options
Diffstat (limited to 'package/kernel/mac80211/patches/ath')
-rw-r--r-- | package/kernel/mac80211/patches/ath/101-ath9k-use-iowrite32-over-__raw_writel.patch | 40 | ||||
-rw-r--r-- | package/kernel/mac80211/patches/ath/120-owl-loader-compat.patch | 53 |
2 files changed, 93 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/ath/101-ath9k-use-iowrite32-over-__raw_writel.patch b/package/kernel/mac80211/patches/ath/101-ath9k-use-iowrite32-over-__raw_writel.patch new file mode 100644 index 0000000000..dade5cfe3a --- /dev/null +++ b/package/kernel/mac80211/patches/ath/101-ath9k-use-iowrite32-over-__raw_writel.patch @@ -0,0 +1,40 @@ +From bd8eca2c0f5542c5b20b1c2cc506b8b8a46018df Mon Sep 17 00:00:00 2001 +From: Christian Lamparter <chunkeey@gmail.com> +Date: Sun, 24 Nov 2019 15:22:55 +0100 +Subject: [PATCH] ath9k: use iowrite32 over __raw_writel +To: linux-wireless@vger.kernel.org +Cc: QCA ath9k Development <ath9k-devel@qca.qualcomm.com>, + Kalle Valo <kvalo@codeaurora.org>, + Hauke Mehrtens <hauke@hauke-m.de>, + Mathias Kresin <dev@kresin.me>, + Martin Blumenstingl <martin.blumenstingl@googlemail.com> + +This patch changes the ath9k_pci_owl_loader to use the +same iowrite32 memory accessor that ath9k_pci is using +to communicate with the PCI(e) chip. + +This will fix endian issues that came up during testing +with loaned AVM Fritz!Box 7360 (Lantiq MIPS SoCs + AR9287). + +Fixes: 5a4f2040fd07 ("ath9k: add loader for AR92XX (and older) pci(e)") +Signed-off-by: Christian Lamparter <chunkeey@gmail.com> +--- + drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c b/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c +index 956fa7828d0c..56d1a7764b9f 100644 +--- a/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c ++++ b/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c +@@ -83,7 +83,7 @@ static int ath9k_pci_fixup(struct pci_dev *pdev, const u16 *cal_data, + val = swahb32(val); + } + +- __raw_writel(val, mem + reg); ++ iowrite32(val, mem + reg); + usleep_range(100, 120); + } + +-- +2.24.0 + 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..afd5e3eef0 --- /dev/null +++ b/package/kernel/mac80211/patches/ath/120-owl-loader-compat.patch @@ -0,0 +1,53 @@ +From: Christian Lamparter <chunkeey@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. + +This includes a platform data handling changes for ar71xx. + +Signed-off-by: Christian Lamparter <chunkeey@gmail.com> + +--- a/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c ++++ b/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c +@@ -104,6 +104,7 @@ + { + struct pci_dev *pdev = (struct pci_dev *)context; + struct owl_ctx *ctx = (struct owl_ctx *)pci_get_drvdata(pdev); ++ struct ath9k_platform_data *pdata = dev_get_platdata(&pdev->dev); + struct pci_bus *bus; + + complete(&ctx->eeprom_load); +@@ -121,6 +122,16 @@ + goto release; + } + ++ if (pdata) { ++ memcpy(pdata->eeprom_data, fw->data, fw->size); ++ ++ /* ++ * eeprom has been successfully loaded - pass the data to ath9k ++ * but remove the eeprom_name, so it doesn't try to load it too. ++ */ ++ pdata->eeprom_name = NULL; ++ } ++ + if (ath9k_pci_fixup(pdev, (const u16 *)fw->data, fw->size)) + goto release; + +@@ -138,8 +149,14 @@ + static const char *owl_get_eeprom_name(struct pci_dev *pdev) + { + struct device *dev = &pdev->dev; ++ struct ath9k_platform_data *pdata; + char *eeprom_name; + ++ /* try the existing platform data first */ ++ pdata = dev_get_platdata(dev); ++ if (pdata && pdata->eeprom_name) ++ return pdata->eeprom_name; ++ + dev_dbg(dev, "using auto-generated eeprom filename\n"); + + eeprom_name = devm_kzalloc(dev, EEPROM_FILENAME_LEN, GFP_KERNEL); |