Просмотр исходного кода

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
Nirav Shah 4 лет назад
Родитель
Сommit
47c8c541c2
2 измененных файлов с 4 добавлено и 0 удалено
  1. 2 0
      wmi/inc/wmi_unified_twt_param.h
  2. 2 0
      wmi/src/wmi_unified_twt_tlv.c

+ 2 - 0
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

+ 2 - 0
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);