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);
|
||||
}
|
||||
|
||||
#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
|
||||
|
@@ -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
|
||||
|
@@ -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))
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
};
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user