diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index 8b13d28d0527..8f31fccdb290 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -4584,6 +4584,7 @@ error: } #endif +#ifndef NAPIER_SCAN /** * csr_get_active_scan_entry() - To get scan entry from active command list * @@ -4613,6 +4614,7 @@ QDF_STATUS csr_get_active_scan_entry(tpAniSirGlobal mac_ctx, csr_scan_active_ll_unlock(mac_ctx); return QDF_STATUS_SUCCESS; } + localentry = csr_scan_active_ll_peek_head(mac_ctx, LL_ACCESS_NOLOCK); while (localentry) { @@ -4635,6 +4637,56 @@ QDF_STATUS csr_get_active_scan_entry(tpAniSirGlobal mac_ctx, sms_log(mac_ctx, LOGE, FL("Exit")); return status; } + +#else + +/* API will be removed after p2p component L0 */ +QDF_STATUS csr_get_active_scan_entry(tpAniSirGlobal mac_ctx, + uint32_t scan_id, tListElem **entry) +{ + QDF_STATUS status = QDF_STATUS_E_FAILURE; + struct wlan_serialization_command *cmn_cmd; + tSmeCmd *sme_cmd; + uint32_t cmd_scan_id = 0; + + sms_log(mac_ctx, LOGE, FL("Enter")); + csr_scan_active_ll_lock(mac_ctx); + + if (csr_scan_active_ll_is_list_empty(mac_ctx, LL_ACCESS_NOLOCK)) { + sms_log(mac_ctx, LOGE, + FL(" Active list Empty scanId: %d"), scan_id); + csr_scan_active_ll_unlock(mac_ctx); + return QDF_STATUS_SUCCESS; + } + cmn_cmd = wlan_serialization_peek_head_active_cmd_using_psoc( + mac_ctx->psoc, true); + while (cmn_cmd) { + sme_cmd = cmn_cmd->umac_cmd; + if (cmn_cmd->cmd_type == WLAN_SER_CMD_SCAN) + cmd_scan_id = cmn_cmd->cmd_id; + else if (cmn_cmd->cmd_type == WLAN_SER_CMD_REMAIN_ON_CHANNEL) + cmd_scan_id = sme_cmd->u.remainChlCmd.scan_id; + sms_log(mac_ctx, LOG1, FL(" cmd_scan_id %d"), + cmd_scan_id); + if ((cmn_cmd->cmd_type == WLAN_SER_CMD_REMAIN_ON_CHANNEL) && + (cmd_scan_id == scan_id)) { + sms_log(mac_ctx, LOG1, FL(" scanId Matched %d"), + scan_id); + *entry = &sme_cmd->Link; + csr_scan_active_ll_unlock(mac_ctx); + return QDF_STATUS_SUCCESS; + } + cmn_cmd = + wlan_serialization_get_active_list_next_node_using_psoc( + mac_ctx->psoc, cmn_cmd, true); + } + csr_scan_active_ll_unlock(mac_ctx); + sms_log(mac_ctx, LOGE, FL("Exit")); + + return status; +} +#endif + #ifdef NAPIER_SCAN void csr_scan_callback(struct wlan_objmgr_vdev *vdev, struct scan_event *event, void *arg) diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index cca217d88532..af1c9ae5f0df 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -5957,6 +5957,9 @@ QDF_STATUS wma_get_scan_id(uint32_t *scan_id) return QDF_STATUS_E_FAULT; } +#ifdef NAPIER_SCAN + *scan_id = ucfg_scan_get_scan_id(wma->psoc); +#else /* host need to cycle through the lower 12 bits to generate ids */ *scan_id = qdf_atomic_inc_return(&wma->scan_id_counter) & WMA_SCAN_ID_MASK; @@ -5965,6 +5968,7 @@ QDF_STATUS wma_get_scan_id(uint32_t *scan_id) * by PREFIX 0xA000 */ *scan_id = *scan_id | WMI_HOST_SCAN_REQ_ID_PREFIX; +#endif return QDF_STATUS_SUCCESS; }