qcacmn: TWT: Add support for not in range and IE validation fail status code

Add support for TWT AP params not in range and IE validation failed
status code.
Presence of num_additional_twt_params is enough to extract the additional
params sent by the firmware, there is no need for extra status check.

Change-Id: I9fa6afd22aa4de1b2a5b75fa98a00f89768dd8cf
CRs-Fixed: 2890682
Bu işleme şunda yer alıyor:
Srinivas Girigowda
2021-03-02 22:51:56 -08:00
işlemeyi yapan: snandini
ebeveyn f5fe106f3f
işleme b29d1e9018
2 değiştirilmiş dosya ile 6 ekleme ve 10 silme

Dosyayı Görüntüle

@@ -303,6 +303,10 @@ struct wmi_twt_add_dialog_param {
* WMI_HOST_ADD_TWT_STATUS_DENIED: AP did not accept the request * WMI_HOST_ADD_TWT_STATUS_DENIED: AP did not accept the request
* WMI_HOST_ADD_TWT_STATUS_UNKNOWN_ERROR: adding TWT dialog failed with * WMI_HOST_ADD_TWT_STATUS_UNKNOWN_ERROR: adding TWT dialog failed with
* an unknown reason * 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
*/ */
enum WMI_HOST_ADD_TWT_STATUS { enum WMI_HOST_ADD_TWT_STATUS {
WMI_HOST_ADD_TWT_STATUS_OK, WMI_HOST_ADD_TWT_STATUS_OK,
@@ -315,6 +319,8 @@ enum WMI_HOST_ADD_TWT_STATUS {
WMI_HOST_ADD_TWT_STATUS_NO_RESPONSE, WMI_HOST_ADD_TWT_STATUS_NO_RESPONSE,
WMI_HOST_ADD_TWT_STATUS_DENIED, WMI_HOST_ADD_TWT_STATUS_DENIED,
WMI_HOST_ADD_TWT_STATUS_UNKNOWN_ERROR, 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
}; };
/** /**

Dosyayı Görüntüle

@@ -534,16 +534,6 @@ static QDF_STATUS extract_twt_add_dialog_comp_additional_parameters
ev = param_buf->fixed_param; ev = param_buf->fixed_param;
/*
* For Alternate values from AP, Firmware sends additional params
* with WMI_HOST_ADD_TWT_STATUS_DENIED
*/
if (ev->status != WMI_HOST_ADD_TWT_STATUS_OK &&
ev->status != WMI_HOST_ADD_TWT_STATUS_DENIED) {
wmi_err("Status of add dialog complete is not success");
return QDF_STATUS_E_INVAL;
}
if (idx >= param_buf->num_twt_params) { if (idx >= param_buf->num_twt_params) {
wmi_err("Invalid idx %d while num_twt_params = %d", wmi_err("Invalid idx %d while num_twt_params = %d",
idx, param_buf->num_twt_params); idx, param_buf->num_twt_params);