qcacmn: Handle all params of TSF action cmd
Extract all the parameter provided as a response from the firmware for the TSF action command. This could be used to calculate the difference between the TSF and TQM clocks CRs-Fixed: 3136492 Change-Id: I8377bd177f5ea246c9b7939315509ab0b6f2051c
This commit is contained in:
@@ -4584,10 +4584,30 @@ struct ftm_time_sync_offset {
|
|||||||
* struct wmi_host_tsf_event_- Get tsf event info
|
* struct wmi_host_tsf_event_- Get tsf event info
|
||||||
* @vdev_id: vdev id
|
* @vdev_id: vdev id
|
||||||
* @tsf: tsf
|
* @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 {
|
struct wmi_host_tsf_event {
|
||||||
uint32_t vdev_id;
|
uint32_t vdev_id;
|
||||||
uint64_t tsf;
|
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
|
#define WMI_EVENT_ID_INVALID 0
|
||||||
|
@@ -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_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param,
|
||||||
WMITLV_GET_STRUCT_TLVLEN(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->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);
|
wmi_mtrace(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID, cmd->vdev_id, 0);
|
||||||
if (wmi_unified_cmd_send(wmi, buf, len,
|
if (wmi_unified_cmd_send(wmi, buf, len,
|
||||||
WMI_VDEV_TSF_TSTAMP_ACTION_CMDID)) {
|
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;
|
evt = param_buf->fixed_param;
|
||||||
param->tsf = ((uint64_t)(evt->tsf_high) << 32) | evt->tsf_low;
|
|
||||||
param->vdev_id = evt->vdev_id;
|
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;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user