diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c index c8dbbfa901af..1981e0ea8c7e 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -41,6 +41,7 @@ static bool uart_print; static bool skip_otp; static bool rawmode; +bool peer_flow_ctl = false; unsigned long ath10k_coredump_mask = BIT(ATH10K_FW_CRASH_DUMP_REGISTERS) | BIT(ATH10K_FW_CRASH_DUMP_CE_DATA); @@ -52,6 +53,7 @@ module_param(skip_otp, bool, 0644); module_param(rawmode, bool, 0644); module_param_named(coredump_mask, ath10k_coredump_mask, ulong, 0444); +module_param(peer_flow_ctl, bool, 0644); MODULE_PARM_DESC(debug_mask, "Debugging mask"); MODULE_PARM_DESC(uart_print, "Uart target debugging"); diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h index e6f597d9f226..bf2e70411d90 100644 --- a/drivers/net/wireless/ath/ath10k/core.h +++ b/drivers/net/wireless/ath/ath10k/core.h @@ -1201,6 +1201,7 @@ static inline bool ath10k_peer_stats_enabled(struct ath10k *ar) } extern unsigned long ath10k_coredump_mask; +extern bool peer_flow_ctl; struct ath10k *ath10k_core_create(size_t priv_size, struct device *dev, enum ath10k_bus bus, diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index d74b55ba9914..d5ad88b85b69 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -216,6 +216,9 @@ int ath10k_mac_ext_resource_config(struct ath10k *ar, u32 val) else platform_type = WMI_HOST_PLATFORM_HIGH_PERF; + if (!peer_flow_ctl) + platform_type = WMI_HOST_PLATFORM_LOW_PERF_NO_FETCH; + ret = ath10k_wmi_ext_resource_config(ar, platform_type, val); if (ret && ret != -EOPNOTSUPP) { diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h index f7badd079051..6958d4f58a21 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.h +++ b/drivers/net/wireless/ath/ath10k/wmi.h @@ -7128,6 +7128,7 @@ struct wmi_pno_scan_req { enum wmi_host_platform_type { WMI_HOST_PLATFORM_HIGH_PERF, WMI_HOST_PLATFORM_LOW_PERF, + WMI_HOST_PLATFORM_LOW_PERF_NO_FETCH, }; enum wmi_bss_survey_req_type {