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:

committed by
Madan Koyyalamudi

parent
6d70bfb469
commit
799d46a277
@@ -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)
|
if (htt_tlv_filter->data_msdu_end)
|
||||||
HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_SET(*msg_word, 1);
|
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 */
|
/* word 3 */
|
||||||
msg_word++;
|
msg_word++;
|
||||||
*msg_word = 0;
|
*msg_word = 0;
|
||||||
@@ -1439,21 +1443,41 @@ 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,
|
void dp_tx_mon_filter_set_word_mask(struct dp_pdev *pdev,
|
||||||
struct htt_tx_ring_tlv_filter *filter)
|
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;
|
||||||
|
|
||||||
filter->wmask.pcu_ppdu_setup_init = 0xFFFFFFFF;
|
status = hal_txmon_get_word_mask(pdev->soc->hal_soc, &word_mask);
|
||||||
filter->wmask.tx_peer_entry = 0xFFFF;
|
|
||||||
filter->wmask.tx_queue_ext = 0xFFFF;
|
|
||||||
filter->wmask.tx_fes_status_end = 0xFFFF;
|
|
||||||
filter->wmask.response_end_status = 0xFFFF;
|
|
||||||
filter->wmask.tx_fes_status_prot = 0xFFFF;
|
|
||||||
filter->wmask.tx_fes_setup = 0xFF;
|
|
||||||
filter->wmask.tx_msdu_start = 0xFF;
|
|
||||||
filter->wmask.tx_mpdu_start = 0xFF;
|
|
||||||
filter->wmask.rxpcu_user_setup = 0xFF;
|
|
||||||
|
|
||||||
/* compaction is disable */
|
if (status) {
|
||||||
filter->compaction_enable = 0;
|
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;
|
||||||
|
filter->wmask.tx_fes_status_end = 0xFFFF;
|
||||||
|
filter->wmask.response_end_status = 0xFFFF;
|
||||||
|
filter->wmask.tx_fes_status_prot = 0xFFFF;
|
||||||
|
filter->wmask.tx_fes_setup = 0xFF;
|
||||||
|
filter->wmask.tx_msdu_start = 0xFF;
|
||||||
|
filter->wmask.tx_mpdu_start = 0xFF;
|
||||||
|
filter->wmask.rxpcu_user_setup = 0xFF;
|
||||||
|
|
||||||
|
/* compaction is disable */
|
||||||
|
filter->compaction_enable = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void dp_mon_filter_setup_tx_mon_mode_2_0(struct dp_pdev *pdev)
|
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,
|
void dp_tx_mon_wordmask_config_set(struct htt_tx_ring_tlv_filter *dst_filter,
|
||||||
struct htt_tx_ring_tlv_filter *src_filter)
|
struct htt_tx_ring_tlv_filter *src_filter)
|
||||||
{
|
{
|
||||||
dst_filter->wmask.tx_fes_setup |=
|
dst_filter->wmask.pcu_ppdu_setup_init |=
|
||||||
src_filter->wmask.tx_fes_setup;
|
src_filter->wmask.pcu_ppdu_setup_init;
|
||||||
dst_filter->wmask.tx_peer_entry |=
|
dst_filter->wmask.tx_peer_entry |=
|
||||||
src_filter->wmask.tx_peer_entry;
|
src_filter->wmask.tx_peer_entry;
|
||||||
dst_filter->wmask.tx_queue_ext |=
|
dst_filter->wmask.tx_queue_ext |=
|
||||||
src_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 |=
|
dst_filter->wmask.tx_msdu_start |=
|
||||||
src_filter->wmask.tx_msdu_start;
|
src_filter->wmask.tx_msdu_start;
|
||||||
dst_filter->wmask.tx_mpdu_start |=
|
dst_filter->wmask.tx_mpdu_start |=
|
||||||
src_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 |=
|
dst_filter->wmask.rxpcu_user_setup |=
|
||||||
src_filter->wmask.rxpcu_user_setup;
|
src_filter->wmask.rxpcu_user_setup;
|
||||||
|
dst_filter->compaction_enable |=
|
||||||
|
src_filter->compaction_enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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
|
* @hal_soc_hdl: HAL soc handle
|
||||||
* @wmask: pointer to hal_txmon_word_mask_config_t
|
* @wmask: pointer to hal_txmon_word_mask_config_t
|
||||||
*
|
*
|
||||||
* Return: bool
|
* Return: bool
|
||||||
*/
|
*/
|
||||||
static inline 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)
|
hal_txmon_word_mask_config_t *wmask)
|
||||||
{
|
{
|
||||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||||
|
|
||||||
if (hal_soc->ops->hal_txmon_set_word_mask) {
|
if (hal_soc->ops->hal_txmon_get_word_mask) {
|
||||||
hal_soc->ops->hal_txmon_set_word_mask(wmask);
|
hal_soc->ops->hal_txmon_get_word_mask(wmask);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
* @wmask: pointer to hal_txmon_word_mask_config_t
|
||||||
*
|
*
|
||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
static inline
|
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;
|
hal_txmon_word_mask_config_t *word_mask = NULL;
|
||||||
|
|
||||||
|
@@ -1329,7 +1329,7 @@ struct hal_hw_txrx_ops {
|
|||||||
qdf_frag_t status_frag);
|
qdf_frag_t status_frag);
|
||||||
uint32_t (*hal_txmon_status_get_num_users)(void *tx_tlv_hdr,
|
uint32_t (*hal_txmon_status_get_num_users)(void *tx_tlv_hdr,
|
||||||
uint8_t *num_users);
|
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 */
|
#endif /* QCA_MONITOR_2_0_SUPPORT */
|
||||||
QDF_STATUS (*hal_reo_shared_qaddr_setup)(hal_soc_handle_t hal_soc_hdl,
|
QDF_STATUS (*hal_reo_shared_qaddr_setup)(hal_soc_handle_t hal_soc_hdl,
|
||||||
struct reo_queue_ref_table
|
struct reo_queue_ref_table
|
||||||
|
@@ -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_soc->ops->hal_txmon_status_get_num_users =
|
||||||
hal_txmon_status_get_num_users_generic_be;
|
hal_txmon_status_get_num_users_generic_be;
|
||||||
#if defined(TX_MONITOR_WORD_MASK)
|
#if defined(TX_MONITOR_WORD_MASK)
|
||||||
hal_soc->ops->hal_txmon_set_word_mask =
|
hal_soc->ops->hal_txmon_get_word_mask =
|
||||||
hal_txmon_set_word_mask_qcn9224;
|
hal_txmon_get_word_mask_qcn9224;
|
||||||
#else
|
#else
|
||||||
hal_soc->ops->hal_txmon_set_word_mask =
|
hal_soc->ops->hal_txmon_get_word_mask =
|
||||||
hal_txmon_set_word_mask_generic_be;
|
hal_txmon_get_word_mask_generic_be;
|
||||||
#endif /* TX_MONITOR_WORD_MASK */
|
#endif /* TX_MONITOR_WORD_MASK */
|
||||||
#endif /* QCA_MONITOR_2_0_SUPPORT */
|
#endif /* QCA_MONITOR_2_0_SUPPORT */
|
||||||
hal_soc->ops->hal_compute_reo_remap_ix0 = NULL;
|
hal_soc->ops->hal_compute_reo_remap_ix0 = NULL;
|
||||||
|
@@ -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
|
* @wmask: pointer to hal_txmon_word_mask_config_t
|
||||||
*
|
*
|
||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
static inline
|
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;
|
hal_txmon_word_mask_config_t *word_mask = NULL;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user