qcacmn: Add support for TWT ack event
In case if TWT command (i.e setup, terminate, pause, resume, nudge) comes from userspace and if the firmware is in below mode 1. scan in progress 2. roam in progress 3. CSA is in progress or 4. Any other error then the command needs to be rejected in userspace context. Synchronize the TWT command so that whenever command goes from driver to firmware, then driver will receive ack event first followed by respective event (i.e add dialog, delete dialog, pause, resume, nudge) with below condition 1. If driver receives the ack event as successful then driver waits for this ack event, respective event with status of the TWT action frame over the air is expected. 2. If driver receives the ack event as failure then it will rejects the TWT command in userspace context. Change-Id: Ie885d98ecf2dad98d34676d889fd70e4c84f0a05 CRs-Fixed: 2987904
This commit is contained in:

committed by
Madan Koyyalamudi

parent
04f9725d81
commit
fc3c62d771
@@ -161,6 +161,22 @@ struct wmi_twt_disable_complete_event {
|
||||
uint32_t pdev_id;
|
||||
};
|
||||
|
||||
/**
|
||||
* wmi_twt_ack_complete_event_param:
|
||||
* @vdev_id: vdev id
|
||||
* @peer_macaddr: peer mac address
|
||||
* @dialog_id: dialog id
|
||||
* @twt_cmd_ack: ack event to the corresponding twt command
|
||||
* @status: twt command status
|
||||
*/
|
||||
struct wmi_twt_ack_complete_event_param {
|
||||
uint32_t vdev_id;
|
||||
struct qdf_mac_addr peer_macaddr;
|
||||
uint32_t dialog_id;
|
||||
uint32_t twt_cmd_ack;
|
||||
uint32_t status;
|
||||
};
|
||||
|
||||
/* TWT event types
|
||||
* refer to wmi_unified.h enum wmi_twt_session_stats_type
|
||||
*/
|
||||
@@ -762,4 +778,21 @@ struct wmi_twt_btwt_remove_sta_complete_event_param {
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* enum WMI_HOST_TWT_CMD_FOR_ACK_EVENT - Ack event for different TWT command
|
||||
* WMI_HOST_TWT_ADD_DIALOG_CMDID: Ack event for add dialog command
|
||||
* WMI_HOST_TWT_DEL_DIALOG_CMDID: Ack event for delete dialog command
|
||||
* WMI_HOST_TWT_PAUSE_DIALOG_CMDID: Ack event for pause command
|
||||
* WMI_HOST_TWT_RESUME_DIALOG_CMDID: Ack event for resume command
|
||||
* WMI_HOST_TWT_NUDGE_DIALOG_CMDID: Ack event for nudge command
|
||||
* WMI_HOST_TWT_UNKNOWN_CMDID: Ack event for unknown TWT command
|
||||
*/
|
||||
enum WMI_HOST_TWT_CMD_FOR_ACK_EVENT {
|
||||
WMI_HOST_TWT_ADD_DIALOG_CMDID = 0,
|
||||
WMI_HOST_TWT_DEL_DIALOG_CMDID,
|
||||
WMI_HOST_TWT_PAUSE_DIALOG_CMDID,
|
||||
WMI_HOST_TWT_RESUME_DIALOG_CMDID,
|
||||
WMI_HOST_TWT_NUDGE_DIALOG_CMDID,
|
||||
WMI_HOST_TWT_UNKNOWN_CMDID,
|
||||
};
|
||||
#endif /* _WMI_UNIFIED_TWT_PARAM_H_ */
|
||||
|
Reference in New Issue
Block a user