Search Linux Wireless

Re: [PATCH v4 03/11] wifi: ath12k: WMI support to process EHT capabilities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/25/2023 3:51 AM, Wen Gong wrote:
On 6/15/2023 7:49 PM, Kalle Valo wrote:
Aloka Dixit <quic_alokad@xxxxxxxxxxx> writes:

[...]
[...]

+struct ath12k_fw_pdev {
+    u32 pdev_id;
+    u32 phy_id;
+    u32 supported_bands;
+};
So we have now two very similar structures, ath12k_pdev and
ath12k_fw_pdev. It would be good to document above the structs their
purpose. Any ideas what I could add?
Currently ath12k has single_pdev parameter, it impact the interface number of wifi.

For single_pdev=ture, ab->num_radios is set to 1 and all capbility of 2.4 GHz/ 5 GHz/6 GHz is saved into ab->pdevs[0] in ath12k_wmi_ext_soc_hal_reg_caps_parse(). ath12k_mac_register() will call only one time into __ath12k_mac_register(), and ieee80211_register_hw() is called only one time, and only one wifi interface in the result of "iw dev/ifconfig", the interface support 2.4 GHz/5 GHz/6 GHz. Actually there hare more than one PHY in firmware, firmware maintain the all PHY data and provide a single pdev/soc interface to ath12k, then ath12k do not need to consider the PHY info such as channel/BAND<->PHY mapping relationship, it is convenient for
ath12k to support 2.4 GHz/5 GHz/6 GHz.

For single_pdev=false, ab->num_radios is more than 1, ab->pdevs[] has muti valid element, each element only support one BAND. Firmware do not provide a single pdev/soc interface, so ath12k need to maintain the PHY data such as channel/BAND<-> PHY mapping relationship, and ath12k_mac_register() will call muti-time into __ath12k_mac_register(), and ieee80211_register_hw() is called muti-time, and muti wifi interface in the result of "iw dev/ifconfig", and each interface only support one BAND, for example, wlan0 only support 2.4 GHz, wlan1 only support 5 GHz, and
wlan2 only support 6 GHz.

For single_pdev=ture, ath12k also need to know some info about the PHYs sush as pdev_id/phy_id/supported_bands in this patch, so ab->fw_pdev is used to store the
PHY data.


The new struct ath12k_fw_pdev is anyway going to have as many elements as the num_radio, right? Then there must be a way to reuse the common struct ath12k_pdev instead as it done for QCN devices. I understand this it will need changes to all the existing code for the single-pdev where it might have hard-coded pdev[0] for the original structure. Something to think about in a separate patch-set.

For now I will send new version with comments (as far as I understood it) because without this patch WCN devices show a crash during boot-up.

Thanks.



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux