[PATCH v9 04/12] wifi: ath11k: update regulatory rules when interface added
Baochen Qiang
quic_bqiang at quicinc.com
Wed Dec 13 23:09:16 PST 2023
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.
More information about the ath11k
mailing list