diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index e4a3e4180e..0f039ea220 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -4584,10 +4584,30 @@ struct ftm_time_sync_offset { * struct wmi_host_tsf_event_- Get tsf event info * @vdev_id: vdev id * @tsf: tsf + * @tsf_low: low 32bit of tsf + * @tsf_high: high 32 bit of tsf + * @qtimer_low: low 32 bits of qtimer + * @qtimer_high: high 32 bits of qtimer + * @tsf_id: TSF ID for the current vdev + * @tsf_id_valid: is TSF valid + * @mac_id: MAC identifier + * @mac_id_valid: is MAC id valid + * @wlan_global_tsf_low: low 32 bits of wlan global tsf + * @wlan_global_tsf_high: high 32 bits of wlan global tsf */ struct wmi_host_tsf_event { uint32_t vdev_id; uint64_t tsf; + uint32_t tsf_low; + uint32_t tsf_high; + uint32_t qtimer_low; + uint32_t qtimer_high; + uint32_t tsf_id; + uint32_t tsf_id_valid; + uint32_t mac_id; + uint32_t mac_id_valid; + uint32_t wlan_global_tsf_low; + uint32_t wlan_global_tsf_high; }; #define WMI_EVENT_ID_INVALID 0 diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 53fa288213..87821b8fba 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -16583,7 +16583,7 @@ send_vdev_tsf_tstamp_action_cmd_tlv(wmi_unified_t wmi, uint8_t vdev_id) WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param, WMITLV_GET_STRUCT_TLVLEN(wmi_vdev_tsf_tstamp_action_cmd_fixed_param)); cmd->vdev_id = vdev_id; - cmd->tsf_action = TSF_TSTAMP_READ_VALUE; + cmd->tsf_action = TSF_TSTAMP_QTIMER_CAPTURE_REQ; wmi_mtrace(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID, cmd->vdev_id, 0); if (wmi_unified_cmd_send(wmi, buf, len, WMI_VDEV_TSF_TSTAMP_ACTION_CMDID)) { @@ -16618,8 +16618,18 @@ extract_vdev_tsf_report_event_tlv(wmi_unified_t wmi_handle, void *evt_buf, } evt = param_buf->fixed_param; - param->tsf = ((uint64_t)(evt->tsf_high) << 32) | evt->tsf_low; param->vdev_id = evt->vdev_id; + param->tsf = ((uint64_t)(evt->tsf_high) << 32) | evt->tsf_low; + param->tsf_low = evt->tsf_low; + param->tsf_high = evt->tsf_high; + param->qtimer_low = evt->qtimer_low; + param->qtimer_high = evt->qtimer_high; + param->tsf_id = evt->tsf_id; + param->tsf_id_valid = evt->tsf_id_valid; + param->mac_id = evt->mac_id; + param->mac_id_valid = evt->mac_id_valid; + param->wlan_global_tsf_low = evt->wlan_global_tsf_low; + param->wlan_global_tsf_high = evt->wlan_global_tsf_high; return QDF_STATUS_SUCCESS; }