diff --git a/wmi/inc/wmi_unified_twt_param.h b/wmi/inc/wmi_unified_twt_param.h index 37e2855b6c..a2eac5b34f 100644 --- a/wmi/inc/wmi_unified_twt_param.h +++ b/wmi/inc/wmi_unified_twt_param.h @@ -285,6 +285,7 @@ enum WMI_HOST_TWT_COMMAND { * @flag_reserved: unused bits * @b_twt_recommendation: defines types of frames tx during bTWT SP * @b_twt_persistence: Countdown VAL frames to param update/teardown + * @wake_time_tsf: Absolute TSF value to start first TWT service period */ struct wmi_twt_add_dialog_param { uint32_t vdev_id; @@ -308,6 +309,7 @@ struct wmi_twt_add_dialog_param { flag_reserved:11, b_twt_persistence:8, b_twt_recommendation:3; + uint64_t wake_time_tsf; }; /* enum - status code of Get stats TWT dialog diff --git a/wmi/src/wmi_unified_twt_tlv.c b/wmi/src/wmi_unified_twt_tlv.c index 472896ccd3..74a2abbd56 100644 --- a/wmi/src/wmi_unified_twt_tlv.c +++ b/wmi/src/wmi_unified_twt_tlv.c @@ -175,6 +175,8 @@ send_twt_add_dialog_cmd_tlv(wmi_unified_t wmi_handle, cmd->max_wake_intvl_us = params->max_wake_intvl_us; cmd->min_wake_dura_us = params->min_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_hi = (uint32_t)(params->wake_time_tsf >> 32); TWT_FLAGS_SET_CMD(cmd->flags, params->twt_cmd); TWT_FLAGS_SET_BROADCAST(cmd->flags, params->flag_bcast); TWT_FLAGS_SET_TRIGGER(cmd->flags, params->flag_trigger);