mirror of
https://github.com/optim-enterprises-bv/openwrt-ipq.git
synced 2025-11-01 18:58:35 +00:00
ath11k_nss: Handle 256/512/1G boards automatically
This commit is contained in:
@@ -14,9 +14,10 @@ PKG_CONFIG_DEPENDS += \
|
|||||||
CONFIG_ATH10K_THERMAL \
|
CONFIG_ATH10K_THERMAL \
|
||||||
CONFIG_ATH11K_THERMAL \
|
CONFIG_ATH11K_THERMAL \
|
||||||
CONFIG_ATH_USER_REGD \
|
CONFIG_ATH_USER_REGD \
|
||||||
|
CONFIG_ATH11K_MEM_PROFILE_1G \
|
||||||
CONFIG_ATH11K_MEM_PROFILE_512M \
|
CONFIG_ATH11K_MEM_PROFILE_512M \
|
||||||
CONFIG_ATH11K_NSS_SUPPORT \
|
CONFIG_ATH11K_MEM_PROFILE_256M \
|
||||||
CONFIG_ATH11K_SMART_ANT_ALG
|
CONFIG_ATH11K_NSS_SUPPORT
|
||||||
|
|
||||||
ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
|
ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
|
||||||
config-y += \
|
config-y += \
|
||||||
@@ -62,9 +63,10 @@ config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR
|
|||||||
config-$(CONFIG_ATH10K_LEDS) += ATH10K_LEDS
|
config-$(CONFIG_ATH10K_LEDS) += ATH10K_LEDS
|
||||||
config-$(CONFIG_ATH10K_THERMAL) += ATH10K_THERMAL
|
config-$(CONFIG_ATH10K_THERMAL) += ATH10K_THERMAL
|
||||||
config-$(CONFIG_ATH11K_THERMAL) += ATH11K_THERMAL
|
config-$(CONFIG_ATH11K_THERMAL) += ATH11K_THERMAL
|
||||||
|
config-$(CONFIG_ATH11K_MEM_PROFILE_1G) += ATH11K_MEM_PROFILE_1G
|
||||||
config-$(CONFIG_ATH11K_MEM_PROFILE_512M) += ATH11K_MEM_PROFILE_512M
|
config-$(CONFIG_ATH11K_MEM_PROFILE_512M) += ATH11K_MEM_PROFILE_512M
|
||||||
|
config-$(CONFIG_ATH11K_MEM_PROFILE_256M) += ATH11K_MEM_PROFILE_256M
|
||||||
config-$(CONFIG_ATH11K_NSS_SUPPORT) += ATH11K_NSS_SUPPORT
|
config-$(CONFIG_ATH11K_NSS_SUPPORT) += ATH11K_NSS_SUPPORT
|
||||||
config-$(CONFIG_ATH11K_SMART_ANT_ALG) += ATH11K_SMART_ANT_ALG
|
|
||||||
|
|
||||||
config-$(call config_package,ath9k-htc) += ATH9K_HTC
|
config-$(call config_package,ath9k-htc) += ATH9K_HTC
|
||||||
config-$(call config_package,ath10k,regular) += ATH10K ATH10K_PCI
|
config-$(call config_package,ath10k,regular) += ATH10K ATH10K_PCI
|
||||||
@@ -339,20 +341,41 @@ define KernelPackage/ath11k/config
|
|||||||
|
|
||||||
config ATH11K_NSS_SUPPORT
|
config ATH11K_NSS_SUPPORT
|
||||||
bool "Enable NSS WiFi offload"
|
bool "Enable NSS WiFi offload"
|
||||||
|
select ATH11K_MEM_PROFILE_512M if (TARGET_qualcommax_ipq807x_DEVICE_edimax_cax1800 || \
|
||||||
|
TARGET_qualcommax_ipq807x_DEVICE_compex_wpq873 || \
|
||||||
|
TARGET_qualcommax_ipq807x_DEVICE_linksys_mx4200v1 || \
|
||||||
|
TARGET_qualcommax_ipq807x_DEVICE_redmi_ax6 || \
|
||||||
|
TARGET_qualcommax_ipq807x_DEVICE_xiaomi_ax3600 || \
|
||||||
|
TARGET_qualcommax_ipq807x_DEVICE_zte_mf269 )
|
||||||
|
select ATH11K_MEM_PROFILE_256M if (TARGET_qualcommax_ipq807x_DEVICE_netgear_wax218)
|
||||||
select NSS_DRV_WIFI_ENABLE
|
select NSS_DRV_WIFI_ENABLE
|
||||||
select NSS_DRV_WIFI_EXT_VDEV_ENABLE
|
select NSS_DRV_WIFI_EXT_VDEV_ENABLE
|
||||||
default y if TARGET_qualcommax
|
default y if TARGET_qualcommax
|
||||||
|
|
||||||
config ATH11K_MEM_PROFILE_512M
|
choice
|
||||||
bool "Use limits for the 512MB memory size"
|
prompt "ATH11K Memory Profile"
|
||||||
default n
|
default ATH11K_MEM_PROFILE_1G
|
||||||
help
|
help
|
||||||
This allows selecting the ath11k memory size profile to be used.
|
This option allows you to select the memory profile.
|
||||||
|
It should correspond to the total RAM of your board.
|
||||||
|
|
||||||
config ATH11K_SMART_ANT_ALG
|
config ATH11K_MEM_PROFILE_1G
|
||||||
bool "Enable smart antenna"
|
bool "Use 1G memory profile"
|
||||||
depends on PACKAGE_ATH_DEBUG
|
help
|
||||||
default n
|
This allows configuring ath11k for boards with 1GB+ memory.
|
||||||
|
|
||||||
|
config ATH11K_MEM_PROFILE_512M
|
||||||
|
bool "Use 512MB memory profile"
|
||||||
|
help
|
||||||
|
This allows configuring ath11k for boards with 512M memory.
|
||||||
|
The default is 1GB if not selected
|
||||||
|
|
||||||
|
config ATH11K_MEM_PROFILE_256M
|
||||||
|
bool "Use 256MB memory profile"
|
||||||
|
help
|
||||||
|
This allows configuring ath11k for boards with 256M memory.
|
||||||
|
The default is 1GB if not selected
|
||||||
|
endchoice
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/ath11k-ahb
|
define KernelPackage/ath11k-ahb
|
||||||
|
|||||||
@@ -47,24 +47,29 @@ apply_nss_config() {
|
|||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
# 1GB+ profile
|
# 1GB+ profile
|
||||||
|
arcadyan,aw1000 | \
|
||||||
buffalo,wxr-5950ax12 | \
|
buffalo,wxr-5950ax12 | \
|
||||||
dynalink,dl-wrx36 | \
|
dynalink,dl-wrx36 | \
|
||||||
edgecore,eap102 | \
|
edgecore,eap102 | \
|
||||||
linksys,mx5300 | \
|
|
||||||
linksys,mx4200v2 | \
|
linksys,mx4200v2 | \
|
||||||
|
linksys,mx5300 | \
|
||||||
netgear,rax120v2 | \
|
netgear,rax120v2 | \
|
||||||
netgear,wax620 | \
|
netgear,wax620 | \
|
||||||
netgear,wax630 | \
|
netgear,wax630 | \
|
||||||
prpl,haze | \
|
prpl,haze | \
|
||||||
qnap,301w | \
|
qnap,301w | \
|
||||||
xiaomi,ax9000 | \
|
xiaomi,ax9000 | \
|
||||||
|
yuncore,ax880 | \
|
||||||
zyxel,nbg7815)
|
zyxel,nbg7815)
|
||||||
extra_pbuf_core0=9000000 n2h_high_water_core0=67392 n2h_wifi_pool_buf=40960 apply_sysctl
|
extra_pbuf_core0=9000000 n2h_high_water_core0=67392 n2h_wifi_pool_buf=40960 apply_sysctl
|
||||||
;;
|
;;
|
||||||
# 512MB profile
|
# 512MB profile
|
||||||
edimax,cax1800 | \
|
edimax,cax1800 | \
|
||||||
|
compex,wpq873 | \
|
||||||
linksys,mx4200v1 | \
|
linksys,mx4200v1 | \
|
||||||
xiaomi,ax3600) # 512MB profile
|
redmi,ax6 | \
|
||||||
|
xiaomi,ax3600 | \
|
||||||
|
zte,mf269) # 512MB profile
|
||||||
extra_pbuf_core0=3100000 n2h_high_water_core0=30624 n2h_wifi_pool_buf=8192 apply_sysctl
|
extra_pbuf_core0=3100000 n2h_high_water_core0=30624 n2h_wifi_pool_buf=8192 apply_sysctl
|
||||||
;;
|
;;
|
||||||
# 256MB profile
|
# 256MB profile
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
|
|
||||||
--- a/drivers/net/wireless/ath/ath11k/Kconfig
|
--- a/drivers/net/wireless/ath/ath11k/Kconfig
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/Kconfig
|
+++ b/drivers/net/wireless/ath/ath11k/Kconfig
|
||||||
@@ -23,6 +23,13 @@ config ATH11K_NSS_SUPPORT
|
@@ -23,6 +23,20 @@ config ATH11K_NSS_SUPPORT
|
||||||
|
|
||||||
If unsure, say Y to enable NSS offload support.
|
If unsure, say Y to enable NSS offload support.
|
||||||
|
|
||||||
@@ -32,36 +32,59 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
+ default n
|
+ default n
|
||||||
+ ---help---
|
+ ---help---
|
||||||
+ Enables 512MB memory profile for ath11k
|
+ Enables 512MB memory profile for ath11k
|
||||||
|
+
|
||||||
|
+config ATH11K_MEM_PROFILE_256M
|
||||||
|
+ bool "ath11k enable 256MB memory profile"
|
||||||
|
+ depends on ATH11K
|
||||||
|
+ default n
|
||||||
|
+ ---help---
|
||||||
|
+ Enables 256MB memory profile for ath11k
|
||||||
+
|
+
|
||||||
config ATH11K_AHB
|
config ATH11K_AHB
|
||||||
tristate "Atheros ath11k AHB support"
|
tristate "Atheros ath11k AHB support"
|
||||||
depends on m
|
depends on m
|
||||||
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
||||||
@@ -11,11 +11,30 @@
|
@@ -11,11 +11,43 @@
|
||||||
#include "wmi.h"
|
#include "wmi.h"
|
||||||
|
|
||||||
/* Target configuration defines */
|
/* Target configuration defines */
|
||||||
+#ifdef CPTCFG_ATH11K_MEM_PROFILE_512M
|
+#if defined(CPTCFG_ATH11K_MEM_PROFILE_256M)
|
||||||
|
+#define TARGET_NUM_VDEVS 8
|
||||||
|
+#define TARGET_NUM_PEERS_PDEV (128 + TARGET_NUM_VDEVS)
|
||||||
|
+/* Max num of stations (per radio) */
|
||||||
|
+#define TARGET_NUM_STATIONS 128
|
||||||
|
+#define ATH11K_QMI_TARGET_MEM_MODE ATH11K_QMI_TARGET_MEM_MODE_512M
|
||||||
|
+#define ATH11K_DP_TX_COMP_RING_SIZE 2048
|
||||||
|
+#define ATH11K_DP_RXDMA_BUF_RING_SIZE 1024
|
||||||
|
+#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 512
|
||||||
|
+#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 128
|
||||||
|
+#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 128
|
||||||
|
+
|
||||||
|
+#elif defined(CPTCFG_ATH11K_MEM_PROFILE_512M)
|
||||||
+#define TARGET_NUM_VDEVS(ab) 8
|
+#define TARGET_NUM_VDEVS(ab) 8
|
||||||
+#define TARGET_NUM_PEERS_PDEV(ab) (128 + TARGET_NUM_VDEVS(ab))
|
+#define TARGET_NUM_PEERS_PDEV(ab) (128 + TARGET_NUM_VDEVS(ab))
|
||||||
+/* Max num of stations (per radio) */
|
+/* Max num of stations (per radio) */
|
||||||
+#define TARGET_NUM_STATIONS(ab) 128
|
+#define TARGET_NUM_STATIONS(ab) 128
|
||||||
+#define ATH11K_QMI_TARGET_MEM_MODE ATH11K_QMI_TARGET_MEM_MODE_512M
|
+#define ATH11K_QMI_TARGET_MEM_MODE ATH11K_QMI_TARGET_MEM_MODE_512M
|
||||||
+#define ATH11K_DP_TX_COMP_RING_SIZE 8192
|
+#define ATH11K_DP_TX_COMP_RING_SIZE 8192
|
||||||
|
+#define ATH11K_DP_RXDMA_BUF_RING_SIZE 4096
|
||||||
+#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 512
|
+#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 512
|
||||||
+#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 128
|
+#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 128
|
||||||
+#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 128
|
+#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 128
|
||||||
|
|
||||||
+#else
|
+#else
|
||||||
/* Num VDEVS per radio */
|
/* Num VDEVS per radio */
|
||||||
#define TARGET_NUM_VDEVS(ab) (ab->hw_params.num_vdevs)
|
-#define TARGET_NUM_VDEVS(ab) (ab->hw_params.num_vdevs)
|
||||||
|
-
|
||||||
#define TARGET_NUM_PEERS_PDEV(ab) (ab->hw_params.num_peers + TARGET_NUM_VDEVS(ab))
|
-#define TARGET_NUM_PEERS_PDEV(ab) (ab->hw_params.num_peers + TARGET_NUM_VDEVS(ab))
|
||||||
|
+#define TARGET_NUM_VDEVS(ab) (ab->hw_params.num_vdevs_peers[ab->qmi.target_mem_mode].num_vdevs)
|
||||||
|
+#define TARGET_NUM_PEERS_PDEV(ab) (ab->hw_params.num_vdevs_peers[ab->qmi.target_mem_mode].num_peers + TARGET_NUM_VDEVS(ab))
|
||||||
+/* Max num of stations (per radio) */
|
+/* Max num of stations (per radio) */
|
||||||
+#define TARGET_NUM_STATIONS(ab) (ab->hw_params.num_peers)
|
+#define TARGET_NUM_STATIONS(ab) (ab->hw_params.num_vdevs_peers[ab->qmi.target_mem_mode].num_peers)
|
||||||
+#define ATH11K_QMI_TARGET_MEM_MODE ATH11K_QMI_TARGET_MEM_MODE_DEFAULT
|
+#define ATH11K_QMI_TARGET_MEM_MODE ATH11K_QMI_TARGET_MEM_MODE_DEFAULT
|
||||||
+#define ATH11K_DP_TX_COMP_RING_SIZE 32768
|
+#define ATH11K_DP_TX_COMP_RING_SIZE 32768
|
||||||
|
+#define ATH11K_DP_RXDMA_BUF_RING_SIZE 4096
|
||||||
+#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 1024
|
+#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 1024
|
||||||
+#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 4096
|
+#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 4096
|
||||||
+#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 2048
|
+#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 2048
|
||||||
@@ -69,7 +92,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
|
|
||||||
/* Num of peers for Single Radio mode */
|
/* Num of peers for Single Radio mode */
|
||||||
#define TARGET_NUM_PEERS_SINGLE(ab) (TARGET_NUM_PEERS_PDEV(ab))
|
#define TARGET_NUM_PEERS_SINGLE(ab) (TARGET_NUM_PEERS_PDEV(ab))
|
||||||
@@ -26,9 +45,6 @@
|
@@ -26,9 +58,6 @@
|
||||||
/* Num of peers for DBS_SBS */
|
/* Num of peers for DBS_SBS */
|
||||||
#define TARGET_NUM_PEERS_DBS_SBS(ab) (3 * TARGET_NUM_PEERS_PDEV(ab))
|
#define TARGET_NUM_PEERS_DBS_SBS(ab) (3 * TARGET_NUM_PEERS_PDEV(ab))
|
||||||
|
|
||||||
@@ -79,6 +102,14 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
#define TARGET_NUM_PEERS(ab, x) TARGET_NUM_PEERS_##x(ab)
|
#define TARGET_NUM_PEERS(ab, x) TARGET_NUM_PEERS_##x(ab)
|
||||||
#define TARGET_NUM_PEER_KEYS 2
|
#define TARGET_NUM_PEER_KEYS 2
|
||||||
#define TARGET_NUM_TIDS(ab, x) (2 * TARGET_NUM_PEERS(ab, x) + \
|
#define TARGET_NUM_TIDS(ab, x) (2 * TARGET_NUM_PEERS(ab, x) + \
|
||||||
|
@@ -226,6 +255,7 @@ struct ath11k_hw_params {
|
||||||
|
u32 tx_ring_size;
|
||||||
|
bool smp2p_wow_exit;
|
||||||
|
bool support_fw_mac_sequence;
|
||||||
|
+ const struct ath11k_num_vdevs_peers *num_vdevs_peers;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ath11k_hw_ops {
|
||||||
--- a/drivers/net/wireless/ath/ath11k/qmi.h
|
--- a/drivers/net/wireless/ath/ath11k/qmi.h
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/qmi.h
|
+++ b/drivers/net/wireless/ath/ath11k/qmi.h
|
||||||
@@ -29,6 +29,12 @@
|
@@ -29,6 +29,12 @@
|
||||||
@@ -107,14 +138,21 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
#endif
|
#endif
|
||||||
--- a/local-symbols
|
--- a/local-symbols
|
||||||
+++ b/local-symbols
|
+++ b/local-symbols
|
||||||
@@ -171,6 +171,7 @@ ATH11K=
|
@@ -171,12 +171,13 @@ ATH11K=
|
||||||
ATH11K_AHB=
|
ATH11K_AHB=
|
||||||
ATH11K_PCI=
|
ATH11K_PCI=
|
||||||
ATH11K_NSS_SUPPORT=
|
ATH11K_NSS_SUPPORT=
|
||||||
|
+ATH11K_MEM_PROFILE_256M=
|
||||||
+ATH11K_MEM_PROFILE_512M=
|
+ATH11K_MEM_PROFILE_512M=
|
||||||
ATH11K_DEBUG=
|
ATH11K_DEBUG=
|
||||||
ATH11K_DEBUGFS=
|
ATH11K_DEBUGFS=
|
||||||
ATH11K_TRACING=
|
ATH11K_TRACING=
|
||||||
|
ATH11K_SPECTRAL=
|
||||||
|
ATH11K_THERMAL=
|
||||||
|
-ATH11K_MEM_PROFILE_512M=
|
||||||
|
ATH12K=
|
||||||
|
ATH12K_DEBUG=
|
||||||
|
ATH12K_TRACING=
|
||||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||||
@@ -863,6 +863,11 @@ struct ath11k_msi_config {
|
@@ -863,6 +863,11 @@ struct ath11k_msi_config {
|
||||||
@@ -226,7 +264,13 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
static struct ath11k_hw_params ath11k_hw_params[] = {
|
static struct ath11k_hw_params ath11k_hw_params[] = {
|
||||||
{
|
{
|
||||||
.hw_rev = ATH11K_HW_IPQ8074,
|
.hw_rev = ATH11K_HW_IPQ8074,
|
||||||
@@ -100,6 +104,7 @@ static struct ath11k_hw_params ath11k_hw
|
@@ -95,15 +99,15 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
|
.coldboot_cal_mm = false,
|
||||||
|
.coldboot_cal_ftm = false,
|
||||||
|
.cbcal_restart_fw = true,
|
||||||
|
- .fw_mem_mode = 0,
|
||||||
|
+ .fw_mem_mode = ATH11K_QMI_TARGET_MEM_MODE,
|
||||||
|
.num_vdevs = 16 + 1,
|
||||||
.num_peers = 512,
|
.num_peers = 512,
|
||||||
.supports_suspend = false,
|
.supports_suspend = false,
|
||||||
.hal_desc_sz = sizeof(struct hal_rx_desc_ipq8074),
|
.hal_desc_sz = sizeof(struct hal_rx_desc_ipq8074),
|
||||||
@@ -234,7 +278,22 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
.supports_regdb = false,
|
.supports_regdb = false,
|
||||||
.fix_l1ss = true,
|
.fix_l1ss = true,
|
||||||
.credit_flow = false,
|
.credit_flow = false,
|
||||||
@@ -177,7 +182,7 @@ static struct ath11k_hw_params ath11k_hw
|
- .max_tx_ring = DP_TCL_NUM_RING_MAX,
|
||||||
|
.hal_params = &ath11k_hw_hal_params_ipq8074,
|
||||||
|
.supports_dynamic_smps_6ghz = false,
|
||||||
|
.alloc_cacheable_memory = true,
|
||||||
|
@@ -127,7 +131,9 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
|
.tcl_ring_retry = true,
|
||||||
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
||||||
|
.smp2p_wow_exit = false,
|
||||||
|
- },
|
||||||
|
+ /* In addition to TCL ring use TCL_CMD ring also for tx */
|
||||||
|
+ .max_tx_ring = DP_TCL_NUM_RING_MAX + 1,
|
||||||
|
+ .num_vdevs_peers = ath11k_vdevs_peers,
|
||||||
|
{
|
||||||
|
.hw_rev = ATH11K_HW_IPQ6018_HW10,
|
||||||
|
.name = "ipq6018 hw1.0",
|
||||||
|
@@ -177,7 +183,7 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
.coldboot_cal_mm = true,
|
.coldboot_cal_mm = true,
|
||||||
.coldboot_cal_ftm = true,
|
.coldboot_cal_ftm = true,
|
||||||
.cbcal_restart_fw = true,
|
.cbcal_restart_fw = true,
|
||||||
@@ -243,7 +302,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
.num_vdevs = 16 + 1,
|
.num_vdevs = 16 + 1,
|
||||||
.num_peers = 512,
|
.num_peers = 512,
|
||||||
.supports_suspend = false,
|
.supports_suspend = false,
|
||||||
@@ -259,7 +264,7 @@ static struct ath11k_hw_params ath11k_hw
|
@@ -259,7 +265,7 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
.coldboot_cal_mm = false,
|
.coldboot_cal_mm = false,
|
||||||
.coldboot_cal_ftm = false,
|
.coldboot_cal_ftm = false,
|
||||||
.cbcal_restart_fw = false,
|
.cbcal_restart_fw = false,
|
||||||
@@ -252,7 +311,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
.num_vdevs = 16 + 1,
|
.num_vdevs = 16 + 1,
|
||||||
.num_peers = 512,
|
.num_peers = 512,
|
||||||
.supports_suspend = true,
|
.supports_suspend = true,
|
||||||
@@ -426,7 +431,7 @@ static struct ath11k_hw_params ath11k_hw
|
@@ -426,7 +432,7 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
.coldboot_cal_mm = false,
|
.coldboot_cal_mm = false,
|
||||||
.coldboot_cal_ftm = false,
|
.coldboot_cal_ftm = false,
|
||||||
.cbcal_restart_fw = false,
|
.cbcal_restart_fw = false,
|
||||||
@@ -261,7 +320,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
.num_vdevs = 16 + 1,
|
.num_vdevs = 16 + 1,
|
||||||
.num_peers = 512,
|
.num_peers = 512,
|
||||||
.supports_suspend = true,
|
.supports_suspend = true,
|
||||||
@@ -509,7 +514,7 @@ static struct ath11k_hw_params ath11k_hw
|
@@ -509,7 +515,7 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
.coldboot_cal_mm = false,
|
.coldboot_cal_mm = false,
|
||||||
.coldboot_cal_ftm = false,
|
.coldboot_cal_ftm = false,
|
||||||
.cbcal_restart_fw = false,
|
.cbcal_restart_fw = false,
|
||||||
@@ -270,7 +329,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
.num_vdevs = 16 + 1,
|
.num_vdevs = 16 + 1,
|
||||||
.num_peers = 512,
|
.num_peers = 512,
|
||||||
.supports_suspend = true,
|
.supports_suspend = true,
|
||||||
@@ -593,7 +598,7 @@ static struct ath11k_hw_params ath11k_hw
|
@@ -593,7 +599,7 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
.coldboot_cal_mm = true,
|
.coldboot_cal_mm = true,
|
||||||
.coldboot_cal_ftm = true,
|
.coldboot_cal_ftm = true,
|
||||||
.cbcal_restart_fw = false,
|
.cbcal_restart_fw = false,
|
||||||
@@ -279,7 +338,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
.num_vdevs = 16 + 1,
|
.num_vdevs = 16 + 1,
|
||||||
.num_peers = 512,
|
.num_peers = 512,
|
||||||
.supports_suspend = false,
|
.supports_suspend = false,
|
||||||
@@ -672,7 +677,7 @@ static struct ath11k_hw_params ath11k_hw
|
@@ -672,7 +678,7 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
.supports_monitor = false,
|
.supports_monitor = false,
|
||||||
.supports_sta_ps = false,
|
.supports_sta_ps = false,
|
||||||
.supports_shadow_regs = false,
|
.supports_shadow_regs = false,
|
||||||
@@ -288,7 +347,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
.num_vdevs = 16 + 1,
|
.num_vdevs = 16 + 1,
|
||||||
.num_peers = 512,
|
.num_peers = 512,
|
||||||
.supports_regdb = false,
|
.supports_regdb = false,
|
||||||
@@ -710,7 +715,23 @@ static struct ath11k_hw_params ath11k_hw
|
@@ -710,7 +716,23 @@ static struct ath11k_hw_params ath11k_hw
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -754,10 +754,24 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
|
|
||||||
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
||||||
@@ -22,6 +22,11 @@
|
@@ -22,7 +22,11 @@
|
||||||
#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 512
|
#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 512
|
||||||
#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 128
|
#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 128
|
||||||
#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 128
|
#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 128
|
||||||
|
-
|
||||||
|
+#define ATH11K_DP_RXDMA_REFILL_RING_SIZE 2048
|
||||||
|
+/* 256b desc TLV + 4b(rounded) Pad + 30byte max nwifi header +
|
||||||
|
+ * 18byte mesh hdr + 8byte snap + 1500 eth payload
|
||||||
|
+ */
|
||||||
|
+#define ATH11K_DP_RXDMA_NSS_REFILL_RING_SIZE 1816
|
||||||
|
#elif defined(CPTCFG_ATH11K_MEM_PROFILE_512M)
|
||||||
|
#define TARGET_NUM_VDEVS(ab) 8
|
||||||
|
#define TARGET_NUM_PEERS_PDEV(ab) (128 + TARGET_NUM_VDEVS(ab))
|
||||||
|
@@ -34,7 +38,11 @@
|
||||||
|
#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 512
|
||||||
|
#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 128
|
||||||
|
#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 128
|
||||||
|
-
|
||||||
+#define ATH11K_DP_RXDMA_REFILL_RING_SIZE 2048
|
+#define ATH11K_DP_RXDMA_REFILL_RING_SIZE 2048
|
||||||
+/* 256b desc TLV + 4b(rounded) Pad + 30byte max nwifi header +
|
+/* 256b desc TLV + 4b(rounded) Pad + 30byte max nwifi header +
|
||||||
+ * 18byte mesh hdr + 8byte snap + 1500 eth payload
|
+ * 18byte mesh hdr + 8byte snap + 1500 eth payload
|
||||||
@@ -765,8 +779,8 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
+#define ATH11K_DP_RXDMA_NSS_REFILL_RING_SIZE 1816
|
+#define ATH11K_DP_RXDMA_NSS_REFILL_RING_SIZE 1816
|
||||||
#else
|
#else
|
||||||
/* Num VDEVS per radio */
|
/* Num VDEVS per radio */
|
||||||
#define TARGET_NUM_VDEVS(ab) (ab->hw_params.num_vdevs)
|
#define TARGET_NUM_VDEVS(ab) (ab->hw_params.num_vdevs_peers[ab->qmi.target_mem_mode].num_vdevs)
|
||||||
@@ -34,6 +39,8 @@
|
@@ -47,6 +55,8 @@
|
||||||
#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 1024
|
#define ATH11K_DP_RXDMA_MON_STATUS_RING_SIZE 1024
|
||||||
#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 4096
|
#define ATH11K_DP_RXDMA_MONITOR_BUF_RING_SIZE 4096
|
||||||
#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 2048
|
#define ATH11K_DP_RXDMA_MONITOR_DST_RING_SIZE 2048
|
||||||
@@ -775,7 +789,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Num of peers for Single Radio mode */
|
/* Num of peers for Single Radio mode */
|
||||||
@@ -129,6 +136,8 @@ enum ath11k_bus {
|
@@ -142,6 +152,8 @@ enum ath11k_bus {
|
||||||
|
|
||||||
struct hal_rx_desc;
|
struct hal_rx_desc;
|
||||||
struct hal_tcl_data_cmd;
|
struct hal_tcl_data_cmd;
|
||||||
@@ -784,7 +798,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
|
|
||||||
struct ath11k_hw_ring_mask {
|
struct ath11k_hw_ring_mask {
|
||||||
u8 tx[ATH11K_EXT_IRQ_GRP_NUM_MAX];
|
u8 tx[ATH11K_EXT_IRQ_GRP_NUM_MAX];
|
||||||
@@ -218,6 +227,7 @@ struct ath11k_hw_params {
|
@@ -231,6 +243,7 @@ struct ath11k_hw_params {
|
||||||
const struct ath11k_hw_hal_params *hal_params;
|
const struct ath11k_hw_hal_params *hal_params;
|
||||||
bool supports_dynamic_smps_6ghz;
|
bool supports_dynamic_smps_6ghz;
|
||||||
bool alloc_cacheable_memory;
|
bool alloc_cacheable_memory;
|
||||||
@@ -792,7 +806,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
|||||||
bool supports_rssi_stats;
|
bool supports_rssi_stats;
|
||||||
bool fw_wmi_diag_event;
|
bool fw_wmi_diag_event;
|
||||||
bool current_cc_support;
|
bool current_cc_support;
|
||||||
@@ -285,6 +295,16 @@ struct ath11k_hw_ops {
|
@@ -299,6 +312,16 @@ struct ath11k_hw_ops {
|
||||||
bool (*rx_desc_mac_addr2_valid)(struct hal_rx_desc *desc);
|
bool (*rx_desc_mac_addr2_valid)(struct hal_rx_desc *desc);
|
||||||
u8* (*rx_desc_mpdu_start_addr2)(struct hal_rx_desc *desc);
|
u8* (*rx_desc_mpdu_start_addr2)(struct hal_rx_desc *desc);
|
||||||
u32 (*get_ring_selector)(struct sk_buff *skb);
|
u32 (*get_ring_selector)(struct sk_buff *skb);
|
||||||
|
|||||||
@@ -385,7 +385,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
|||||||
.rx_desc_get_mpdu_fc_valid = ath11k_hw_qcn9074_rx_desc_get_mpdu_fc_valid,
|
.rx_desc_get_mpdu_fc_valid = ath11k_hw_qcn9074_rx_desc_get_mpdu_fc_valid,
|
||||||
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
||||||
@@ -270,6 +270,7 @@ struct ath11k_hw_ops {
|
@@ -287,6 +287,7 @@ struct ath11k_hw_ops {
|
||||||
u32 (*rx_desc_get_encrypt_type)(struct hal_rx_desc *desc);
|
u32 (*rx_desc_get_encrypt_type)(struct hal_rx_desc *desc);
|
||||||
u8 (*rx_desc_get_decap_type)(struct hal_rx_desc *desc);
|
u8 (*rx_desc_get_decap_type)(struct hal_rx_desc *desc);
|
||||||
u8 (*rx_desc_get_mesh_ctl)(struct hal_rx_desc *desc);
|
u8 (*rx_desc_get_mesh_ctl)(struct hal_rx_desc *desc);
|
||||||
|
|||||||
Reference in New Issue
Block a user