|
@@ -2989,10 +2989,11 @@ static void dp_cfr_filter_2_0(struct cdp_soc_t *soc_hdl,
|
|
{
|
|
{
|
|
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
|
|
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
|
|
struct dp_pdev *pdev = NULL;
|
|
struct dp_pdev *pdev = NULL;
|
|
- struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
|
|
|
|
- int max_mac_rings;
|
|
|
|
- uint8_t mac_id = 0;
|
|
|
|
|
|
+ struct htt_rx_ring_tlv_filter *htt_tlv_filter;
|
|
struct dp_mon_pdev *mon_pdev;
|
|
struct dp_mon_pdev *mon_pdev;
|
|
|
|
+ struct dp_mon_filter_be filter = {0};
|
|
|
|
+ enum dp_mon_filter_srng_type srng_type =
|
|
|
|
+ DP_MON_FILTER_SRNG_TYPE_RXMON_DEST;
|
|
|
|
|
|
pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
|
|
pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
|
|
if (!pdev) {
|
|
if (!pdev) {
|
|
@@ -3009,49 +3010,43 @@ static void dp_cfr_filter_2_0(struct cdp_soc_t *soc_hdl,
|
|
|
|
|
|
soc = pdev->soc;
|
|
soc = pdev->soc;
|
|
pdev->cfr_rcc_mode = false;
|
|
pdev->cfr_rcc_mode = false;
|
|
- max_mac_rings = wlan_cfg_get_num_mac_rings(pdev->wlan_cfg_ctx);
|
|
|
|
- dp_update_num_mac_rings_for_dbs(soc, &max_mac_rings);
|
|
|
|
|
|
|
|
- dp_mon_debug("Max_mac_rings %d", max_mac_rings);
|
|
|
|
|
|
+ /* Get default tlv settings */
|
|
|
|
+ htt_tlv_filter = &filter.rx_tlv_filter.tlv_filter;
|
|
|
|
+ dp_rx_mon_filter_h2t_setup(soc, pdev, srng_type, &filter.rx_tlv_filter);
|
|
|
|
+
|
|
|
|
+ if (filter.rx_tlv_filter.valid)
|
|
|
|
+ htt_tlv_filter->enable = 1;
|
|
|
|
+ else
|
|
|
|
+ htt_tlv_filter->enable = 0;
|
|
|
|
+
|
|
dp_mon_info("enable : %d, mode: 0x%x", enable, filter_val->mode);
|
|
dp_mon_info("enable : %d, mode: 0x%x", enable, filter_val->mode);
|
|
|
|
|
|
if (enable) {
|
|
if (enable) {
|
|
pdev->cfr_rcc_mode = true;
|
|
pdev->cfr_rcc_mode = true;
|
|
- htt_tlv_filter.ppdu_start = 1;
|
|
|
|
- htt_tlv_filter.ppdu_end = 1;
|
|
|
|
- htt_tlv_filter.ppdu_end_user_stats = 1;
|
|
|
|
- htt_tlv_filter.ppdu_end_user_stats_ext = 1;
|
|
|
|
- htt_tlv_filter.ppdu_end_status_done = 1;
|
|
|
|
- htt_tlv_filter.mpdu_start = 1;
|
|
|
|
- htt_tlv_filter.offset_valid = false;
|
|
|
|
-
|
|
|
|
- htt_tlv_filter.enable_fp =
|
|
|
|
|
|
+ htt_tlv_filter->ppdu_start = 1;
|
|
|
|
+ htt_tlv_filter->ppdu_end = 1;
|
|
|
|
+ htt_tlv_filter->ppdu_end_user_stats = 1;
|
|
|
|
+ htt_tlv_filter->ppdu_end_user_stats_ext = 1;
|
|
|
|
+ htt_tlv_filter->ppdu_end_status_done = 1;
|
|
|
|
+ htt_tlv_filter->mpdu_start = 1;
|
|
|
|
+ htt_tlv_filter->offset_valid = false;
|
|
|
|
+
|
|
|
|
+ htt_tlv_filter->enable_fp =
|
|
(filter_val->mode & MON_FILTER_PASS) ? 1 : 0;
|
|
(filter_val->mode & MON_FILTER_PASS) ? 1 : 0;
|
|
- htt_tlv_filter.enable_md = 0;
|
|
|
|
- htt_tlv_filter.enable_mo =
|
|
|
|
|
|
+ htt_tlv_filter->enable_md = 0;
|
|
|
|
+ htt_tlv_filter->enable_mo =
|
|
(filter_val->mode & MON_FILTER_OTHER) ? 1 : 0;
|
|
(filter_val->mode & MON_FILTER_OTHER) ? 1 : 0;
|
|
- htt_tlv_filter.fp_mgmt_filter = filter_val->fp_mgmt;
|
|
|
|
- htt_tlv_filter.fp_ctrl_filter = filter_val->fp_ctrl;
|
|
|
|
- htt_tlv_filter.fp_data_filter = filter_val->fp_data;
|
|
|
|
- htt_tlv_filter.mo_mgmt_filter = filter_val->mo_mgmt;
|
|
|
|
- htt_tlv_filter.mo_ctrl_filter = filter_val->mo_ctrl;
|
|
|
|
- htt_tlv_filter.mo_data_filter = filter_val->mo_data;
|
|
|
|
|
|
+ htt_tlv_filter->fp_mgmt_filter = filter_val->fp_mgmt;
|
|
|
|
+ htt_tlv_filter->fp_ctrl_filter = filter_val->fp_ctrl;
|
|
|
|
+ htt_tlv_filter->fp_data_filter = filter_val->fp_data;
|
|
|
|
+ htt_tlv_filter->mo_mgmt_filter = filter_val->mo_mgmt;
|
|
|
|
+ htt_tlv_filter->mo_ctrl_filter = filter_val->mo_ctrl;
|
|
|
|
+ htt_tlv_filter->mo_data_filter = filter_val->mo_data;
|
|
}
|
|
}
|
|
|
|
|
|
- for (mac_id = 0;
|
|
|
|
- mac_id < soc->wlan_cfg_ctx->num_rxdma_dst_rings_per_pdev;
|
|
|
|
- mac_id++) {
|
|
|
|
- int mac_for_pdev =
|
|
|
|
- dp_get_mac_id_for_pdev(mac_id, pdev->pdev_id);
|
|
|
|
-
|
|
|
|
- if (soc->wlan_cfg_ctx->rxdma1_enable) {
|
|
|
|
- htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
|
|
|
|
- soc->rxdma_mon_dst_ring[mac_id]
|
|
|
|
- .hal_srng, RXDMA_MONITOR_DST,
|
|
|
|
- RX_DATA_BUFFER_SIZE,
|
|
|
|
- &htt_tlv_filter);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ dp_mon_ht2_rx_ring_cfg(soc, pdev, srng_type,
|
|
|
|
+ &filter.rx_tlv_filter.tlv_filter);
|
|
}
|
|
}
|
|
|
|
|
|
void dp_cfr_filter_register_2_0(struct cdp_ops *ops)
|
|
void dp_cfr_filter_register_2_0(struct cdp_ops *ops)
|