From 47c8c541c2d958ef43f9aa7dff4c3e18e71bf1be Mon Sep 17 00:00:00 2001 From: Nirav Shah Date: Mon, 5 Jul 2021 08:49:47 +0530 Subject: [PATCH] qcacmn: Handle TSF value in TWT setup command Handle QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_TIME_TSF attribute in TWT setup command to provide absolute TSF value to firmware. This helps application to start TWT session on specific TSF value. Change-Id: Ic25b45e88599a024e6c4e6bb265ea90122405d05 CRs-Fixed: 3029020 --- wmi/inc/wmi_unified_twt_param.h | 2 ++ wmi/src/wmi_unified_twt_tlv.c | 2 ++ 2 files changed, 4 insertions(+) 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);