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:
Jyoti Kumari
2021-06-21 21:25:47 +05:30
committed by Madan Koyyalamudi
parent 04f9725d81
commit fc3c62d771
7 changed files with 135 additions and 1 deletions

View File

@@ -341,4 +341,18 @@ QDF_STATUS wmi_extract_twt_cap_service_ready_ext2(
uint8_t *evt_buf,
struct wmi_twt_cap_bitmap_params *params);
/**
* wmi_extract_twt_ack_comp_event() - Extract WMI event params for TWT ack 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_ack_comp_event(
wmi_unified_t wmi_handle,
uint8_t *evt_buf,
struct wmi_twt_ack_complete_event_param *param);
#endif /* _WMI_UNIFIED_TWT_API_H_ */