[PATCH 03/14] wifi: ath12k: Avoid multiple times configuring monitor filter

Praneesh P quic_ppranees at quicinc.com
Sun Dec 22 21:52:04 PST 2024


On 12/22/2024 10:45 AM, Karthikeyan Periyasamy wrote:
> 
> 
> 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;
> 
> 
Yes, setting this flag to true fully disables the monitor ring. I'll 
include this change in the next version.



More information about the ath12k mailing list