qcacmn: Use PPDU duration to find end time stamp
Use the PPDU duration given by FW to find the end time stamp of management frames. CRs-Fixed: 3181500 Change-Id: Ibabe82c8e2d3cd7e494e764a9a2baeded89a7300
This commit is contained in:

committed by
Madan Koyyalamudi

parent
f1373c7ace
commit
1c9f82f0ec
@@ -685,6 +685,52 @@ mgmt_rx_reo_get_global_ts(struct mgmt_rx_event_params *rx_params)
|
||||
return rx_params->reo_params->global_timestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* mgmt_rx_reo_get_start_ts() - Helper API to get start time stamp of the frame
|
||||
* @rx_params: Management rx event params
|
||||
*
|
||||
* Return: start time stamp of the frame
|
||||
*/
|
||||
static inline uint32_t
|
||||
mgmt_rx_reo_get_start_ts(struct mgmt_rx_event_params *rx_params)
|
||||
{
|
||||
qdf_assert_always(rx_params);
|
||||
qdf_assert_always(rx_params->reo_params);
|
||||
|
||||
return rx_params->reo_params->start_timestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* mgmt_rx_reo_get_end_ts() - Helper API to get end time stamp of the frame
|
||||
* @rx_params: Management rx event params
|
||||
*
|
||||
* Return: end time stamp of the frame
|
||||
*/
|
||||
static inline uint32_t
|
||||
mgmt_rx_reo_get_end_ts(struct mgmt_rx_event_params *rx_params)
|
||||
{
|
||||
qdf_assert_always(rx_params);
|
||||
qdf_assert_always(rx_params->reo_params);
|
||||
|
||||
return rx_params->reo_params->end_timestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* mgmt_rx_reo_get_duration_us() - Helper API to get the duration of the frame
|
||||
* in us
|
||||
* @rx_params: Management rx event params
|
||||
*
|
||||
* Return: Duration of the frame in us
|
||||
*/
|
||||
static inline uint32_t
|
||||
mgmt_rx_reo_get_duration_us(struct mgmt_rx_event_params *rx_params)
|
||||
{
|
||||
qdf_assert_always(rx_params);
|
||||
qdf_assert_always(rx_params->reo_params);
|
||||
|
||||
return rx_params->reo_params->duration_us;
|
||||
}
|
||||
|
||||
/**
|
||||
* mgmt_rx_reo_get_pkt_counter() - Helper API to get packet counter
|
||||
* corresponding to the mgmt rx event
|
||||
|
@@ -100,6 +100,9 @@ struct mgmt_rx_reo_shared_snapshot {
|
||||
* @link_id: link ID for which FW consumed event is received
|
||||
* @mgmt_pkt_ctr: MGMT packet counter of the frame that is consumed
|
||||
* @global_timestamp: Global timestamp of the frame that is consumed
|
||||
* @duration_us: duration in us
|
||||
* @start_timestamp: start time stamp
|
||||
* @end_timestamp: end time stamp
|
||||
*/
|
||||
struct mgmt_rx_reo_params {
|
||||
bool valid;
|
||||
@@ -107,6 +110,9 @@ struct mgmt_rx_reo_params {
|
||||
uint8_t link_id;
|
||||
uint16_t mgmt_pkt_ctr;
|
||||
uint32_t global_timestamp;
|
||||
uint16_t duration_us;
|
||||
uint32_t start_timestamp;
|
||||
uint32_t end_timestamp;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@@ -11499,6 +11499,10 @@ extract_mgmt_rx_fw_consumed_tlv(wmi_unified_t wmi_handle,
|
||||
params->global_timestamp = ev_hdr->global_timestamp;
|
||||
params->mgmt_pkt_ctr = WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_GET(
|
||||
ev_hdr->mgmt_pkt_ctr_info);
|
||||
params->duration_us = ev_hdr->rx_ppdu_duration_us;
|
||||
params->start_timestamp = params->global_timestamp;
|
||||
params->end_timestamp = params->start_timestamp +
|
||||
params->duration_us;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -11550,6 +11554,10 @@ static QDF_STATUS extract_mgmt_rx_reo_params_tlv(wmi_unified_t wmi_handle,
|
||||
reo_params->global_timestamp = reo_params_tlv->global_timestamp;
|
||||
reo_params->mgmt_pkt_ctr = WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_GET(
|
||||
reo_params_tlv->mgmt_pkt_ctr_link_info);
|
||||
reo_params->duration_us = reo_params_tlv->rx_ppdu_duration_us;
|
||||
reo_params->start_timestamp = reo_params->global_timestamp;
|
||||
reo_params->end_timestamp = reo_params->start_timestamp +
|
||||
reo_params->duration_us;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
Reference in New Issue
Block a user