[source] mac80211: enable ath10k AHB support for QCA4019

LEDE Commits lede-commits at lists.infradead.org
Wed Mar 22 01:45:39 PDT 2017


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/cc189c0b7fa015978b04bb663a75b1da726376b5

commit cc189c0b7fa015978b04bb663a75b1da726376b5
Author: Christian Lamparter <chunkeey at gmail.com>
AuthorDate: Mon Nov 14 04:57:38 2016 +0100

    mac80211: enable ath10k AHB support for QCA4019
    
    This patch enables the ATH10K_AHB support for the QCA4019
    devices on the AHB bus.
    
    This patch also removes 936-ath10k_skip_otp_check.patch
    because it breaks the AHB device identification.
    "Patch is wrong. I find it frustrating OpenWRT/LEDE doesn't
    try to work with upstream on ixing these things right."
    
    [1] <https://www.mail-archive.com/ath10k@lists.infradead.org/msg05896.html>
    
    It also limits ath10k memory hunger (This is a problem with 128MiB RAM)
    
    Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
---
 package/kernel/mac80211/Makefile                   |  1 +
 .../patches/936-ath10k_skip_otp_check.patch        | 51 ----------------------
 .../960-0010-ath10k-limit-htt-rx-ring-size.patch   | 11 +++++
 .../960-0011-ath10k-limit-pci-buffer-size.patch    | 38 ++++++++++++++++
 4 files changed, 50 insertions(+), 51 deletions(-)

diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
index 7d7065d..679ea18 100644
--- a/package/kernel/mac80211/Makefile
+++ b/package/kernel/mac80211/Makefile
@@ -1519,6 +1519,7 @@ config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
 config-$(call config_package,ath9k) += ATH9K
 config-$(call config_package,ath9k-common) += ATH9K_COMMON
 config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
+config-$(CONFIG_TARGET_ipq806x) += ATH10K_AHB
 config-$(CONFIG_PCI) += ATH9K_PCI
 config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
 config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
diff --git a/package/kernel/mac80211/patches/936-ath10k_skip_otp_check.patch b/package/kernel/mac80211/patches/936-ath10k_skip_otp_check.patch
deleted file mode 100644
index 057995c..0000000
--- a/package/kernel/mac80211/patches/936-ath10k_skip_otp_check.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- a/drivers/net/wireless/ath/ath10k/core.c
-+++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -1362,9 +1362,6 @@ static int ath10k_core_fetch_firmware_fi
- {
- 	int ret;
- 
--	/* calibration file is optional, don't check for any errors */
--	ath10k_fetch_cal_file(ar);
--
- 	ar->fw_api = 5;
- 	ath10k_dbg(ar, ATH10K_DBG_BOOT, "trying fw api %d\n", ar->fw_api);
- 
-@@ -2149,7 +2146,7 @@ EXPORT_SYMBOL(ath10k_core_stop);
- static int ath10k_core_probe_fw(struct ath10k *ar)
- {
- 	struct bmi_target_info target_info;
--	int ret = 0;
-+	int calret, ret = 0;
- 
- 	ret = ath10k_hif_power_up(ar);
- 	if (ret) {
-@@ -2173,6 +2170,9 @@ static int ath10k_core_probe_fw(struct a
- 		goto err_power_down;
- 	}
- 
-+	/* calibration file is optional, don't check for any errors */
-+	calret = ath10k_fetch_cal_file(ar);
-+
- 	ret = ath10k_core_fetch_firmware_files(ar);
- 	if (ret) {
- 		ath10k_err(ar, "could not fetch firmware files (%d)\n", ret);
-@@ -2195,11 +2195,14 @@ static int ath10k_core_probe_fw(struct a
- 			   "could not load pre cal data: %d\n", ret);
- 	}
- 
--	ret = ath10k_core_get_board_id_from_otp(ar);
--	if (ret && ret != -EOPNOTSUPP) {
--		ath10k_err(ar, "failed to get board id from otp: %d\n",
--			   ret);
--		goto err_free_firmware_files;
-+	/* otp and board file not needed if calibration data is present */
-+	if (calret) {
-+		ret = ath10k_core_get_board_id_from_otp(ar);
-+		if (ret && ret != -EOPNOTSUPP) {
-+			ath10k_err(ar, "failed to get board id from otp: %d\n",
-+				ret);
-+			goto err_free_firmware_files;
-+		}
- 	}
- 
- 	ret = ath10k_core_check_smbios(ar);
diff --git a/package/kernel/mac80211/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch b/package/kernel/mac80211/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch
new file mode 100644
index 0000000..e36f13b
--- /dev/null
+++ b/package/kernel/mac80211/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch
@@ -0,0 +1,11 @@
+--- a/drivers/net/wireless/ath/ath10k/htt.h	2016-12-12 16:03:58.491019030 +0100
++++ b/drivers/net/wireless/ath/ath10k/htt.h	2016-12-12 15:39:45.242298155 +0100
+@@ -199,7 +199,7 @@ enum htt_rx_ring_flags {
+ };
+ 
+ #define HTT_RX_RING_SIZE_MIN 128
++#define HTT_RX_RING_SIZE_MAX 512
+-#define HTT_RX_RING_SIZE_MAX 2048
+ 
+ struct htt_rx_ring_setup_ring {
+ 	__le32 fw_idx_shadow_reg_paddr;
diff --git a/package/kernel/mac80211/patches/960-0011-ath10k-limit-pci-buffer-size.patch b/package/kernel/mac80211/patches/960-0011-ath10k-limit-pci-buffer-size.patch
new file mode 100644
index 0000000..0bdddae
--- /dev/null
+++ b/package/kernel/mac80211/patches/960-0011-ath10k-limit-pci-buffer-size.patch
@@ -0,0 +1,38 @@
+--- a/drivers/net/wireless/ath/ath10k/pci.c	2016-12-12 16:29:42.310053558 +0100
++++ b/drivers/net/wireless/ath/ath10k/pci.c	2016-12-12 16:34:46.667203800 +0100
+@@ -127,7 +127,7 @@ static struct ce_attr host_ce_config_wla
+ 		.flags = CE_ATTR_FLAGS,
+ 		.src_nentries = 0,
+ 		.src_sz_max = 2048,
+-		.dest_nentries = 512,
++		.dest_nentries = 128,
+ 		.recv_cb = ath10k_pci_htt_htc_rx_cb,
+ 	},
+ 
+@@ -136,7 +136,7 @@ static struct ce_attr host_ce_config_wla
+ 		.flags = CE_ATTR_FLAGS,
+ 		.src_nentries = 0,
+ 		.src_sz_max = 2048,
+-		.dest_nentries = 128,
++		.dest_nentries = 64,
+ 		.recv_cb = ath10k_pci_htc_rx_cb,
+ 	},
+ 
+@@ -163,7 +163,7 @@ static struct ce_attr host_ce_config_wla
+ 		.flags = CE_ATTR_FLAGS,
+ 		.src_nentries = 0,
+ 		.src_sz_max = 512,
+-		.dest_nentries = 512,
++		.dest_nentries = 128,
+ 		.recv_cb = ath10k_pci_htt_rx_cb,
+ 	},
+ 
+@@ -188,7 +188,7 @@ static struct ce_attr host_ce_config_wla
+ 		.flags = CE_ATTR_FLAGS,
+ 		.src_nentries = 0,
+ 		.src_sz_max = 2048,
+-		.dest_nentries = 128,
++		.dest_nentries = 96,
+ 		.recv_cb = ath10k_pci_pktlog_rx_cb,
+ 	},
+ 



More information about the lede-commits mailing list