diff --git a/core/hdd/inc/hdd_config.h b/core/hdd/inc/hdd_config.h index d9e9a8cca9..2cb6b19404 100644 --- a/core/hdd/inc/hdd_config.h +++ b/core/hdd/inc/hdd_config.h @@ -1291,6 +1291,34 @@ enum host_log_level { #define CFG_DYNAMIC_MAC_ADDR_UPDATE_SUPPORTED_ALL #endif +#ifdef FEATURE_ENABLE_CE_DP_IRQ_AFFINE +/* + * + * Enable_ce_dp_irq_affine - Enable/disable affinity on datapath CE IRQs + * + * @Min: 0 + * @Max: 1 + * Default: 0 + * + * This ini param is used to enable/disable the affinity on datapath + * Copy Engine IRQs. + * + * Supported Feature: STA/SAP + * + * Usage: External + * + * + */ +#define CFG_ENABLE_CE_DP_IRQ_AFFINE CFG_INI_BOOL(\ + "Enable_ce_dp_irq_affine", \ + 0, \ + "Enable/disable irq affinity on datapath CEs") +#define CFG_ENABLE_CE_DP_IRQ_AFFINE_ALL \ + CFG(CFG_ENABLE_CE_DP_IRQ_AFFINE) +#else +#define CFG_ENABLE_CE_DP_IRQ_AFFINE_ALL +#endif + #define CFG_HDD_ALL \ CFG_DYNAMIC_MAC_ADDR_UPDATE_SUPPORTED_ALL \ CFG_ENABLE_PACKET_LOG_ALL \ @@ -1328,5 +1356,6 @@ enum host_log_level { CFG(CFG_ENABLE_HOST_MODULE_LOG_LEVEL) \ SAR_SAFETY_FEATURE_ALL \ CFG_GET_WIFI_FEATURES_ALL \ - CFG_CPU_CXPC_THRESHOLD_ALL + CFG_CPU_CXPC_THRESHOLD_ALL \ + CFG_ENABLE_CE_DP_IRQ_AFFINE_ALL #endif diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 52d37e5e0c..5cfca65164 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -20246,6 +20246,27 @@ static void hdd_populate_runtime_cfg(struct hdd_context *hdd_ctx, } #endif +#ifdef FEATURE_ENABLE_CE_DP_IRQ_AFFINE +/** + * hdd_populate_ce_dp_irq_affine_cfg() - populate ce irq affine configuration + * @hdd_ctx: hdd context + * @cfg: pointer to the configuration memory being populated + * + * Return: void + */ +static void hdd_populate_ce_dp_irq_affine_cfg(struct hdd_context *hdd_ctx, + struct hif_config_info *cfg) +{ + cfg->enable_ce_dp_irq_affine = cfg_get(hdd_ctx->psoc, + CFG_ENABLE_CE_DP_IRQ_AFFINE); +} +#else +static void hdd_populate_ce_dp_irq_affine_cfg(struct hdd_context *hdd_ctx, + struct hif_config_info *cfg) +{ +} +#endif + /** * hdd_update_hif_config - API to update HIF configuration parameters * @hdd_ctx: HDD Context @@ -20276,6 +20297,7 @@ static void hdd_update_hif_config(struct hdd_context *hdd_ctx) hdd_populate_runtime_cfg(hdd_ctx, &cfg); cfg.rx_softirq_max_yield_duration_ns = ucfg_dp_get_rx_softirq_yield_duration(hdd_ctx->psoc); + hdd_populate_ce_dp_irq_affine_cfg(hdd_ctx, &cfg); hif_init_ini_config(scn, &cfg); hif_set_enable_rpm(scn);