qcacmn: invoke hal api to populate word mask

Added hal api to populate word mask

Change-Id: Ic13fdb1fa4104618d67f3f7aae25681951d78581
CRs-Fixed: 3422903
This commit is contained in:
Nobel Sharanyan Jeganathan
2023-03-01 07:08:28 -08:00
committed by Madan Koyyalamudi
parent 6d70bfb469
commit 799d46a277
6 changed files with 62 additions and 30 deletions

View File

@@ -1170,6 +1170,10 @@ int htt_h2t_tx_ring_cfg(struct htt_soc *htt_soc, int pdev_id,
if (htt_tlv_filter->data_msdu_end)
HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_SET(*msg_word, 1);
if (htt_tlv_filter->compaction_enable)
HTT_TX_MONITOR_CFG_WORD_MASK_COMPACTION_ENABLE_SET(*msg_word,
1);
/* word 3 */
msg_word++;
*msg_word = 0;
@@ -1439,8 +1443,27 @@ void dp_tx_mon_filter_set_all(struct dp_mon_pdev_be *mon_pdev_be,
void dp_tx_mon_filter_set_word_mask(struct dp_pdev *pdev,
struct htt_tx_ring_tlv_filter *filter)
{
/* invoke hal api to get the word mask */
hal_txmon_word_mask_config_t word_mask = {0};
bool status = false;
status = hal_txmon_get_word_mask(pdev->soc->hal_soc, &word_mask);
if (status) {
filter->wmask.pcu_ppdu_setup_init =
word_mask.pcu_ppdu_setup_init;
filter->wmask.tx_peer_entry = word_mask.tx_peer_entry;
filter->wmask.tx_queue_ext = word_mask.tx_queue_ext;
filter->wmask.tx_fes_status_end = word_mask.tx_fes_status_end;
filter->wmask.response_end_status =
word_mask.response_end_status;
filter->wmask.tx_fes_status_prot = word_mask.tx_fes_status_prot;
filter->wmask.tx_fes_setup = word_mask.tx_fes_setup;
filter->wmask.tx_msdu_start = word_mask.tx_msdu_start;
filter->wmask.tx_mpdu_start = word_mask.tx_mpdu_start;
filter->wmask.rxpcu_user_setup = word_mask.rxpcu_user_setup;
filter->compaction_enable = word_mask.compaction_enable;
} else {
filter->wmask.pcu_ppdu_setup_init = 0xFFFFFFFF;
filter->wmask.tx_peer_entry = 0xFFFF;
filter->wmask.tx_queue_ext = 0xFFFF;
@@ -1455,6 +1478,7 @@ void dp_tx_mon_filter_set_word_mask(struct dp_pdev *pdev,
/* compaction is disable */
filter->compaction_enable = 0;
}
}
void dp_mon_filter_setup_tx_mon_mode_2_0(struct dp_pdev *pdev)
{
@@ -2790,20 +2814,28 @@ static
void dp_tx_mon_wordmask_config_set(struct htt_tx_ring_tlv_filter *dst_filter,
struct htt_tx_ring_tlv_filter *src_filter)
{
dst_filter->wmask.tx_fes_setup |=
src_filter->wmask.tx_fes_setup;
dst_filter->wmask.pcu_ppdu_setup_init |=
src_filter->wmask.pcu_ppdu_setup_init;
dst_filter->wmask.tx_peer_entry |=
src_filter->wmask.tx_peer_entry;
dst_filter->wmask.tx_queue_ext |=
src_filter->wmask.tx_queue_ext;
dst_filter->wmask.tx_fes_status_end |=
src_filter->wmask.tx_fes_status_end;
dst_filter->wmask.response_end_status |=
src_filter->wmask.response_end_status;
dst_filter->wmask.tx_fes_status_prot |=
src_filter->wmask.tx_fes_status_prot;
dst_filter->wmask.tx_fes_setup |=
src_filter->wmask.tx_fes_setup;
dst_filter->wmask.tx_msdu_start |=
src_filter->wmask.tx_msdu_start;
dst_filter->wmask.tx_mpdu_start |=
src_filter->wmask.tx_mpdu_start;
dst_filter->wmask.pcu_ppdu_setup_init |=
src_filter->wmask.pcu_ppdu_setup_init;
dst_filter->wmask.rxpcu_user_setup |=
src_filter->wmask.rxpcu_user_setup;
dst_filter->compaction_enable |=
src_filter->compaction_enable;
}
/**

View File

@@ -1434,20 +1434,20 @@ hal_tx_status_get_tlv_tag(void *tx_tlv_hdr)
}
/**
* hal_txmon_set_word_mask() - api to set word mask for tx monitor
* hal_txmon_get_word_mask() - api to get word mask for tx monitor
* @hal_soc_hdl: HAL soc handle
* @wmask: pointer to hal_txmon_word_mask_config_t
*
* Return: bool
*/
static inline bool
hal_txmon_set_word_mask(hal_soc_handle_t hal_soc_hdl,
hal_txmon_get_word_mask(hal_soc_handle_t hal_soc_hdl,
hal_txmon_word_mask_config_t *wmask)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (hal_soc->ops->hal_txmon_set_word_mask) {
hal_soc->ops->hal_txmon_set_word_mask(wmask);
if (hal_soc->ops->hal_txmon_get_word_mask) {
hal_soc->ops->hal_txmon_get_word_mask(wmask);
return true;
}

View File

@@ -1381,13 +1381,13 @@ hal_txmon_status_get_num_users_generic_be(void *tx_tlv_hdr, uint8_t *num_users)
}
/**
* hal_txmon_set_word_mask_generic_be() - api to set word mask for tx monitor
* hal_txmon_get_word_mask_generic_be() - api to get word mask for tx monitor
* @wmask: pointer to hal_txmon_word_mask_config_t
*
* Return: void
*/
static inline
void hal_txmon_set_word_mask_generic_be(void *wmask)
void hal_txmon_get_word_mask_generic_be(void *wmask)
{
hal_txmon_word_mask_config_t *word_mask = NULL;

View File

@@ -1329,7 +1329,7 @@ struct hal_hw_txrx_ops {
qdf_frag_t status_frag);
uint32_t (*hal_txmon_status_get_num_users)(void *tx_tlv_hdr,
uint8_t *num_users);
void (*hal_txmon_set_word_mask)(void *wmask);
void (*hal_txmon_get_word_mask)(void *wmask);
#endif /* QCA_MONITOR_2_0_SUPPORT */
QDF_STATUS (*hal_reo_shared_qaddr_setup)(hal_soc_handle_t hal_soc_hdl,
struct reo_queue_ref_table

View File

@@ -1780,11 +1780,11 @@ static void hal_hw_txrx_ops_attach_qcn9224(struct hal_soc *hal_soc)
hal_soc->ops->hal_txmon_status_get_num_users =
hal_txmon_status_get_num_users_generic_be;
#if defined(TX_MONITOR_WORD_MASK)
hal_soc->ops->hal_txmon_set_word_mask =
hal_txmon_set_word_mask_qcn9224;
hal_soc->ops->hal_txmon_get_word_mask =
hal_txmon_get_word_mask_qcn9224;
#else
hal_soc->ops->hal_txmon_set_word_mask =
hal_txmon_set_word_mask_generic_be;
hal_soc->ops->hal_txmon_get_word_mask =
hal_txmon_get_word_mask_generic_be;
#endif /* TX_MONITOR_WORD_MASK */
#endif /* QCA_MONITOR_2_0_SUPPORT */
hal_soc->ops->hal_compute_reo_remap_ix0 = NULL;

View File

@@ -531,13 +531,13 @@ struct pcu_ppdu_setup_init_compact_9224 {
};
/**
* hal_txmon_set_word_mask_qcn9224() - api to set word mask for tx monitor
* hal_txmon_get_word_mask_qcn9224() - api to get word mask for tx monitor
* @wmask: pointer to hal_txmon_word_mask_config_t
*
* Return: void
*/
static inline
void hal_txmon_set_word_mask_qcn9224(void *wmask)
void hal_txmon_get_word_mask_qcn9224(void *wmask)
{
hal_txmon_word_mask_config_t *word_mask = NULL;