qcacmn: Add support for WMI_TWT_NUDGE_DIALOG_CMDID
Add support for WMI_TWT_NUDGE_DIALOG_CMDID and WMI_TWT_NUDGE_DIALOG_COMPLETE_EVENTID. Change-Id: I9d4bf1061f6f08479967619ce50d2756c062f55f CRs-Fixed: 2825138
This commit is contained in:
@@ -4725,6 +4725,7 @@ typedef enum {
|
||||
wmi_twt_del_dialog_complete_event_id,
|
||||
wmi_twt_pause_dialog_complete_event_id,
|
||||
wmi_twt_resume_dialog_complete_event_id,
|
||||
wmi_twt_nudge_dialog_complete_event_id,
|
||||
wmi_twt_session_stats_event_id,
|
||||
#endif
|
||||
wmi_apf_get_vdev_work_memory_resp_event_id,
|
||||
|
@@ -2205,6 +2205,9 @@ QDF_STATUS (*send_twt_del_dialog_cmd)(wmi_unified_t wmi_handle,
|
||||
QDF_STATUS (*send_twt_pause_dialog_cmd)(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_pause_dialog_cmd_param *params);
|
||||
|
||||
QDF_STATUS (*send_twt_nudge_dialog_cmd)(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_nudge_dialog_cmd_param *params);
|
||||
|
||||
QDF_STATUS (*send_twt_resume_dialog_cmd)(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_resume_dialog_cmd_param *params);
|
||||
|
||||
@@ -2243,6 +2246,10 @@ QDF_STATUS (*extract_twt_pause_dialog_comp_event)(wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
struct wmi_twt_pause_dialog_complete_event_param *params);
|
||||
|
||||
QDF_STATUS (*extract_twt_nudge_dialog_comp_event)(wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
struct wmi_twt_nudge_dialog_complete_event_param *params);
|
||||
|
||||
QDF_STATUS (*extract_twt_resume_dialog_comp_event)(wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
struct wmi_twt_resume_dialog_complete_event_param *params);
|
||||
|
@@ -81,6 +81,17 @@ QDF_STATUS
|
||||
wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_pause_dialog_cmd_param *params);
|
||||
|
||||
/**
|
||||
* wmi_unified_twt_nudge_dialog_cmd() - Send WMI command to nudge TWT dialog
|
||||
* @wmi_handle: wmi handle
|
||||
* @params: Parameters to be configured
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||
*/
|
||||
QDF_STATUS
|
||||
wmi_unified_twt_nudge_dialog_cmd(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_nudge_dialog_cmd_param *params);
|
||||
|
||||
/**
|
||||
* wmi_unified_twt_resume_dialog_cmd() - Send WMI command to resume TWT dialog
|
||||
* @wmi_handle: wmi handle
|
||||
@@ -203,6 +214,20 @@ QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
|
||||
uint8_t *evt_buf,
|
||||
struct wmi_twt_pause_dialog_complete_event_param *params);
|
||||
|
||||
/**
|
||||
* wmi_extract_twt_nudge_dialog_comp_event() - Extract WMI event params for TWT
|
||||
* nudge dialog completion event
|
||||
* @wmi_handle: wmi handle
|
||||
* @evt_buf: Pointer event buffer
|
||||
* @params: Parameters to extract
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||
*/
|
||||
QDF_STATUS wmi_extract_twt_nudge_dialog_comp_event(
|
||||
wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
struct wmi_twt_nudge_dialog_complete_event_param *params);
|
||||
|
||||
/**
|
||||
* wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
|
||||
* resume dialog completion event
|
||||
|
@@ -129,7 +129,8 @@ enum WMI_HOST_ENABLE_TWT_STATUS {
|
||||
WMI_HOST_ENABLE_TWT_STATUS_UNKNOWN_ERROR,
|
||||
};
|
||||
|
||||
/** struct wmi_twt_enable_complete_event_param:
|
||||
/**
|
||||
* struct wmi_twt_enable_complete_event_param:
|
||||
* @pdev_is: pdev_id for identifying the MAC.
|
||||
* @status: From enum WMI_HOST_ENABLE_TWT_STATUS
|
||||
*/
|
||||
@@ -139,7 +140,7 @@ struct wmi_twt_enable_complete_event_param {
|
||||
};
|
||||
|
||||
/**
|
||||
*struct wmi_twt_disable_param:
|
||||
* struct wmi_twt_disable_param:
|
||||
* @pdev_id: pdev_id for identifying the MAC.
|
||||
* @ext_conf_present: If requestor/responder extend config is present.
|
||||
* @twt_role: values from enum WMI_TWT_ROLE.
|
||||
@@ -152,7 +153,8 @@ struct wmi_twt_disable_param {
|
||||
enum WMI_TWT_OPERATION twt_oper;
|
||||
};
|
||||
|
||||
/** struct wmi_twt_disable_complete_event:
|
||||
/**
|
||||
* struct wmi_twt_disable_complete_event:
|
||||
* @pdev_id: pdev_id for identifying the MAC.
|
||||
*/
|
||||
struct wmi_twt_disable_complete_event {
|
||||
@@ -204,7 +206,8 @@ struct wmi_host_twt_session_stats_info {
|
||||
uint32_t sp_tsf_us_hi;
|
||||
};
|
||||
|
||||
/** struct wmi_twt_session_stats_event:
|
||||
/**
|
||||
* struct wmi_twt_session_stats_event:
|
||||
* @pdev_id: pdev_id for identifying the MAC.
|
||||
* @num_sessions: number of TWT sessions
|
||||
* @twt_sessions: received TWT sessions
|
||||
@@ -226,7 +229,8 @@ enum WMI_HOST_TWT_COMMAND {
|
||||
WMI_HOST_TWT_COMMAND_REJECT_TWT = 7,
|
||||
};
|
||||
|
||||
/** struct wmi_twt_add_dialog_param -
|
||||
/**
|
||||
* struct wmi_twt_add_dialog_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: peer MAC address when vdev is AP VDEV
|
||||
* @dialog_id: diaglog_id (TWT dialog ID)
|
||||
@@ -341,7 +345,8 @@ struct wmi_twt_add_dialog_additional_params {
|
||||
uint32_t sp_tsf_us_hi;
|
||||
};
|
||||
|
||||
/** struct wmi_twt_add_dialog_complete_param -
|
||||
/**
|
||||
* struct wmi_twt_add_dialog_complete_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -356,7 +361,8 @@ struct wmi_twt_add_dialog_complete_event_param {
|
||||
uint32_t num_additional_twt_params;
|
||||
};
|
||||
|
||||
/** struct wmi_twt_del_dialog_param -
|
||||
/**
|
||||
* struct wmi_twt_del_dialog_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -393,7 +399,8 @@ enum WMI_HOST_DEL_TWT_STATUS {
|
||||
WMI_HOST_DEL_TWT_STATUS_UNKNOWN_ERROR,
|
||||
};
|
||||
|
||||
/** struct wmi_twt_del_dialog_complete_event_param -
|
||||
/**
|
||||
* struct wmi_twt_del_dialog_complete_event_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -410,7 +417,8 @@ struct wmi_twt_del_dialog_complete_event_param {
|
||||
uint32_t status;
|
||||
};
|
||||
|
||||
/** struct wmi_twt_pause_dialog_cmd_param -
|
||||
/**
|
||||
* struct wmi_twt_pause_dialog_cmd_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -421,6 +429,22 @@ struct wmi_twt_pause_dialog_cmd_param {
|
||||
uint32_t dialog_id;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_twt_nudge_dialog_cmd_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
* @suspend_duration: TWT suspend duration in microseconds
|
||||
* @next_twt_size: next TWT size
|
||||
*/
|
||||
struct wmi_twt_nudge_dialog_cmd_param {
|
||||
uint32_t vdev_id;
|
||||
uint8_t peer_macaddr[QDF_MAC_ADDR_SIZE];
|
||||
uint32_t dialog_id;
|
||||
uint32_t suspend_duration;
|
||||
uint32_t next_twt_size;
|
||||
};
|
||||
|
||||
/* 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
|
||||
@@ -445,7 +469,8 @@ enum WMI_HOST_PAUSE_TWT_STATUS {
|
||||
WMI_HOST_PAUSE_TWT_STATUS_ALREADY_PAUSED,
|
||||
};
|
||||
|
||||
/** struct wmi_twt_pause_dialog_complete_event_param -
|
||||
/**
|
||||
* struct wmi_twt_pause_dialog_complete_event_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -455,10 +480,47 @@ struct wmi_twt_pause_dialog_complete_event_param {
|
||||
uint32_t vdev_id;
|
||||
uint8_t peer_macaddr[QDF_MAC_ADDR_SIZE];
|
||||
uint32_t dialog_id;
|
||||
uint32_t status;
|
||||
enum WMI_HOST_PAUSE_TWT_STATUS status;
|
||||
};
|
||||
|
||||
/** struct wmi_twt_resume_dialog_cmd_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
|
||||
*/
|
||||
enum WMI_HOST_NUDGE_TWT_STATUS {
|
||||
WMI_HOST_NUDGE_TWT_STATUS_OK,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_NOT_EXIST,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_INVALID_PARAM,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_BUSY,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_NO_RESOURCE,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_NO_ACK,
|
||||
WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_twt_nudge_dialog_complete_event_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
* @status: refer to WMI_HOST_PAUSE_TWT_STATUS
|
||||
*/
|
||||
struct wmi_twt_nudge_dialog_complete_event_param {
|
||||
uint32_t vdev_id;
|
||||
uint8_t peer_macaddr[QDF_MAC_ADDR_SIZE];
|
||||
uint32_t dialog_id;
|
||||
enum WMI_HOST_NUDGE_TWT_STATUS status;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_twt_resume_dialog_cmd_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -498,7 +560,8 @@ enum WMI_HOST_RESUME_TWT_STATUS {
|
||||
WMI_HOST_RESUME_TWT_STATUS_UNKNOWN_ERROR,
|
||||
};
|
||||
|
||||
/** struct wmi_twt_resume_dialog_complete_event_param -
|
||||
/**
|
||||
* struct wmi_twt_resume_dialog_complete_event_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -512,7 +575,8 @@ struct wmi_twt_resume_dialog_complete_event_param {
|
||||
};
|
||||
|
||||
#ifdef WLAN_SUPPORT_BCAST_TWT
|
||||
/** struct wmi_twt_btwt_invite_sta_cmd_param -
|
||||
/**
|
||||
* struct wmi_twt_btwt_invite_sta_cmd_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: TWT dialog ID
|
||||
@@ -548,7 +612,8 @@ enum WMI_HOST_INVITATION_TWT_BTWT_STATUS {
|
||||
WMI_HOST_INVITATION_TWT_BTWT_STATUS_UNKNOWN_ERROR,
|
||||
};
|
||||
|
||||
/** struct wmi_twt_btwt_invite_sta_complete_event_param -
|
||||
/**
|
||||
* struct wmi_twt_btwt_invite_sta_complete_event_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: BTWT dialog ID
|
||||
@@ -561,7 +626,8 @@ struct wmi_twt_btwt_invite_sta_complete_event_param {
|
||||
uint32_t status;
|
||||
};
|
||||
|
||||
/** struct wmi_twt_btwt_remove_sta_cmd_param -
|
||||
/**
|
||||
* struct wmi_twt_btwt_remove_sta_cmd_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: BTWT dialog ID
|
||||
@@ -597,7 +663,8 @@ enum WMI_HOST_KICKOFF_TWT_BTWT_STATUS {
|
||||
WMI_HOST_KICKOFF_TWT_BTWT_STATUS_UNKNOWN_ERROR,
|
||||
};
|
||||
|
||||
/** struct wmi_twt_btwt_remove_sta_complete_event_param -
|
||||
/**
|
||||
* struct wmi_twt_btwt_remove_sta_complete_event_param -
|
||||
* @vdev_id: VDEV identifier
|
||||
* @peer_macaddr: Peer mac address
|
||||
* @dialog_id: BTWT dialog ID
|
||||
|
@@ -14829,6 +14829,8 @@ static void populate_tlv_events_id(uint32_t *event_ids)
|
||||
WMI_TWT_PAUSE_DIALOG_COMPLETE_EVENTID;
|
||||
event_ids[wmi_twt_resume_dialog_complete_event_id] =
|
||||
WMI_TWT_RESUME_DIALOG_COMPLETE_EVENTID;
|
||||
event_ids[wmi_twt_nudge_dialog_complete_event_id] =
|
||||
WMI_TWT_NUDGE_DIALOG_COMPLETE_EVENTID;
|
||||
event_ids[wmi_twt_session_stats_event_id] =
|
||||
WMI_TWT_SESSION_STATS_EVENTID;
|
||||
#endif
|
||||
|
@@ -78,6 +78,17 @@ wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wmi_unified_twt_nudge_dialog_cmd(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_nudge_dialog_cmd_param *params)
|
||||
{
|
||||
if (wmi_handle->ops->send_twt_nudge_dialog_cmd)
|
||||
return wmi_handle->ops->send_twt_nudge_dialog_cmd(
|
||||
wmi_handle, params);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
|
||||
wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_resume_dialog_cmd_param *params)
|
||||
@@ -187,6 +198,18 @@ QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_extract_twt_nudge_dialog_comp_event(
|
||||
wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
struct wmi_twt_nudge_dialog_complete_event_param *params)
|
||||
{
|
||||
if (wmi_handle->ops->extract_twt_nudge_dialog_comp_event)
|
||||
return wmi_handle->ops->extract_twt_nudge_dialog_comp_event(
|
||||
wmi_handle, evt_buf, params);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
|
||||
wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
|
@@ -276,6 +276,43 @@ send_twt_pause_dialog_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
return status;
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
send_twt_nudge_dialog_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_nudge_dialog_cmd_param *params)
|
||||
{
|
||||
wmi_twt_nudge_dialog_cmd_fixed_param *cmd;
|
||||
wmi_buf_t buf;
|
||||
QDF_STATUS status;
|
||||
|
||||
buf = wmi_buf_alloc(wmi_handle, sizeof(*cmd));
|
||||
if (!buf)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
cmd = (wmi_twt_nudge_dialog_cmd_fixed_param *) wmi_buf_data(buf);
|
||||
WMITLV_SET_HDR(&cmd->tlv_header,
|
||||
WMITLV_TAG_STRUC_wmi_twt_nudge_dialog_cmd_fixed_param,
|
||||
WMITLV_GET_STRUCT_TLVLEN
|
||||
(wmi_twt_nudge_dialog_cmd_fixed_param));
|
||||
|
||||
cmd->vdev_id = params->vdev_id;
|
||||
WMI_CHAR_ARRAY_TO_MAC_ADDR(params->peer_macaddr, &cmd->peer_macaddr);
|
||||
cmd->dialog_id = params->dialog_id;
|
||||
cmd->suspend_duration_ms = params->suspend_duration / 1000;
|
||||
cmd->next_twt_size = params->next_twt_size;
|
||||
|
||||
wmi_debug("vdev_id: %d dialog_id: %d duration(in ms): %u next_twt_size: %d "
|
||||
"peer_macaddr: "QDF_MAC_ADDR_FMT, cmd->vdev_id,
|
||||
cmd->dialog_id, cmd->suspend_duration_ms, cmd->next_twt_size,
|
||||
QDF_MAC_ADDR_REF(params->peer_macaddr));
|
||||
|
||||
status = wmi_unified_cmd_send(wmi_handle, buf, sizeof(*cmd),
|
||||
WMI_TWT_NUDGE_DIALOG_CMDID);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
wmi_buf_free(buf);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static QDF_STATUS send_twt_resume_dialog_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
struct wmi_twt_resume_dialog_cmd_param *params)
|
||||
{
|
||||
@@ -570,6 +607,31 @@ static QDF_STATUS extract_twt_del_dialog_comp_event_tlv(
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static enum WMI_HOST_PAUSE_TWT_STATUS
|
||||
wmi_twt_pause_status_to_host_twt_status(WMI_PAUSE_TWT_STATUS_T status)
|
||||
{
|
||||
switch (status) {
|
||||
case WMI_PAUSE_TWT_STATUS_OK:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_OK;
|
||||
case WMI_PAUSE_TWT_STATUS_DIALOG_ID_NOT_EXIST:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_DIALOG_ID_NOT_EXIST;
|
||||
case WMI_PAUSE_TWT_STATUS_INVALID_PARAM:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_INVALID_PARAM;
|
||||
case WMI_PAUSE_TWT_STATUS_DIALOG_ID_BUSY:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_DIALOG_ID_BUSY;
|
||||
case WMI_PAUSE_TWT_STATUS_NO_RESOURCE:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_NO_RESOURCE;
|
||||
case WMI_PAUSE_TWT_STATUS_NO_ACK:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_NO_ACK;
|
||||
case WMI_PAUSE_TWT_STATUS_UNKNOWN_ERROR:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_UNKNOWN_ERROR;
|
||||
case WMI_PAUSE_TWT_STATUS_ALREADY_PAUSED:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_ALREADY_PAUSED;
|
||||
default:
|
||||
return WMI_HOST_PAUSE_TWT_STATUS_UNKNOWN_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
static QDF_STATUS extract_twt_pause_dialog_comp_event_tlv(
|
||||
wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
@@ -588,7 +650,54 @@ static QDF_STATUS extract_twt_pause_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_twt_pause_status_to_host_twt_status(ev->status);
|
||||
params->dialog_id = ev->dialog_id;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static enum WMI_HOST_NUDGE_TWT_STATUS
|
||||
wmi_twt_nudge_status_to_host_twt_status(WMI_TWT_NUDGE_STATUS_T status)
|
||||
{
|
||||
switch (status) {
|
||||
case WMI_NUDGE_TWT_STATUS_OK:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_OK;
|
||||
case WMI_NUDGE_TWT_STATUS_DIALOG_ID_NOT_EXIST:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_NOT_EXIST;
|
||||
case WMI_NUDGE_TWT_STATUS_INVALID_PARAM:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_INVALID_PARAM;
|
||||
case WMI_NUDGE_TWT_STATUS_DIALOG_ID_BUSY:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_DIALOG_ID_BUSY;
|
||||
case WMI_NUDGE_TWT_STATUS_NO_RESOURCE:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_NO_RESOURCE;
|
||||
case WMI_NUDGE_TWT_STATUS_NO_ACK:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_NO_ACK;
|
||||
case WMI_NUDGE_TWT_STATUS_UNKNOWN_ERROR:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR;
|
||||
default:
|
||||
return WMI_HOST_NUDGE_TWT_STATUS_UNKNOWN_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
static QDF_STATUS extract_twt_nudge_dialog_comp_event_tlv(
|
||||
wmi_unified_t wmi_handle,
|
||||
uint8_t *evt_buf,
|
||||
struct wmi_twt_nudge_dialog_complete_event_param *params)
|
||||
{
|
||||
WMI_TWT_NUDGE_DIALOG_COMPLETE_EVENTID_param_tlvs *param_buf;
|
||||
wmi_twt_nudge_dialog_complete_event_fixed_param *ev;
|
||||
|
||||
param_buf = (WMI_TWT_NUDGE_DIALOG_COMPLETE_EVENTID_param_tlvs *)evt_buf;
|
||||
if (!param_buf) {
|
||||
wmi_err("evt_buf is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
ev = param_buf->fixed_param;
|
||||
|
||||
params->vdev_id = ev->vdev_id;
|
||||
WMI_MAC_ADDR_TO_CHAR_ARRAY(&ev->peer_macaddr, params->peer_macaddr);
|
||||
params->status = wmi_twt_nudge_status_to_host_twt_status(ev->status);
|
||||
params->dialog_id = ev->dialog_id;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
@@ -793,6 +902,7 @@ void wmi_twt_attach_tlv(wmi_unified_t wmi_handle)
|
||||
ops->send_twt_add_dialog_cmd = send_twt_add_dialog_cmd_tlv;
|
||||
ops->send_twt_del_dialog_cmd = send_twt_del_dialog_cmd_tlv;
|
||||
ops->send_twt_pause_dialog_cmd = send_twt_pause_dialog_cmd_tlv;
|
||||
ops->send_twt_nudge_dialog_cmd = send_twt_nudge_dialog_cmd_tlv;
|
||||
ops->send_twt_resume_dialog_cmd = send_twt_resume_dialog_cmd_tlv;
|
||||
ops->extract_twt_enable_comp_event = extract_twt_enable_comp_event_tlv;
|
||||
ops->extract_twt_disable_comp_event =
|
||||
@@ -805,6 +915,8 @@ void wmi_twt_attach_tlv(wmi_unified_t wmi_handle)
|
||||
extract_twt_del_dialog_comp_event_tlv;
|
||||
ops->extract_twt_pause_dialog_comp_event =
|
||||
extract_twt_pause_dialog_comp_event_tlv;
|
||||
ops->extract_twt_nudge_dialog_comp_event =
|
||||
extract_twt_nudge_dialog_comp_event_tlv;
|
||||
ops->extract_twt_resume_dialog_comp_event =
|
||||
extract_twt_resume_dialog_comp_event_tlv;
|
||||
ops->extract_twt_session_stats_event =
|
||||
|
Viittaa uudesa ongelmassa
Block a user