diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index 7f1f5232bb0c..22d3c253b120 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -2746,6 +2746,11 @@ typedef struct sSirPNOScanReq { tSirScanTimersType scanTimers; uint8_t sessionId; + uint32_t active_min_time; + uint32_t active_max_time; + uint32_t passive_min_time; + uint32_t passive_max_time; + uint16_t us24GProbeTemplateLen; uint8_t p24GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE]; uint16_t us5GProbeTemplateLen; diff --git a/core/sme/src/common/sme_power_save.c b/core/sme/src/common/sme_power_save.c index ba4ec34ea34c..be463897a2f8 100644 --- a/core/sme/src/common/sme_power_save.c +++ b/core/sme/src/common/sme_power_save.c @@ -907,6 +907,28 @@ CDF_STATUS sme_set_ps_preferred_network_list(tHalHandle hal_ctx, request_buf->sessionId = session_id; } sme_set_pno_channel_prediction(request_buf, mac_ctx); + + if (csr_is_p2p_session_connected(mac_ctx)) { + /* if AP-STA concurrency is active */ + request_buf->active_max_time = + mac_ctx->roam.configParam.nActiveMaxChnTimeConc; + request_buf->active_min_time = + mac_ctx->roam.configParam.nActiveMinChnTimeConc; + request_buf->passive_max_time = + mac_ctx->roam.configParam.nPassiveMaxChnTimeConc; + request_buf->passive_min_time = + mac_ctx->roam.configParam.nPassiveMinChnTimeConc; + } else { + request_buf->active_max_time = + mac_ctx->roam.configParam.nActiveMaxChnTime; + request_buf->active_min_time = + mac_ctx->roam.configParam.nActiveMinChnTime; + request_buf->passive_max_time = + mac_ctx->roam.configParam.nPassiveMaxChnTime; + request_buf->passive_min_time = + mac_ctx->roam.configParam.nPassiveMinChnTime; + } + msg.type = WMA_SET_PNO_REQ; msg.reserved = 0; msg.bodyptr = request_buf; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index bc08c24c6756..a3a98f390d24 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -3527,6 +3527,10 @@ CDF_STATUS wma_pno_start(tp_wma_handle wma, tpSirPNOScanReq pno) cmd->vdev_id = pno->sessionId; cmd->flags = WMI_NLO_CONFIG_START | WMI_NLO_CONFIG_SSID_HIDE_EN; + /* Current FW does not support min-max range for dwell time */ + cmd->active_dwell_time = pno->active_max_time; + cmd->passive_dwell_time = pno->passive_max_time; + /* Copy scan interval */ if (pno->scanTimers.ucScanTimersCount) { cmd->fast_scan_period =