qcacmn: Support HW Tx delay stat
Use WLAN_CONFIG_TX_DELAY to enable HW Tx delay for both SAWF and non-SAWF stats. Change-Id: I6db7d386c0e3654f53398dcba1db7c5568544b0c CRs-Fixed: 3262425
This commit is contained in:

committed by
Madan Koyyalamudi

parent
b98780527f
commit
28f25ca052
@@ -1251,7 +1251,7 @@ void cdp_txrx_peer_flush_frags(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
|||||||
peer_mac);
|
peer_mac);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
/**
|
/**
|
||||||
* cdp_set_delta_tsf() - wrapper function to set delta_tsf
|
* cdp_set_delta_tsf() - wrapper function to set delta_tsf
|
||||||
* @soc: SOC TXRX handle
|
* @soc: SOC TXRX handle
|
||||||
|
@@ -898,7 +898,7 @@ struct cdp_ctrl_ops {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
void (*txrx_set_delta_tsf)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
void (*txrx_set_delta_tsf)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
uint32_t delta_tsf);
|
uint32_t delta_tsf);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1180,7 +1180,7 @@ uint32_t dp_tx_comp_nf_handler(struct dp_intr *int_ctx, struct dp_soc *soc,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP) && \
|
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP) && \
|
||||||
defined(CONFIG_SAWF)
|
defined(WLAN_CONFIG_TX_DELAY)
|
||||||
#define PPDUID_GET_HW_LINK_ID(PPDU_ID, LINK_ID_OFFSET, LINK_ID_BITS) \
|
#define PPDUID_GET_HW_LINK_ID(PPDU_ID, LINK_ID_OFFSET, LINK_ID_BITS) \
|
||||||
(((PPDU_ID) >> (LINK_ID_OFFSET)) & ((1 << (LINK_ID_BITS)) - 1))
|
(((PPDU_ID) >> (LINK_ID_OFFSET)) & ((1 << (LINK_ID_BITS)) - 1))
|
||||||
|
|
||||||
|
@@ -13211,7 +13211,7 @@ static struct cdp_ctrl_ops dp_ops_ctrl = {
|
|||||||
#ifdef QCA_MULTIPASS_SUPPORT
|
#ifdef QCA_MULTIPASS_SUPPORT
|
||||||
.txrx_peer_set_vlan_id = dp_peer_set_vlan_id,
|
.txrx_peer_set_vlan_id = dp_peer_set_vlan_id,
|
||||||
#endif /*QCA_MULTIPASS_SUPPORT*/
|
#endif /*QCA_MULTIPASS_SUPPORT*/
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
.txrx_set_delta_tsf = dp_set_delta_tsf,
|
.txrx_set_delta_tsf = dp_set_delta_tsf,
|
||||||
#endif
|
#endif
|
||||||
#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY
|
#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY
|
||||||
|
@@ -4750,7 +4750,7 @@ void dp_tx_update_connectivity_stats(struct dp_soc *soc,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
dp_tx_compute_hw_delay_us(struct hal_tx_completion_status *ts,
|
dp_tx_compute_hw_delay_us(struct hal_tx_completion_status *ts,
|
||||||
uint32_t delta_tsf,
|
uint32_t delta_tsf,
|
||||||
|
@@ -922,7 +922,7 @@ dp_tx_hw_desc_update_evt(uint8_t *hal_tx_desc_cached,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
/**
|
/**
|
||||||
* dp_tx_compute_hw_delay_us() - Compute hardware Tx completion delay
|
* dp_tx_compute_hw_delay_us() - Compute hardware Tx completion delay
|
||||||
* @ts: Tx completion status
|
* @ts: Tx completion status
|
||||||
|
@@ -3367,7 +3367,7 @@ struct dp_vdev {
|
|||||||
#ifdef WIFI_MONITOR_SUPPORT
|
#ifdef WIFI_MONITOR_SUPPORT
|
||||||
struct dp_mon_vdev *monitor_vdev;
|
struct dp_mon_vdev *monitor_vdev;
|
||||||
#endif
|
#endif
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
/* Delta between TQM clock and TSF clock */
|
/* Delta between TQM clock and TSF clock */
|
||||||
uint32_t delta_tsf;
|
uint32_t delta_tsf;
|
||||||
#endif
|
#endif
|
||||||
|
@@ -340,6 +340,26 @@ void dp_tx_clear_consumed_hw_descs(struct dp_soc *soc,
|
|||||||
}
|
}
|
||||||
#endif /* CLEAR_SW2TCL_CONSUMED_DESC */
|
#endif /* CLEAR_SW2TCL_CONSUMED_DESC */
|
||||||
|
|
||||||
|
#ifdef WLAN_CONFIG_TX_DELAY
|
||||||
|
static inline
|
||||||
|
QDF_STATUS dp_tx_compute_hw_delay_li(struct dp_soc *soc,
|
||||||
|
struct dp_vdev *vdev,
|
||||||
|
struct hal_tx_completion_status *ts,
|
||||||
|
uint32_t *delay_us)
|
||||||
|
{
|
||||||
|
return dp_tx_compute_hw_delay_us(ts, vdev->delta_tsf, delay_us);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline
|
||||||
|
QDF_STATUS dp_tx_compute_hw_delay_li(struct dp_soc *soc,
|
||||||
|
struct dp_vdev *vdev,
|
||||||
|
struct hal_tx_completion_status *ts,
|
||||||
|
uint32_t *delay_us)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SAWF
|
#ifdef CONFIG_SAWF
|
||||||
/**
|
/**
|
||||||
* dp_sawf_config_li - Configure sawf specific fields in tcl
|
* dp_sawf_config_li - Configure sawf specific fields in tcl
|
||||||
@@ -376,15 +396,6 @@ void dp_sawf_config_li(struct dp_soc *soc, uint32_t *hal_tx_desc_cached,
|
|||||||
hal_tx_desc_set_search_index_li(soc->hal_soc, hal_tx_desc_cached,
|
hal_tx_desc_set_search_index_li(soc->hal_soc, hal_tx_desc_cached,
|
||||||
search_index);
|
search_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
|
||||||
QDF_STATUS dp_tx_compute_hw_delay_li(struct dp_soc *soc,
|
|
||||||
struct dp_vdev *vdev,
|
|
||||||
struct hal_tx_completion_status *ts,
|
|
||||||
uint32_t *delay_us)
|
|
||||||
{
|
|
||||||
return dp_tx_compute_hw_delay_us(ts, vdev->delta_tsf, delay_us);
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
void dp_sawf_config_li(struct dp_soc *soc, uint32_t *hal_tx_desc_cached,
|
void dp_sawf_config_li(struct dp_soc *soc, uint32_t *hal_tx_desc_cached,
|
||||||
@@ -393,15 +404,6 @@ void dp_sawf_config_li(struct dp_soc *soc, uint32_t *hal_tx_desc_cached,
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
|
||||||
QDF_STATUS dp_tx_compute_hw_delay_li(struct dp_soc *soc,
|
|
||||||
struct dp_vdev *vdev,
|
|
||||||
struct hal_tx_completion_status *ts,
|
|
||||||
uint32_t *delay_us)
|
|
||||||
{
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define dp_sawf_tx_enqueue_peer_stats(soc, tx_desc)
|
#define dp_sawf_tx_enqueue_peer_stats(soc, tx_desc)
|
||||||
#define dp_sawf_tx_enqueue_fail_peer_stats(soc, tx_desc)
|
#define dp_sawf_tx_enqueue_fail_peer_stats(soc, tx_desc)
|
||||||
#endif
|
#endif
|
||||||
|
@@ -32,7 +32,7 @@
|
|||||||
*/
|
*/
|
||||||
#define SHOW_DEFINED(x) do {} while (0)
|
#define SHOW_DEFINED(x) do {} while (0)
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
static inline void
|
static inline void
|
||||||
hal_tx_comp_get_buffer_timestamp_be(void *desc,
|
hal_tx_comp_get_buffer_timestamp_be(void *desc,
|
||||||
struct hal_tx_completion_status *ts)
|
struct hal_tx_completion_status *ts)
|
||||||
@@ -40,7 +40,7 @@ hal_tx_comp_get_buffer_timestamp_be(void *desc,
|
|||||||
ts->buffer_timestamp = HAL_TX_DESC_GET(desc, WBM2SW_COMPLETION_RING_TX,
|
ts->buffer_timestamp = HAL_TX_DESC_GET(desc, WBM2SW_COMPLETION_RING_TX,
|
||||||
BUFFER_TIMESTAMP);
|
BUFFER_TIMESTAMP);
|
||||||
}
|
}
|
||||||
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || CONFIG_SAWF */
|
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || WLAN_CONFIG_TX_DELAY */
|
||||||
static inline void
|
static inline void
|
||||||
hal_tx_comp_get_buffer_timestamp_be(void *desc,
|
hal_tx_comp_get_buffer_timestamp_be(void *desc,
|
||||||
struct hal_tx_completion_status *ts)
|
struct hal_tx_completion_status *ts)
|
||||||
|
@@ -233,7 +233,7 @@ struct hal_tx_completion_status {
|
|||||||
uint8_t transmit_cnt;
|
uint8_t transmit_cnt;
|
||||||
uint8_t tid;
|
uint8_t tid;
|
||||||
uint16_t peer_id;
|
uint16_t peer_id;
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
uint32_t buffer_timestamp:19;
|
uint32_t buffer_timestamp:19;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@@ -69,7 +69,7 @@ void hal_rx_wbm_err_info_get_generic_li(void *wbm_desc,
|
|||||||
wbm_er_info->rxdma_err_code = HAL_RX_WBM_RXDMA_ERROR_CODE_GET(wbm_desc);
|
wbm_er_info->rxdma_err_code = HAL_RX_WBM_RXDMA_ERROR_CODE_GET(wbm_desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(CONFIG_SAWF)
|
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(WLAN_CONFIG_TX_DELAY)
|
||||||
static inline void
|
static inline void
|
||||||
hal_tx_comp_get_buffer_timestamp_li(void *desc,
|
hal_tx_comp_get_buffer_timestamp_li(void *desc,
|
||||||
struct hal_tx_completion_status *ts)
|
struct hal_tx_completion_status *ts)
|
||||||
@@ -77,13 +77,13 @@ hal_tx_comp_get_buffer_timestamp_li(void *desc,
|
|||||||
ts->buffer_timestamp = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_4,
|
ts->buffer_timestamp = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_4,
|
||||||
BUFFER_TIMESTAMP);
|
BUFFER_TIMESTAMP);
|
||||||
}
|
}
|
||||||
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || CONFIG_SAWF */
|
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || WLAN_CONFIG_TX_DELAY */
|
||||||
static inline void
|
static inline void
|
||||||
hal_tx_comp_get_buffer_timestamp_li(void *desc,
|
hal_tx_comp_get_buffer_timestamp_li(void *desc,
|
||||||
struct hal_tx_completion_status *ts)
|
struct hal_tx_completion_status *ts)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif /* WLAN_FEATURE_TSF_UPLINK_DELAY || CONFIG_SAWF */
|
#endif /* WLAN_FEATURE_TSF_UPLINK_DELAY || WLAN_CONFIG_TX_DELAY */
|
||||||
|
|
||||||
#ifdef QCA_UNDECODED_METADATA_SUPPORT
|
#ifdef QCA_UNDECODED_METADATA_SUPPORT
|
||||||
static inline void
|
static inline void
|
||||||
|
Reference in New Issue
Block a user