aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/kernel/ath10k-ct/Makefile14
-rw-r--r--package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch28
-rw-r--r--package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch100
3 files changed, 141 insertions, 1 deletions
diff --git a/package/kernel/ath10k-ct/Makefile b/package/kernel/ath10k-ct/Makefile
index eee8b7d0d2..c46c3a834e 100644
--- a/package/kernel/ath10k-ct/Makefile
+++ b/package/kernel/ath10k-ct/Makefile
@@ -35,6 +35,7 @@ define KernelPackage/ath10k-ct
$(PKG_BUILD_DIR)/ath10k$(CT_KVER)/ath10k_core.ko
AUTOLOAD:=$(call AutoProbe,ath10k_pci)
PROVIDES:=kmod-ath10k
+ VARIANT:=regular
endef
define KernelPackage/ath10k-ct/config
@@ -42,7 +43,13 @@ define KernelPackage/ath10k-ct/config
config ATH10K-CT_LEDS
bool "Enable LED support"
default y
- depends on PACKAGE_kmod-ath10k-ct
+ depends on PACKAGE_kmod-ath10k-ct || PACKAGE_kmod-ath10k-ct-smallbuffers
+endef
+
+define KernelPackage/ath10k-ct-smallbuffers
+$(call KernelPackage/ath10k-ct)
+ TITLE+= (small buffers for low-RAM devices)
+ VARIANT:=smallbuffers
endef
NOSTDINC_FLAGS = \
@@ -90,6 +97,10 @@ ifeq ($(CONFIG_ATH10K-CT_LEDS),y)
NOSTDINC_FLAGS += -DCONFIG_ATH10K_LEDS
endif
+ifeq ($(BUILD_VARIANT),smallbuffers)
+ NOSTDINC_FLAGS += -DCONFIG_ATH10K_SMALLBUFFERS
+endif
+
define Build/Configure
cp $(STAGING_DIR)/usr/include/mac80211/ath/*.h $(PKG_BUILD_DIR)
endef
@@ -107,3 +118,4 @@ define Build/Compile
endef
$(eval $(call KernelPackage,ath10k-ct))
+$(eval $(call KernelPackage,ath10k-ct-smallbuffers))
diff --git a/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch b/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch
new file mode 100644
index 0000000000..a3a939440a
--- /dev/null
+++ b/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch
@@ -0,0 +1,28 @@
+--- a/ath10k-4.19/htt.h
++++ b/ath10k-4.19/htt.h
+@@ -237,7 +237,11 @@ enum htt_rx_ring_flags {
+ };
+
+ #define HTT_RX_RING_SIZE_MIN 128
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ #define HTT_RX_RING_SIZE_MAX 2048
++#else
++#define HTT_RX_RING_SIZE_MAX 512
++#endif
+ #define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
+ #define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
+ #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
+--- a/ath10k-5.2/htt.h
++++ b/ath10k-5.2/htt.h
+@@ -225,7 +225,11 @@ enum htt_rx_ring_flags {
+ };
+
+ #define HTT_RX_RING_SIZE_MIN 128
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ #define HTT_RX_RING_SIZE_MAX 2048
++#else
++#define HTT_RX_RING_SIZE_MAX 512
++#endif
+ #define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
+ #define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
+ #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
diff --git a/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch b/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch
new file mode 100644
index 0000000000..517be89dab
--- /dev/null
+++ b/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch
@@ -0,0 +1,100 @@
+--- a/ath10k-4.19/pci.c
++++ b/ath10k-4.19/pci.c
+@@ -142,7 +142,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 512,
++#else
++ .dest_nentries = 128,
++#endif
+ .recv_cb = ath10k_pci_htt_htc_rx_cb,
+ },
+
+@@ -151,7 +155,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 128,
++#else
++ .dest_nentries = 64,
++#endif
+ .recv_cb = ath10k_pci_htc_rx_cb,
+ },
+
+@@ -178,7 +186,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 512,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 512,
++#else
++ .dest_nentries = 128,
++#endif
+ .recv_cb = ath10k_pci_htt_rx_cb,
+ },
+
+@@ -203,7 +215,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 128,
++#else
++ .dest_nentries = 96,
++#endif
+ .recv_cb = ath10k_pci_pktlog_rx_cb,
+ },
+
+--- a/ath10k-5.2/pci.c
++++ b/ath10k-5.2/pci.c
+@@ -131,7 +131,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 512,
++#else
++ .dest_nentries = 128,
++#endif
+ .recv_cb = ath10k_pci_htt_htc_rx_cb,
+ },
+
+@@ -140,7 +144,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 128,
++#else
++ .dest_nentries = 64,
++#endif
+ .recv_cb = ath10k_pci_htc_rx_cb,
+ },
+
+@@ -167,7 +175,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 512,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 512,
++#else
++ .dest_nentries = 128,
++#endif
+ .recv_cb = ath10k_pci_htt_rx_cb,
+ },
+
+@@ -192,7 +204,11 @@ static struct ce_attr host_ce_config_wla
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
++#ifndef CONFIG_ATH10K_SMALLBUFFERS
+ .dest_nentries = 128,
++#else
++ .dest_nentries = 96,
++#endif
+ .recv_cb = ath10k_pci_pktlog_rx_cb,
+ },
+