]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
wifi: ath12k: Remove unsupported tx monitor handling
authorTamizh Chelvam Raja <quic_tamizhr@quicinc.com>
Tue, 30 Apr 2024 09:14:13 +0000 (14:44 +0530)
committerKalle Valo <quic_kvalo@quicinc.com>
Tue, 7 May 2024 10:08:49 +0000 (13:08 +0300)
Currently tx monitor is not supported in driver. So remove
the tx monitor ring configuration, allocation and handling.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1

Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240430091414.2486196-3-quic_tamizhr@quicinc.com
drivers/net/wireless/ath/ath12k/dp_mon.c
drivers/net/wireless/ath/ath12k/dp_rx.c
drivers/net/wireless/ath/ath12k/dp_tx.c
drivers/net/wireless/ath/ath12k/dp_tx.h

index 6b0b72477540767080094e8fdb28a5b7f7d9772c..5c6749bc4039d20d439892fb03c4b96e51cea972 100644 (file)
@@ -1903,43 +1903,6 @@ ath12k_dp_mon_tx_parse_status_tlv(struct ath12k_base *ab,
                break;
        }
 
-       case HAL_MON_BUF_ADDR: {
-               struct dp_rxdma_mon_ring *buf_ring = &ab->dp.tx_mon_buf_ring;
-               struct dp_mon_packet_info *packet_info =
-                       (struct dp_mon_packet_info *)tlv_data;
-               int buf_id = u32_get_bits(packet_info->cookie,
-                                         DP_RXDMA_BUF_COOKIE_BUF_ID);
-               struct sk_buff *msdu;
-               struct dp_mon_mpdu *mon_mpdu = tx_ppdu_info->tx_mon_mpdu;
-               struct ath12k_skb_rxcb *rxcb;
-
-               spin_lock_bh(&buf_ring->idr_lock);
-               msdu = idr_remove(&buf_ring->bufs_idr, buf_id);
-               spin_unlock_bh(&buf_ring->idr_lock);
-
-               if (unlikely(!msdu)) {
-                       ath12k_warn(ab, "monitor destination with invalid buf_id %d\n",
-                                   buf_id);
-                       return DP_MON_TX_STATUS_PPDU_NOT_DONE;
-               }
-
-               rxcb = ATH12K_SKB_RXCB(msdu);
-               dma_unmap_single(ab->dev, rxcb->paddr,
-                                msdu->len + skb_tailroom(msdu),
-                                DMA_FROM_DEVICE);
-
-               if (!mon_mpdu->head)
-                       mon_mpdu->head = msdu;
-               else if (mon_mpdu->tail)
-                       mon_mpdu->tail->next = msdu;
-
-               mon_mpdu->tail = msdu;
-
-               ath12k_dp_mon_buf_replenish(ab, buf_ring, 1);
-               status = DP_MON_TX_BUFFER_ADDR;
-               break;
-       }
-
        case HAL_TX_MPDU_END:
                list_add_tail(&tx_ppdu_info->tx_mon_mpdu->list,
                              &tx_ppdu_info->dp_tx_mon_mpdu_list);
@@ -2088,8 +2051,7 @@ int ath12k_dp_mon_srng_process(struct ath12k *ar, int mac_id, int *budget,
                mon_dst_ring = &pdev_dp->rxdma_mon_dst_ring[srng_id];
                buf_ring = &dp->rxdma_mon_buf_ring;
        } else {
-               mon_dst_ring = &pdev_dp->tx_mon_dst_ring[srng_id];
-               buf_ring = &dp->tx_mon_buf_ring;
+               return 0;
        }
 
        srng = &ab->hal.srng_list[mon_dst_ring->ring_id];
index 18030c9e735d4b80fb474ab39a1ea9ba41eb5a61..952a377b5491176ce34599f69c7b4c4ba1b2e89d 100644 (file)
@@ -422,8 +422,6 @@ static int ath12k_dp_rxdma_buf_free(struct ath12k_base *ab)
 
        ath12k_dp_rxdma_mon_buf_ring_free(ab, &dp->rxdma_mon_buf_ring);
 
-       ath12k_dp_rxdma_mon_buf_ring_free(ab, &dp->tx_mon_buf_ring);
-
        return 0;
 }
 
@@ -476,15 +474,6 @@ static int ath12k_dp_rxdma_buf_setup(struct ath12k_base *ab)
                                    "failed to setup HAL_RXDMA_MONITOR_BUF\n");
                        return ret;
                }
-
-               ret = ath12k_dp_rxdma_mon_ring_buf_setup(ab,
-                                                        &dp->tx_mon_buf_ring,
-                                                        HAL_TX_MONITOR_BUF);
-               if (ret) {
-                       ath12k_warn(ab,
-                                   "failed to setup HAL_TX_MONITOR_BUF\n");
-                       return ret;
-               }
        }
 
        return 0;
@@ -496,10 +485,8 @@ static void ath12k_dp_rx_pdev_srng_free(struct ath12k *ar)
        struct ath12k_base *ab = ar->ab;
        int i;
 
-       for (i = 0; i < ab->hw_params->num_rxmda_per_pdev; i++) {
+       for (i = 0; i < ab->hw_params->num_rxmda_per_pdev; i++)
                ath12k_dp_srng_cleanup(ab, &dp->rxdma_mon_dst_ring[i]);
-               ath12k_dp_srng_cleanup(ab, &dp->tx_mon_dst_ring[i]);
-       }
 }
 
 void ath12k_dp_rx_pdev_reo_cleanup(struct ath12k_base *ab)
@@ -554,17 +541,6 @@ static int ath12k_dp_rx_pdev_srng_alloc(struct ath12k *ar)
                                    "failed to setup HAL_RXDMA_MONITOR_DST\n");
                        return ret;
                }
-
-               ret = ath12k_dp_srng_setup(ar->ab,
-                                          &dp->tx_mon_dst_ring[i],
-                                          HAL_TX_MONITOR_DST,
-                                          0, mac_id + i,
-                                          DP_TX_MONITOR_DEST_RING_SIZE);
-               if (ret) {
-                       ath12k_warn(ar->ab,
-                                   "failed to setup HAL_TX_MONITOR_DST\n");
-                       return ret;
-               }
        }
 
        return 0;
@@ -3971,7 +3947,6 @@ void ath12k_dp_rx_free(struct ath12k_base *ab)
                ath12k_dp_srng_cleanup(ab, &dp->rxdma_err_dst_ring[i]);
 
        ath12k_dp_srng_cleanup(ab, &dp->rxdma_mon_buf_ring.refill_buf_ring);
-       ath12k_dp_srng_cleanup(ab, &dp->tx_mon_buf_ring.refill_buf_ring);
 
        ath12k_dp_rxdma_buf_free(ab);
 }
@@ -4114,15 +4089,6 @@ int ath12k_dp_rx_htt_setup(struct ath12k_base *ab)
                                    ret);
                        return ret;
                }
-
-               ring_id = dp->tx_mon_buf_ring.refill_buf_ring.ring_id;
-               ret = ath12k_dp_tx_htt_srng_setup(ab, ring_id,
-                                                 0, HAL_TX_MONITOR_BUF);
-               if (ret) {
-                       ath12k_warn(ab, "failed to configure rxdma_mon_buf_ring %d\n",
-                                   ret);
-                       return ret;
-               }
        }
 
        ret = ab->hw_params->hw_ops->rxdma_ring_sel_config(ab);
@@ -4142,9 +4108,6 @@ int ath12k_dp_rx_alloc(struct ath12k_base *ab)
        idr_init(&dp->rxdma_mon_buf_ring.bufs_idr);
        spin_lock_init(&dp->rxdma_mon_buf_ring.idr_lock);
 
-       idr_init(&dp->tx_mon_buf_ring.bufs_idr);
-       spin_lock_init(&dp->tx_mon_buf_ring.idr_lock);
-
        ret = ath12k_dp_srng_setup(ab,
                                   &dp->rx_refill_buf_ring.refill_buf_ring,
                                   HAL_RXDMA_BUF, 0, 0,
@@ -4187,15 +4150,6 @@ int ath12k_dp_rx_alloc(struct ath12k_base *ab)
                        ath12k_warn(ab, "failed to setup HAL_RXDMA_MONITOR_BUF\n");
                        return ret;
                }
-
-               ret = ath12k_dp_srng_setup(ab,
-                                          &dp->tx_mon_buf_ring.refill_buf_ring,
-                                          HAL_TX_MONITOR_BUF, 0, 0,
-                                          DP_TX_MONITOR_BUF_RING_SIZE);
-               if (ret) {
-                       ath12k_warn(ab, "failed to setup DP_TX_MONITOR_BUF_RING_SIZE\n");
-                       return ret;
-               }
        }
 
        ret = ath12k_dp_rxdma_buf_setup(ab);
@@ -4235,17 +4189,6 @@ int ath12k_dp_rx_pdev_alloc(struct ath12k_base *ab, int mac_id)
                                    i, ret);
                        return ret;
                }
-
-               ring_id = dp->tx_mon_dst_ring[i].ring_id;
-               ret = ath12k_dp_tx_htt_srng_setup(ab, ring_id,
-                                                 mac_id + i,
-                                                 HAL_TX_MONITOR_DST);
-               if (ret) {
-                       ath12k_warn(ab,
-                                   "failed to configure tx_mon_dst_ring %d %d\n",
-                                   i, ret);
-                       return ret;
-               }
        }
 out:
        return 0;
index 7adfdefc3bdcc7937f3f56a077787b0a550a091b..a22fa43c87ec5385649ad99595a0b787065324db 100644 (file)
@@ -688,14 +688,6 @@ ath12k_dp_tx_get_ring_id_type(struct ath12k_base *ab,
                *htt_ring_id = HTT_RXDMA_MONITOR_DESC_RING;
                *htt_ring_type = HTT_SW_TO_HW_RING;
                break;
-       case HAL_TX_MONITOR_BUF:
-               *htt_ring_id = HTT_TX_MON_HOST2MON_BUF_RING;
-               *htt_ring_type = HTT_SW_TO_HW_RING;
-               break;
-       case HAL_TX_MONITOR_DST:
-               *htt_ring_id = HTT_TX_MON_MON2HOST_DEST_RING;
-               *htt_ring_type = HTT_HW_TO_SW_RING;
-               break;
        default:
                ath12k_warn(ab, "Unsupported ring type in DP :%d\n", ring_type);
                ret = -EINVAL;
@@ -1063,12 +1055,6 @@ int ath12k_dp_tx_htt_monitor_mode_ring_config(struct ath12k *ar, bool reset)
        struct ath12k_base *ab = ar->ab;
        int ret;
 
-       ret = ath12k_dp_tx_htt_tx_monitor_mode_ring_config(ar, reset);
-       if (ret) {
-               ath12k_err(ab, "failed to setup tx monitor filter %d\n", ret);
-               return ret;
-       }
-
        ret = ath12k_dp_tx_htt_rx_monitor_mode_ring_config(ar, reset);
        if (ret) {
                ath12k_err(ab, "failed to setup rx monitor filter %d\n", ret);
@@ -1228,31 +1214,3 @@ err_free:
        dev_kfree_skb_any(skb);
        return ret;
 }
-
-int ath12k_dp_tx_htt_tx_monitor_mode_ring_config(struct ath12k *ar, bool reset)
-{
-       struct ath12k_base *ab = ar->ab;
-       struct ath12k_dp *dp = &ab->dp;
-       struct htt_tx_ring_tlv_filter tlv_filter = {0};
-       int ret, ring_id;
-
-       ring_id = dp->tx_mon_buf_ring.refill_buf_ring.ring_id;
-
-       /* TODO: Need to set upstream/downstream tlv filters
-        * here
-        */
-
-       if (ab->hw_params->rxdma1_enable) {
-               ret = ath12k_dp_tx_htt_tx_filter_setup(ar->ab, ring_id, 0,
-                                                      HAL_TX_MONITOR_BUF,
-                                                      DP_RXDMA_REFILL_RING_SIZE,
-                                                      &tlv_filter);
-               if (ret) {
-                       ath12k_err(ab,
-                                  "failed to setup filter for monitor buf %d\n", ret);
-                       return ret;
-               }
-       }
-
-       return 0;
-}
index 436d77e5e9ee8e221596d72a9efe192cd5f7a01d..7faa81faf6a72bf5f7dea496e57c06632cdcd669 100644 (file)
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: BSD-3-Clause-Clear */
 /*
  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef ATH12K_DP_TX_H
@@ -36,6 +36,5 @@ int ath12k_dp_tx_htt_tx_filter_setup(struct ath12k_base *ab, u32 ring_id,
                                     int mac_id, enum hal_ring_type ring_type,
                                     int tx_buf_size,
                                     struct htt_tx_ring_tlv_filter *htt_tlv_filter);
-int ath12k_dp_tx_htt_tx_monitor_mode_ring_config(struct ath12k *ar, bool reset);
 int ath12k_dp_tx_htt_monitor_mode_ring_config(struct ath12k *ar, bool reset);
 #endif