[PATCH v9 04/12] wifi: ath11k: update regulatory rules when interface added

Aditya Kumar Singh quic_adisi at quicinc.com
Wed Dec 13 23:34:00 PST 2023


On 12/14/23 12:39, Baochen Qiang wrote:
> 
> 
> On 12/12/2023 1:20 AM, Aditya Kumar Singh wrote:
>> On 12/11/23 11:52, Baochen Qiang wrote:
>>> diff --git a/drivers/net/wireless/ath/ath11k/mac.c 
>>> b/drivers/net/wireless/ath/ath11k/mac.c
>>> index 7f7b39817773..1e314fcab41b 100644
>>> --- a/drivers/net/wireless/ath/ath11k/mac.c
>>> +++ b/drivers/net/wireless/ath/ath11k/mac.c
>>> @@ -6943,6 +6943,14 @@ static int ath11k_mac_op_add_interface(struct 
>>> ieee80211_hw *hw,
>>>                       ret);
>>>       }
>>> +    if (ath11k_wmi_supports_6ghz_cc_ext(ar)) {
>>> +        struct cur_regulatory_info *reg_info;
>>> +
>>> +        reg_info = &ab->reg_info_store[ar->pdev_idx];
>>> +        ath11k_dbg(ab, ATH11K_DBG_MAC, "mac interface added to 
>>> change reg rules\n");
>>> +        ath11k_reg_handle_chan_list(ab, reg_info, 
>>> IEEE80211_REG_LPI_AP);
>>> +    }
>>> +
>> So we update the rules by default for AP. Then in next patch 5/12, 
>> once STA connects to AP, we put the proper power mode and refresh the 
>> rules.
>>
>> So if user wants to bring up 1 STA interface alone, in total 3 
>> regulatory updates will happen from driver to upper layer -
>> 1. During initial boot time
>> 2. During interface create time (above hunk)
>> 3. During channel context assignment (5/12 patch)
>>
>> Does this seem good? 3 times we would be changing regulatory rules and 
>> first 2 times we are doing the same thing.
> No, the first two times are not the same: as mentioned in the commit 
> log, at the first time when boot up, interface mode is not determined, 
> so the argument vdev_type is 0 when calling ath11k_reg_build_regd(), as 
> a result AP reg info is chosen. And for the second time, here when 
> adding interface, we know exactly the interface type, say a STA, 
> vdev_type is 2 when calling ath11k_reg_build_regd(), resulting in that 
> client reg info is chosen. see the changes to ath11k_reg_build_regd() in 
> patch 1/12.

Ah I see, sorry got confused a bit. Correct, it is different, but still 
updating 3 times, is it good? Just ponder once, otherwise fine.





More information about the ath11k mailing list