qcacmn: Add new reason codes for TWT session

The firmware sends new reason codes due to roaming in
progress and channel switch. Add new reason code for
TWT session.

Change-Id: I3820ac74910e382f5a029de85f8e0915220bb996
CRs-Fixed: 2908384
This commit is contained in:
Deeksha Gupta
2021-03-25 16:46:11 +05:30
committed by snandini
parent f08cb9d934
commit b1faf3e88d
2 changed files with 129 additions and 51 deletions

View File

@@ -469,6 +469,41 @@ static QDF_STATUS extract_twt_disable_comp_event_tlv(wmi_unified_t wmi_handle,
return QDF_STATUS_SUCCESS;
}
static enum WMI_HOST_ADD_TWT_STATUS
wmi_get_converted_twt_add_dialog_status(WMI_ADD_TWT_STATUS_T tgt_status)
{
switch (tgt_status) {
case WMI_ADD_TWT_STATUS_OK:
return WMI_HOST_ADD_TWT_STATUS_OK;
case WMI_ADD_TWT_STATUS_TWT_NOT_ENABLED:
return WMI_HOST_ADD_TWT_STATUS_TWT_NOT_ENABLED;
case WMI_ADD_TWT_STATUS_USED_DIALOG_ID:
return WMI_HOST_ADD_TWT_STATUS_USED_DIALOG_ID;
case WMI_ADD_TWT_STATUS_INVALID_PARAM:
return WMI_HOST_ADD_TWT_STATUS_INVALID_PARAM;
case WMI_ADD_TWT_STATUS_NOT_READY:
return WMI_HOST_ADD_TWT_STATUS_NOT_READY;
case WMI_ADD_TWT_STATUS_NO_RESOURCE:
return WMI_HOST_ADD_TWT_STATUS_NO_RESOURCE;
case WMI_ADD_TWT_STATUS_NO_ACK:
return WMI_HOST_ADD_TWT_STATUS_NO_ACK;
case WMI_ADD_TWT_STATUS_NO_RESPONSE:
return WMI_HOST_ADD_TWT_STATUS_NO_RESPONSE;
case WMI_ADD_TWT_STATUS_DENIED:
return WMI_HOST_ADD_TWT_STATUS_DENIED;
case WMI_ADD_TWT_STATUS_AP_PARAMS_NOT_IN_RANGE:
return WMI_HOST_ADD_TWT_STATUS_AP_PARAMS_NOT_IN_RANGE;
case WMI_ADD_TWT_STATUS_AP_IE_VALIDATION_FAILED:
return WMI_HOST_ADD_TWT_STATUS_AP_IE_VALIDATION_FAILED;
case WMI_ADD_TWT_STATUS_ROAM_IN_PROGRESS:
return WMI_HOST_ADD_TWT_STATUS_ROAM_IN_PROGRESS;
case WMI_ADD_TWT_STATUS_CHAN_SW_IN_PROGRESS:
return WMI_HOST_ADD_TWT_STATUS_CHAN_SW_IN_PROGRESS;
default:
return WMI_HOST_ADD_TWT_STATUS_UNKNOWN_ERROR;
}
}
/**
* extract_twt_add_dialog_comp_event_tlv - Extacts twt add dialog complete wmi
* event from firmware
@@ -496,7 +531,7 @@ static QDF_STATUS extract_twt_add_dialog_comp_event_tlv(
params->vdev_id = ev->vdev_id;
WMI_MAC_ADDR_TO_CHAR_ARRAY(&ev->peer_macaddr, params->peer_macaddr);
params->status = ev->status;
params->status = wmi_get_converted_twt_add_dialog_status(ev->status);
params->dialog_id = ev->dialog_id;
params->num_additional_twt_params = param_buf->num_twt_params;
@@ -601,6 +636,8 @@ wmi_get_converted_twt_del_dialog_status(WMI_DEL_TWT_STATUS_T tgt_status)
return WMI_HOST_DEL_TWT_STATUS_ROAMING;
case WMI_DEL_TWT_STATUS_CONCURRENCY:
return WMI_HOST_DEL_TWT_STATUS_CONCURRENCY;
case WMI_DEL_TWT_STATUS_CHAN_SW_IN_PROGRESS:
return WMI_HOST_DEL_TWT_STATUS_CHAN_SW_IN_PROGRESS;
default:
return WMI_HOST_DEL_TWT_STATUS_UNKNOWN_ERROR;
}
@@ -652,6 +689,8 @@ wmi_twt_pause_status_to_host_twt_status(WMI_PAUSE_TWT_STATUS_T status)
return WMI_HOST_PAUSE_TWT_STATUS_UNKNOWN_ERROR;
case WMI_PAUSE_TWT_STATUS_ALREADY_PAUSED:
return WMI_HOST_PAUSE_TWT_STATUS_ALREADY_PAUSED;
case WMI_PAUSE_TWT_STATUS_CHAN_SW_IN_PROGRESS:
return WMI_HOST_PAUSE_TWT_STATUS_CHAN_SW_IN_PROGRESS;
default:
return WMI_HOST_PAUSE_TWT_STATUS_UNKNOWN_ERROR;
}
@@ -699,6 +738,8 @@ wmi_twt_nudge_status_to_host_twt_status(WMI_TWT_NUDGE_STATUS_T status)
return WMI_HOST_NUDGE_TWT_STATUS_NO_ACK;
case WMI_NUDGE_TWT_STATUS_UNKNOWN_ERROR:
return WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR;
case WMI_NUDGE_TWT_STATUS_CHAN_SW_IN_PROGRESS:
return WMI_HOST_NUDGE_TWT_STATUS_CHAN_SW_IN_PROGRESS;
default:
return WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR;
}
@@ -734,6 +775,31 @@ static QDF_STATUS extract_twt_nudge_dialog_comp_event_tlv(
return QDF_STATUS_SUCCESS;
}
static enum WMI_HOST_RESUME_TWT_STATUS
wmi_get_converted_twt_resume_dialog_status(WMI_RESUME_TWT_STATUS_T tgt_status)
{
switch (tgt_status) {
case WMI_RESUME_TWT_STATUS_OK:
return WMI_HOST_RESUME_TWT_STATUS_OK;
case WMI_RESUME_TWT_STATUS_DIALOG_ID_NOT_EXIST:
return WMI_HOST_RESUME_TWT_STATUS_DIALOG_ID_NOT_EXIST;
case WMI_RESUME_TWT_STATUS_INVALID_PARAM:
return WMI_HOST_RESUME_TWT_STATUS_INVALID_PARAM;
case WMI_RESUME_TWT_STATUS_DIALOG_ID_BUSY:
return WMI_HOST_RESUME_TWT_STATUS_DIALOG_ID_BUSY;
case WMI_RESUME_TWT_STATUS_NOT_PAUSED:
return WMI_HOST_RESUME_TWT_STATUS_NOT_PAUSED;
case WMI_RESUME_TWT_STATUS_NO_RESOURCE:
return WMI_HOST_RESUME_TWT_STATUS_NO_RESOURCE;
case WMI_RESUME_TWT_STATUS_NO_ACK:
return WMI_HOST_RESUME_TWT_STATUS_NO_ACK;
case WMI_RESUME_TWT_STATUS_CHAN_SW_IN_PROGRESS:
return WMI_HOST_RESUME_TWT_STATUS_CHAN_SW_IN_PROGRESS;
default:
return WMI_HOST_RESUME_TWT_STATUS_UNKNOWN_ERROR;
}
}
static QDF_STATUS extract_twt_resume_dialog_comp_event_tlv(
wmi_unified_t wmi_handle,
uint8_t *evt_buf,
@@ -753,7 +819,7 @@ static QDF_STATUS extract_twt_resume_dialog_comp_event_tlv(
params->vdev_id = ev->vdev_id;
WMI_MAC_ADDR_TO_CHAR_ARRAY(&ev->peer_macaddr, params->peer_macaddr);
params->status = ev->status;
params->status = wmi_get_converted_twt_resume_dialog_status(ev->status);
params->dialog_id = ev->dialog_id;
return QDF_STATUS_SUCCESS;