[PATCH 03/14] wifi: ath12k: Avoid multiple times configuring monitor filter
Karthikeyan Periyasamy
quic_periyasa at quicinc.com
Sat Dec 21 21:15:23 PST 2024
On 12/21/2024 10:00 AM, P Praneesh wrote:
> ath12k_mac_op_configure_filter() gets called multiple times during
> interface bringup. Applying filter configuration from this function leads
> to writing same filter configurations multiple times.
>
> Fix it by moving the filter configuration to ath12k_mac_op_start().
>
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>
> Signed-off-by: P Praneesh <quic_ppranees at quicinc.com>
> ---
> drivers/net/wireless/ath/ath12k/mac.c | 55 ++++++++++++++-------------
> 1 file changed, 29 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 6f10813d9378..2cb6e9b529d7 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
> @@ -7237,8 +7237,34 @@ void ath12k_mac_drain_tx(struct ath12k *ar)
>
> static int ath12k_mac_config_mon_status_default(struct ath12k *ar, bool enable)
> {
> - return -EOPNOTSUPP;
> - /* TODO: Need to support new monitor mode */
> + struct htt_rx_ring_tlv_filter tlv_filter = {};
> + struct ath12k_base *ab = ar->ab;
> + u32 ring_id, i;
> + int ret = 0;
> +
> + lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
> +
> + if (!ab->hw_params->rxdma1_enable)
> + return ret;
> +
> + if (enable)
> + tlv_filter = ath12k_mac_mon_status_filter_default;
No need to disable the filter in the else case like below ?
tlv_filter.rxmon_disable = true;
--
Karthikeyan Periyasamy
--
கார்த்திகேயன் பெரியசாமி
More information about the ath12k
mailing list