qcacmn: Handle announce timeout value in TWT setup command

Handle announce timeout value that is received as a part of
the TWT setup command and provides it to the firmware through
the WMI_TWT_ADD_DIALOG_CMDID. If timeout value is non-zero
then firmware waits up to timeout value to use data frame as
announcement frame. If timeout value is 0 then firmware sends
explicit QoS NULL frame as announcement frame on SP start.

Change-Id: I682d1dc4e304042e4e9b8d6c6a73dc13fbbdccab
CRs-Fixed: 3053956
This commit is contained in:
Gaurav Sharma
2021-10-05 10:21:41 +05:30
committed by Madan Koyyalamudi
parent 5026c5a3d3
commit 0be0d71e91
2 changed files with 3 additions and 0 deletions

View File

@@ -286,6 +286,7 @@ enum WMI_HOST_TWT_COMMAND {
* @b_twt_recommendation: defines types of frames tx during bTWT SP * @b_twt_recommendation: defines types of frames tx during bTWT SP
* @b_twt_persistence: Countdown VAL frames to param update/teardown * @b_twt_persistence: Countdown VAL frames to param update/teardown
* @wake_time_tsf: Absolute TSF value to start first TWT service period * @wake_time_tsf: Absolute TSF value to start first TWT service period
* @annouce_timeout_us: Timeout value before sending QoS NULL frame.
*/ */
struct wmi_twt_add_dialog_param { struct wmi_twt_add_dialog_param {
uint32_t vdev_id; uint32_t vdev_id;
@@ -310,6 +311,7 @@ struct wmi_twt_add_dialog_param {
b_twt_persistence:8, b_twt_persistence:8,
b_twt_recommendation:3; b_twt_recommendation:3;
uint64_t wake_time_tsf; uint64_t wake_time_tsf;
uint32_t announce_timeout_us;
}; };
/* enum - status code of Get stats TWT dialog /* enum - status code of Get stats TWT dialog

View File

@@ -177,6 +177,7 @@ send_twt_add_dialog_cmd_tlv(wmi_unified_t wmi_handle,
cmd->max_wake_dura_us = params->max_wake_dura_us; cmd->max_wake_dura_us = params->max_wake_dura_us;
cmd->sp_start_tsf_lo = (uint32_t)(params->wake_time_tsf & 0xFFFFFFFF); cmd->sp_start_tsf_lo = (uint32_t)(params->wake_time_tsf & 0xFFFFFFFF);
cmd->sp_start_tsf_hi = (uint32_t)(params->wake_time_tsf >> 32); cmd->sp_start_tsf_hi = (uint32_t)(params->wake_time_tsf >> 32);
cmd->announce_timeout_us = params->announce_timeout_us;
TWT_FLAGS_SET_CMD(cmd->flags, params->twt_cmd); TWT_FLAGS_SET_CMD(cmd->flags, params->twt_cmd);
TWT_FLAGS_SET_BROADCAST(cmd->flags, params->flag_bcast); TWT_FLAGS_SET_BROADCAST(cmd->flags, params->flag_bcast);
TWT_FLAGS_SET_TRIGGER(cmd->flags, params->flag_trigger); TWT_FLAGS_SET_TRIGGER(cmd->flags, params->flag_trigger);