diff --git a/core/hdd/inc/hdd_config.h b/core/hdd/inc/hdd_config.h index 9b32943db35f..2090ac1180c8 100644 --- a/core/hdd/inc/hdd_config.h +++ b/core/hdd/inc/hdd_config.h @@ -87,7 +87,7 @@ enum hdd_wext_control { /* * * gInterfaceChangeWait - Interface change wait - * @Min: 10, + * @Min: 0, * @Max: 500000 * @Default: 10000 * @@ -95,6 +95,8 @@ enum hdd_wext_control { * this timer expires all the cds modules shall be closed. * Time Units: ms * + * Value 0 can be used to disable idle module stop. + * * Related: None * * Supported Feature: All @@ -103,7 +105,7 @@ enum hdd_wext_control { */ #define CFG_INTERFACE_CHANGE_WAIT CFG_INI_UINT( \ "gInterfaceChangeWait", \ - 10, \ + 0, \ 500000, \ 10000, \ CFG_VALUE_OR_DEFAULT, \ diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 8342ae5473e2..ff4ee8df9c76 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -9213,6 +9213,11 @@ void hdd_psoc_idle_timer_start(struct hdd_context *hdd_ctx) enum wake_lock_reason reason = WIFI_POWER_EVENT_WAKELOCK_IFACE_CHANGE_TIMER; + if (!timeout_ms) { + hdd_info("psoc idle timer is disabled"); + return; + } + hdd_debug("Starting psoc idle timer"); qdf_sched_delayed_work(&hdd_ctx->psoc_idle_timeout_work, timeout_ms); hdd_prevent_suspend_timeout(timeout_ms, reason);