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
此提交包含在:
@@ -685,6 +685,52 @@ mgmt_rx_reo_get_global_ts(struct mgmt_rx_event_params *rx_params)
|
|||||||
return rx_params->reo_params->global_timestamp;
|
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
|
* mgmt_rx_reo_get_pkt_counter() - Helper API to get packet counter
|
||||||
* corresponding to the mgmt rx event
|
* 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
|
* @link_id: link ID for which FW consumed event is received
|
||||||
* @mgmt_pkt_ctr: MGMT packet counter of the frame that is consumed
|
* @mgmt_pkt_ctr: MGMT packet counter of the frame that is consumed
|
||||||
* @global_timestamp: Global timestamp 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 {
|
struct mgmt_rx_reo_params {
|
||||||
bool valid;
|
bool valid;
|
||||||
@@ -107,6 +110,9 @@ struct mgmt_rx_reo_params {
|
|||||||
uint8_t link_id;
|
uint8_t link_id;
|
||||||
uint16_t mgmt_pkt_ctr;
|
uint16_t mgmt_pkt_ctr;
|
||||||
uint32_t global_timestamp;
|
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->global_timestamp = ev_hdr->global_timestamp;
|
||||||
params->mgmt_pkt_ctr = WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_GET(
|
params->mgmt_pkt_ctr = WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_GET(
|
||||||
ev_hdr->mgmt_pkt_ctr_info);
|
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;
|
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->global_timestamp = reo_params_tlv->global_timestamp;
|
||||||
reo_params->mgmt_pkt_ctr = WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_GET(
|
reo_params->mgmt_pkt_ctr = WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_GET(
|
||||||
reo_params_tlv->mgmt_pkt_ctr_link_info);
|
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;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
新增問題並參考
封鎖使用者