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:
Ripan Deuri
2022-08-04 23:57:19 +05:30
committad av Madan Koyyalamudi
förälder b98780527f
incheckning 28f25ca052
11 ändrade filer med 33 tillägg och 31 borttagningar

Visa fil

@@ -1251,7 +1251,7 @@ void cdp_txrx_peer_flush_frags(ol_txrx_soc_handle soc, uint8_t vdev_id,
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
* @soc: SOC TXRX handle

Visa fil

@@ -898,7 +898,7 @@ struct cdp_ctrl_ops {
#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,
uint32_t delta_tsf);
#endif

Visa fil

@@ -1180,7 +1180,7 @@ uint32_t dp_tx_comp_nf_handler(struct dp_intr *int_ctx, struct dp_soc *soc,
#endif
#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) \
(((PPDU_ID) >> (LINK_ID_OFFSET)) & ((1 << (LINK_ID_BITS)) - 1))

Visa fil

@@ -13211,7 +13211,7 @@ static struct cdp_ctrl_ops dp_ops_ctrl = {
#ifdef QCA_MULTIPASS_SUPPORT
.txrx_peer_set_vlan_id = dp_peer_set_vlan_id,
#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,
#endif
#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY

Visa fil

@@ -4750,7 +4750,7 @@ void dp_tx_update_connectivity_stats(struct dp_soc *soc,
}
#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
dp_tx_compute_hw_delay_us(struct hal_tx_completion_status *ts,
uint32_t delta_tsf,

Visa fil

@@ -922,7 +922,7 @@ dp_tx_hw_desc_update_evt(uint8_t *hal_tx_desc_cached,
}
#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
* @ts: Tx completion status

Visa fil

@@ -3367,7 +3367,7 @@ struct dp_vdev {
#ifdef WIFI_MONITOR_SUPPORT
struct dp_mon_vdev *monitor_vdev;
#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 */
uint32_t delta_tsf;
#endif

Visa fil

@@ -340,6 +340,26 @@ void dp_tx_clear_consumed_hw_descs(struct dp_soc *soc,
}
#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
/**
* 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,
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
static inline
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_fail_peer_stats(soc, tx_desc)
#endif

Visa fil

@@ -32,7 +32,7 @@
*/
#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
hal_tx_comp_get_buffer_timestamp_be(void *desc,
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,
BUFFER_TIMESTAMP);
}
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || CONFIG_SAWF */
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || WLAN_CONFIG_TX_DELAY */
static inline void
hal_tx_comp_get_buffer_timestamp_be(void *desc,
struct hal_tx_completion_status *ts)

Visa fil

@@ -233,7 +233,7 @@ struct hal_tx_completion_status {
uint8_t transmit_cnt;
uint8_t tid;
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;
#endif
};

Visa fil

@@ -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);
}
#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
hal_tx_comp_get_buffer_timestamp_li(void *desc,
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,
BUFFER_TIMESTAMP);
}
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || CONFIG_SAWF */
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || WLAN_CONFIG_TX_DELAY */
static inline void
hal_tx_comp_get_buffer_timestamp_li(void *desc,
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
static inline void