mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
qcacld-3.0: Handle disconnect request for SA Query timeout
FW sends a disconnect request to HOST while roaming failure through event WMI_VDEV_DISCONNECT_EVENTID per vdev id. For disconnect reason SA query timeout in WMI_VDEV_DISCONNECT_EVENTID, add support to handle disconnect request from FW. Change-Id: If911b18476d021bfe62eb10b4db3c2eec2a37743 CRs-Fixed: 2736242
This commit is contained in:
parent
4d1b659512
commit
6f71dff9a9
1 changed files with 17 additions and 9 deletions
|
|
@ -313,15 +313,15 @@ static inline void wma_roam_scan_fill_fils_params(
|
|||
#endif
|
||||
|
||||
/**
|
||||
* wma_handle_btm_disassoc_imminent_msg() - Send del sta msg to lim on receiving
|
||||
* BTM request from AP with disassoc imminent reason
|
||||
* wma_handle_disconnect_reason() - Send del sta msg to lim on receiving
|
||||
* @wma_handle: wma handle
|
||||
* @vdev_id: vdev id
|
||||
* @reason: disconnection reason from fw
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void wma_handle_btm_disassoc_imminent_msg(tp_wma_handle wma_handle,
|
||||
uint32_t vdev_id)
|
||||
static void wma_handle_disconnect_reason(tp_wma_handle wma_handle,
|
||||
uint32_t vdev_id, uint32_t reason)
|
||||
{
|
||||
tpDeleteStaContext del_sta_ctx;
|
||||
|
||||
|
|
@ -330,7 +330,7 @@ static void wma_handle_btm_disassoc_imminent_msg(tp_wma_handle wma_handle,
|
|||
return;
|
||||
|
||||
del_sta_ctx->vdev_id = vdev_id;
|
||||
del_sta_ctx->reasonCode = HAL_DEL_STA_REASON_CODE_BTM_DISASSOC_IMMINENT;
|
||||
del_sta_ctx->reasonCode = reason;
|
||||
wma_send_msg(wma_handle, SIR_LIM_DELETE_STA_CONTEXT_IND,
|
||||
(void *)del_sta_ctx, 0);
|
||||
}
|
||||
|
|
@ -419,14 +419,22 @@ int wma_roam_vdev_disconnect_event_handler(void *handle, uint8_t *event,
|
|||
wma_err("%s: roam cap event is NULL", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (roam_vdev_disc_ev->vdev_id >= wma->max_bssid) {
|
||||
wma_err("Invalid vdev id %d", roam_vdev_disc_ev->vdev_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
wma_debug("Received disconnect roam event on vdev_id : %d, reason:%d",
|
||||
roam_vdev_disc_ev->vdev_id, roam_vdev_disc_ev->reason);
|
||||
|
||||
switch (roam_vdev_disc_ev->reason) {
|
||||
case WLAN_DISCONNECT_REASON_CSA_SA_QUERY_TIMEOUT:
|
||||
wma_handle_disconnect_reason(wma, roam_vdev_disc_ev->vdev_id,
|
||||
HAL_DEL_STA_REASON_CODE_SA_QUERY_TIMEOUT);
|
||||
break;
|
||||
case WLAN_DISCONNECT_REASON_MOVE_TO_CELLULAR:
|
||||
wma_handle_btm_disassoc_imminent_msg(wma,
|
||||
roam_vdev_disc_ev->vdev_id);
|
||||
wma_handle_disconnect_reason(wma, roam_vdev_disc_ev->vdev_id,
|
||||
HAL_DEL_STA_REASON_CODE_BTM_DISASSOC_IMMINENT);
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
|
|
@ -6144,8 +6152,8 @@ int wma_roam_event_callback(WMA_HANDLE handle, uint8_t *event_buf,
|
|||
wma_debug("Kickout due to btm request");
|
||||
wma_sta_kickout_event(HOST_STA_KICKOUT_REASON_BTM,
|
||||
wmi_event->vdev_id, NULL);
|
||||
wma_handle_btm_disassoc_imminent_msg(wma_handle,
|
||||
wmi_event->vdev_id);
|
||||
wma_handle_disconnect_reason(wma_handle, wmi_event->vdev_id,
|
||||
HAL_DEL_STA_REASON_CODE_BTM_DISASSOC_IMMINENT);
|
||||
break;
|
||||
case WMI_ROAM_REASON_BMISS:
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue