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:
@@ -291,22 +291,24 @@ struct wmi_twt_add_dialog_param {
|
||||
};
|
||||
|
||||
/* enum - status code of adding TWT dialog
|
||||
* WMI_HOST_ADD_TWT_STATUS_OK: adding TWT dialog successfully completed
|
||||
* WMI_HOST_ADD_TWT_STATUS_TWT_NOT_ENABLED: TWT not enabled
|
||||
* WMI_HOST_ADD_TWT_STATUS_USED_DIALOG_ID: TWT dialog ID is already used
|
||||
* WMI_HOST_ADD_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* WMI_HOST_ADD_TWT_STATUS_NOT_READY: FW not ready
|
||||
* WMI_HOST_ADD_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* WMI_HOST_ADD_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* WMI_HOST_ADD_TWT_STATUS_NO_RESPONSE: peer AP did not send the response frame
|
||||
* WMI_HOST_ADD_TWT_STATUS_DENIED: AP did not accept the request
|
||||
* WMI_HOST_ADD_TWT_STATUS_UNKNOWN_ERROR: adding TWT dialog failed with
|
||||
* an unknown reason
|
||||
* WMI_HOST_ADD_TWT_STATUS_AP_PARAMS_NOT_IN_RANGE: peer AP wake interval,
|
||||
* duration not in range
|
||||
* WMI_HOST_ADD_TWT_STATUS_AP_IE_VALIDATION_FAILED:
|
||||
* peer AP IE Validation Failed
|
||||
* @WMI_HOST_ADD_TWT_STATUS_OK: adding TWT dialog successfully completed
|
||||
* @WMI_HOST_ADD_TWT_STATUS_TWT_NOT_ENABLED: TWT not enabled
|
||||
* @WMI_HOST_ADD_TWT_STATUS_USED_DIALOG_ID: TWT dialog ID is already used
|
||||
* @WMI_HOST_ADD_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* @WMI_HOST_ADD_TWT_STATUS_NOT_READY: FW not ready
|
||||
* @WMI_HOST_ADD_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* @WMI_HOST_ADD_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* @WMI_HOST_ADD_TWT_STATUS_NO_RESPONSE: peer AP did not send the response frame
|
||||
* @WMI_HOST_ADD_TWT_STATUS_DENIED: AP did not accept the request
|
||||
* @WMI_HOST_ADD_TWT_STATUS_UNKNOWN_ERROR: adding TWT dialog failed with
|
||||
* an unknown reason
|
||||
* @WMI_HOST_ADD_TWT_STATUS_AP_PARAMS_NOT_IN_RANGE: peer AP wake interval,
|
||||
* duration not in range
|
||||
* @WMI_HOST_ADD_TWT_STATUS_AP_IE_VALIDATION_FAILED: peer AP IE Validation
|
||||
* Failed
|
||||
* @WMI_HOST_ADD_TWT_STATUS_ROAM_IN_PROGRESS: Roaming in progress
|
||||
* @WMI_HOST_ADD_TWT_STATUS_CHAN_SW_IN_PROGRESS: Channel switch in progress
|
||||
*/
|
||||
enum WMI_HOST_ADD_TWT_STATUS {
|
||||
WMI_HOST_ADD_TWT_STATUS_OK,
|
||||
@@ -320,7 +322,9 @@ enum WMI_HOST_ADD_TWT_STATUS {
|
||||
WMI_HOST_ADD_TWT_STATUS_DENIED,
|
||||
WMI_HOST_ADD_TWT_STATUS_UNKNOWN_ERROR,
|
||||
WMI_HOST_ADD_TWT_STATUS_AP_PARAMS_NOT_IN_RANGE,
|
||||
WMI_HOST_ADD_TWT_STATUS_AP_IE_VALIDATION_FAILED
|
||||
WMI_HOST_ADD_TWT_STATUS_AP_IE_VALIDATION_FAILED,
|
||||
WMI_HOST_ADD_TWT_STATUS_ROAM_IN_PROGRESS,
|
||||
WMI_HOST_ADD_TWT_STATUS_CHAN_SW_IN_PROGRESS,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -407,6 +411,7 @@ struct wmi_twt_del_dialog_param {
|
||||
* @WMI_HOST_DEL_TWT_STATUS_ROAMING: TWT teardown due to roaming.
|
||||
* @WMI_HOST_DEL_TWT_STATUS_CONCURRENCY: TWT session teardown due to
|
||||
* concurrent session comming up.
|
||||
* @WMI_HOST_DEL_TWT_STATUS_CHAN_SW_IN_PROGRESS: Channel switch in progress
|
||||
*/
|
||||
enum WMI_HOST_DEL_TWT_STATUS {
|
||||
WMI_HOST_DEL_TWT_STATUS_OK,
|
||||
@@ -419,6 +424,7 @@ enum WMI_HOST_DEL_TWT_STATUS {
|
||||
WMI_HOST_DEL_TWT_STATUS_PEER_INIT_TEARDOWN,
|
||||
WMI_HOST_DEL_TWT_STATUS_ROAMING,
|
||||
WMI_HOST_DEL_TWT_STATUS_CONCURRENCY,
|
||||
WMI_HOST_DEL_TWT_STATUS_CHAN_SW_IN_PROGRESS,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -468,17 +474,18 @@ struct wmi_twt_nudge_dialog_cmd_param {
|
||||
};
|
||||
|
||||
/* enum WMI_HOST_PAUSE_TWT_STATUS - status code of pausing TWT dialog
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_OK: pausing TWT dialog successfully completed
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_DIALOG_ID_NOT_EXIST: TWT dialog ID not exists
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_DIALOG_ID_BUSY: FW is in the process of handling
|
||||
* this dialog
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_UNKNOWN_ERROR: pausing TWT dialog failed with an
|
||||
* unknown reason
|
||||
* WMI_HOST_PAUSE_TWT_STATUS_ALREADY_PAUSED: TWT dialog already in paused state
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_OK: pausing TWT dialog successfully completed
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_DIALOG_ID_NOT_EXIST: TWT dialog ID not exists
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_DIALOG_ID_BUSY: FW is in the process of handling
|
||||
* this dialog
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_UNKNOWN_ERROR: pausing TWT dialog failed with an
|
||||
* unknown reason
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_ALREADY_PAUSED: TWT dialog already in paused state
|
||||
* @WMI_HOST_PAUSE_TWT_STATUS_CHAN_SW_IN_PROGRESS: Channel switch in progress
|
||||
*/
|
||||
enum WMI_HOST_PAUSE_TWT_STATUS {
|
||||
WMI_HOST_PAUSE_TWT_STATUS_OK,
|
||||
@@ -489,6 +496,7 @@ enum WMI_HOST_PAUSE_TWT_STATUS {
|
||||
WMI_HOST_PAUSE_TWT_STATUS_NO_ACK,
|
||||
WMI_HOST_PAUSE_TWT_STATUS_UNKNOWN_ERROR,
|
||||
WMI_HOST_PAUSE_TWT_STATUS_ALREADY_PAUSED,
|
||||
WMI_HOST_PAUSE_TWT_STATUS_CHAN_SW_IN_PROGRESS,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -506,16 +514,17 @@ struct wmi_twt_pause_dialog_complete_event_param {
|
||||
};
|
||||
|
||||
/* enum WMI_HOST_NUDGE_TWT_STATUS - status code of nudge TWT dialog
|
||||
* WMI_HOST_NUDGE_TWT_STATUS_OK: nudge TWT dialog successfully completed
|
||||
* WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_NOT_EXIST: TWT dialog ID not exists
|
||||
* WMI_HOST_NUDGE_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_BUSY: FW is in the process of handling
|
||||
* this dialog
|
||||
* WMI_HOST_NUDGE_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* WMI_HOST_NUDGE_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR: nudge TWT dialog failed with an
|
||||
* unknown reason
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_OK: nudge TWT dialog successfully completed
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_NOT_EXIST: TWT dialog ID not exists
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_BUSY: FW is in the process of handling
|
||||
* this dialog
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR: nudge TWT dialog failed with an
|
||||
* unknown reason
|
||||
* @WMI_HOST_NUDGE_TWT_STATUS_CHAN_SW_IN_PROGRESS: Channel switch in progress
|
||||
*/
|
||||
enum WMI_HOST_NUDGE_TWT_STATUS {
|
||||
WMI_HOST_NUDGE_TWT_STATUS_OK,
|
||||
@@ -525,6 +534,7 @@ enum WMI_HOST_NUDGE_TWT_STATUS {
|
||||
WMI_HOST_NUDGE_TWT_STATUS_NO_RESOURCE,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_NO_ACK,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_CHAN_SW_IN_PROGRESS,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -563,17 +573,18 @@ struct wmi_twt_resume_dialog_cmd_param {
|
||||
};
|
||||
|
||||
/* enum WMI_HOST_RESUME_TWT_STATUS - status code of resuming TWT dialog
|
||||
* WMI_HOST_RESUME_TWT_STATUS_OK: resuming TWT dialog successfully completed
|
||||
* WMI_HOST_RESUME_TWT_STATUS_DIALOG_ID_NOT_EXIST: TWT dialog ID not exists
|
||||
* WMI_HOST_RESUME_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* WMI_HOST_RESUME_TWT_STATUS_DIALOG_ID_BUSY: FW is in the process of handling
|
||||
* this dialog
|
||||
* WMI_HOST_RESUME_TWT_STATUS_NOT_PAUSED: dialog not paused currently
|
||||
* WMI_HOST_RESUME_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* WMI_HOST_RESUME_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* WMI_HOST_RESUME_TWT_STATUS_UNKNOWN_ERROR: resuming TWT dialog failed with an
|
||||
* unknown reason
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_OK: resuming TWT dialog successfully completed
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_DIALOG_ID_NOT_EXIST: TWT dialog ID not exists
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_INVALID_PARAM: invalid parameters
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_DIALOG_ID_BUSY: FW is in the process of handling
|
||||
* this dialog
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_NOT_PAUSED: dialog not paused currently
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_NO_RESOURCE: FW resource exhausted
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_NO_ACK: peer AP/STA did not ACK the
|
||||
* request/response frame
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_UNKNOWN_ERROR: resuming TWT dialog failed with an
|
||||
* unknown reason
|
||||
* @WMI_HOST_RESUME_TWT_STATUS_CHAN_SW_IN_PROGRESS: Channel switch in progress
|
||||
*/
|
||||
enum WMI_HOST_RESUME_TWT_STATUS {
|
||||
WMI_HOST_RESUME_TWT_STATUS_OK,
|
||||
@@ -584,6 +595,7 @@ enum WMI_HOST_RESUME_TWT_STATUS {
|
||||
WMI_HOST_RESUME_TWT_STATUS_NO_RESOURCE,
|
||||
WMI_HOST_RESUME_TWT_STATUS_NO_ACK,
|
||||
WMI_HOST_RESUME_TWT_STATUS_UNKNOWN_ERROR,
|
||||
WMI_HOST_RESUME_TWT_STATUS_CHAN_SW_IN_PROGRESS,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user