Subject: Re: [PATCH v9 1/2] dt-bindings: net: wireless: qcom,ath11k: describe the ath11k on QCA6390

From: Kalle Valo <[email-masked]>
Date: Wed, 12 Jun 2024 15:42:33 +0300

Bartosz Golaszewski <[email-masked]> writes:

> On Thu, Jun 6, 2024 at 6:16 PM Kalle Valo <[email-masked]> wrote:
>
>>
>> Bartosz Golaszewski <[email-masked]> writes:
>>
>> > On Thu, Jun 6, 2024 at 4:02 PM Kalle Valo <[email-masked]> wrote:
>> >
>> >> Sure, I'm not worried about functionality. I'm worried that if I
>> >> there's, for example, an ARM based setup which uses DT and wants to use
>> >> a similar QCA6390 board that I have, and set
>> >> qcom,ath11k-calibration-variant in DT. In other words, I'm worried if
>> >> you are looking at this only for Snapdragon family of boards?
>> >>
>> >
>> > No, what I'm looking at is the entire QCA6390 package. That means WLAN
>> > *and* Bluetooth *and* the PMU that manages power.
>>
>> I think we are just looking at this from different point of views. You
>> are looking at a datasheet (most likely for a Snapdragon based system)
>> and I'm looking what actual devices there are out in the field.
>>
>> > If you're using the QCA6390 on a device-tree system then you should
>> > probably model at least the WLAN node and the PMU and the problem with
>> > supplies is fixed.
>>
>> But why? If there are boards out there who don't need any of this why
>> would they still need to model all this in DT?
>>
>
> Because this is what is there? The goal of the device tree is to
> describe the hardware. The fact we didn't describe it before doesn't
> make it correct.
>
>> Based on the discussions I have heard only Snapdragon systems who
>> require all this configuration you describe. Of course there can be
>> other systems but I have not heard about those.
>>
>
> DT is not configuration, it is description of actual hardware. It
> doesn't matter if Snapdragon systems are the only ones that actually
> *require* this description to make WLAN/BT functional upstream. The
> chipset would be the same on any PCIe board, it's just that the host
> systems wouldn't need to take care with its power sequence. But for a
> dynamic board like this, you don't need DT.
>
>> > But if you don't have the supplies, that's alright for downstream.
>>
>> What do you mean downstream in this context?
>>
>
> I mean: if you wanted to upstream the DT sources, then they should
> include the supplies AND the PMU node. But if you just want to make
> the WLAN run on some vendor kernel then you don't need to think about
> it, it will work.
>
>> >> Again, I don't see this as a blocker. I just want to understand how this
>> >> should work for all types of devices there are out there.
>> >>
>> >> > But if you have a QCA6390 then you have its PMU too and the bindings
>> >> > model the real-world hardware.
>> >> >
>> >> > IOW: your laptop should be alright but the supplies are really there
>> >> > which warrants adding them to the bindings.
>> >>
>> >> Sorry, not following here. Can you clarify your comment "the supplies
>> >> are really there"? You mean inside the PCI board? But that's not visible
>> >> to the kernel in anyway, the PCI board just works after I plug it in.
>> >> It's like a regular PCI device. So I don't understand why that should be
>> >> visible in DT, but I can very well be missing something.
>> >>
>> >
>> > I think you're thinking about some kind of detachable PCIe board with
>> > this chipset on it.
>>
>> Exactly, a lot of WLAN boards are like this.
>>
>> > I refer to the QCA6390 chipset itself which is also more than just
>> > PCI. The Bluetooth interface doesn't use PCI at all. On the boards I'm
>> > working on, the chipset is just soldered to the main board.
>>
>> And I guess you are looking at Snapdragon boards only?
>>
>
> But what is your point?

My point (again) is that to me it look likes that you are looking this
only for Snapdragon type of devices and ignoring the rest. I am looking
at this to support _all_ type of devices and I want to make sure that we
don't have any artificial restrictions to use ath11k or ath12k devices
in upstream Linux.

I could not find a public example of a QCA6390 M.2 board like I have, but
here's one for QCA2066:

https://compex.com.sg/shop/wifi-module/wlt206h-wifi6-ble5-1-11ax-qca2062-qca2065/

QCA2066 is a mobile chipset supported by ath11k, similarly like QCA6390.
It's just newer and different features, and with a different PCI id. In
the past using these kind of M.2 boards for Wi-Fi has been quite common
but don't know how commit it is nowadays.

>> > If your detachable board "just works" then it must be wired in a way
>> > that enables WLAN the moment it's plugged in but this doesn't happen
>> > over PCI. The chipset has a power input and GPIOs to enable each
>> > module.
>>
>> I don't know how the boards are implemented but it could be so. But from
>> host system point of view it's just a regular PCI device.
>>
>
> And you don't need DT anyway for this type of devices.

I wish we wouldn't need to use DT for such M.2 boards, but we do need to
use qcom,ath11k-calibration-variant in some cases when the device (or
the firmware) doesn't provide unique enough identifier to choose the
correct board file automatically. I already mentioned the property in my
earlier emails.

I hope this clears up what I'm trying to say.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches