prima: Reassoc to same AP using fastreassoc
Add support in the host driver to issue reassoc to same AP
using fastreassoc command.
Change-Id: If8e78841c5ef49529760b7913fc79d7e97bfc31f
CRs-fixed: 747413
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 0e9877d..47699c2 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -3452,8 +3452,12 @@
tSirMacAddr targetApBssid;
tANI_U8 trigger = 0;
eHalStatus status = eHAL_STATUS_SUCCESS;
+ tHalHandle hHal;
+ v_U32_t roamId = 0;
+ tCsrRoamModifyProfileFields modProfileFields;
hdd_station_ctx_t *pHddStaCtx = NULL;
pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
+ hHal = WLAN_HDD_GET_HAL_CTX(pAdapter);
/* if not associated, no need to proceed with reassoc */
if (eConnectionState_Associated != pHddStaCtx->conn_info.connState)
@@ -3473,15 +3477,18 @@
}
/* if the target bssid is same as currently associated AP,
- then no need to proceed with reassoc */
+ issue reassoc to same AP */
if (VOS_TRUE == vos_mem_compare(targetApBssid,
pHddStaCtx->conn_info.bssId, sizeof(tSirMacAddr)))
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
"%s:11r Reassoc BSSID is same as currently associated AP bssid",
__func__);
- ret = -EINVAL;
- goto exit;
+ sme_GetModifyProfileFields(hHal, pAdapter->sessionId,
+ &modProfileFields);
+ sme_RoamReassoc(hHal, pAdapter->sessionId,
+ NULL, modProfileFields, &roamId, 1);
+ return 0;
}
/* Proceed with scan/roam */