diff mbox series

[1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID

Message ID 20220621135339.1269409-1-robimarko@gmail.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series [1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID | expand

Commit Message

Robert Marko June 21, 2022, 1:53 p.m. UTC
bus + qmi-chip-id + qmi-board-id and optionally the variant are currently
used for identifying the correct board data file.

This however is sometimes not enough as all of the IPQ8074 boards that I
have access to dont have the qmi-board-id properly fused and simply return
the default value of 0xFF.

So, to provide the correct qmi-board-id add a new DT property that allows
the qmi-board-id to be overridden from DTS in cases where its not set.
This is what vendors have been doing in the stock firmwares that were
shipped on boards I have.

Signed-off-by: Robert Marko <robimarko@gmail.com>
---
 .../devicetree/bindings/net/wireless/qcom,ath11k.yaml     | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Krzysztof Kozlowski June 21, 2022, 3:58 p.m. UTC | #1
On 21/06/2022 15:53, Robert Marko wrote:
> bus + qmi-chip-id + qmi-board-id and optionally the variant are currently
> used for identifying the correct board data file.
> 
> This however is sometimes not enough as all of the IPQ8074 boards that I
> have access to dont have the qmi-board-id properly fused and simply return
> the default value of 0xFF.
> 
> So, to provide the correct qmi-board-id add a new DT property that allows
> the qmi-board-id to be overridden from DTS in cases where its not set.
> This is what vendors have been doing in the stock firmwares that were
> shipped on boards I have.
> 
> Signed-off-by: Robert Marko <robimarko@gmail.com>

Thank you for your patch. There is something to discuss/improve.

> ---
>  .../devicetree/bindings/net/wireless/qcom,ath11k.yaml     | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> index a677b056f112..fe6aafdab9d4 100644
> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> @@ -41,6 +41,14 @@ properties:
>          * reg
>          * reg-names
>  
> +  qcom,ath11k-board-id:

The "board" a bit confuses me because in the context of entire system it
means the entire hardware running Qualcomm SoC. This is sometimes
encoded as qcom,board-id property.

Is your property exactly the same?

> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      Board ID to override the one returned by the firmware or the default
> +      0xff if it was not set by the vendor at all.
> +      It is used along the ath11k-calibration-variant to mach the correct
> +      calibration data from board-2.bin.
> +
>    qcom,ath11k-calibration-variant:
>      $ref: /schemas/types.yaml#/definitions/string
>      description:


Best regards,
Krzysztof
Robert Marko June 21, 2022, 6:47 p.m. UTC | #2
On Tue, 21 Jun 2022 at 17:58, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 21/06/2022 15:53, Robert Marko wrote:
> > bus + qmi-chip-id + qmi-board-id and optionally the variant are currently
> > used for identifying the correct board data file.
> >
> > This however is sometimes not enough as all of the IPQ8074 boards that I
> > have access to dont have the qmi-board-id properly fused and simply return
> > the default value of 0xFF.
> >
> > So, to provide the correct qmi-board-id add a new DT property that allows
> > the qmi-board-id to be overridden from DTS in cases where its not set.
> > This is what vendors have been doing in the stock firmwares that were
> > shipped on boards I have.
> >
> > Signed-off-by: Robert Marko <robimarko@gmail.com>
>
> Thank you for your patch. There is something to discuss/improve.
>
> > ---
> >  .../devicetree/bindings/net/wireless/qcom,ath11k.yaml     | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> > index a677b056f112..fe6aafdab9d4 100644
> > --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> > +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> > @@ -41,6 +41,14 @@ properties:
> >          * reg
> >          * reg-names
> >
> > +  qcom,ath11k-board-id:
>
> The "board" a bit confuses me because in the context of entire system it
> means the entire hardware running Qualcomm SoC. This is sometimes
> encoded as qcom,board-id property.

Hi Krzysztof,
I agree that the name is a bit confusing, it's not the same as
qcom,board-id AFAIK
and QCA as well as vendors are using a similar property in the wifi
node to override
the default qmi-board-id to the correct one as its rarely properly fused.

I assume it would be better-called qcom,ath11k-qmi-board-id as you
dont even have
to be using a Qualcomm SoC as the same is used by PCI ath11k cards as well.

Regards,
Robert
>
> Is your property exactly the same?
>
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description:
> > +      Board ID to override the one returned by the firmware or the default
> > +      0xff if it was not set by the vendor at all.
> > +      It is used along the ath11k-calibration-variant to mach the correct
> > +      calibration data from board-2.bin.
> > +
> >    qcom,ath11k-calibration-variant:
> >      $ref: /schemas/types.yaml#/definitions/string
> >      description:
>
>
> Best regards,
> Krzysztof
Krzysztof Kozlowski June 22, 2022, 2:55 p.m. UTC | #3
On 21/06/2022 20:47, Robert Marko wrote:
> On Tue, 21 Jun 2022 at 17:58, Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 21/06/2022 15:53, Robert Marko wrote:
>>> bus + qmi-chip-id + qmi-board-id and optionally the variant are currently
>>> used for identifying the correct board data file.
>>>
>>> This however is sometimes not enough as all of the IPQ8074 boards that I
>>> have access to dont have the qmi-board-id properly fused and simply return
>>> the default value of 0xFF.
>>>
>>> So, to provide the correct qmi-board-id add a new DT property that allows
>>> the qmi-board-id to be overridden from DTS in cases where its not set.
>>> This is what vendors have been doing in the stock firmwares that were
>>> shipped on boards I have.
>>>
>>> Signed-off-by: Robert Marko <robimarko@gmail.com>
>>
>> Thank you for your patch. There is something to discuss/improve.
>>
>>> ---
>>>  .../devicetree/bindings/net/wireless/qcom,ath11k.yaml     | 8 ++++++++
>>>  1 file changed, 8 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
>>> index a677b056f112..fe6aafdab9d4 100644
>>> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
>>> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
>>> @@ -41,6 +41,14 @@ properties:
>>>          * reg
>>>          * reg-names
>>>
>>> +  qcom,ath11k-board-id:
>>
>> The "board" a bit confuses me because in the context of entire system it
>> means the entire hardware running Qualcomm SoC. This is sometimes
>> encoded as qcom,board-id property.
> 
> Hi Krzysztof,
> I agree that the name is a bit confusing, it's not the same as
> qcom,board-id AFAIK
> and QCA as well as vendors are using a similar property in the wifi
> node to override
> the default qmi-board-id to the correct one as its rarely properly fused.
> 
> I assume it would be better-called qcom,ath11k-qmi-board-id as you
> dont even have
> to be using a Qualcomm SoC as the same is used by PCI ath11k cards as well.
> 

Thanks for the explanation. What is the "board" in that context? The
card/hardware with ath11k? Then maybe qcom,ath11k-qmi-id or
qcom,ath11k-qmi-hw-id?

Best regards,
Krzysztof
Robert Marko June 23, 2022, 8:16 p.m. UTC | #4
On Wed, 22 Jun 2022 at 16:55, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 21/06/2022 20:47, Robert Marko wrote:
> > On Tue, 21 Jun 2022 at 17:58, Krzysztof Kozlowski
> > <krzysztof.kozlowski@linaro.org> wrote:
> >>
> >> On 21/06/2022 15:53, Robert Marko wrote:
> >>> bus + qmi-chip-id + qmi-board-id and optionally the variant are currently
> >>> used for identifying the correct board data file.
> >>>
> >>> This however is sometimes not enough as all of the IPQ8074 boards that I
> >>> have access to dont have the qmi-board-id properly fused and simply return
> >>> the default value of 0xFF.
> >>>
> >>> So, to provide the correct qmi-board-id add a new DT property that allows
> >>> the qmi-board-id to be overridden from DTS in cases where its not set.
> >>> This is what vendors have been doing in the stock firmwares that were
> >>> shipped on boards I have.
> >>>
> >>> Signed-off-by: Robert Marko <robimarko@gmail.com>
> >>
> >> Thank you for your patch. There is something to discuss/improve.
> >>
> >>> ---
> >>>  .../devicetree/bindings/net/wireless/qcom,ath11k.yaml     | 8 ++++++++
> >>>  1 file changed, 8 insertions(+)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> >>> index a677b056f112..fe6aafdab9d4 100644
> >>> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> >>> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> >>> @@ -41,6 +41,14 @@ properties:
> >>>          * reg
> >>>          * reg-names
> >>>
> >>> +  qcom,ath11k-board-id:
> >>
> >> The "board" a bit confuses me because in the context of entire system it
> >> means the entire hardware running Qualcomm SoC. This is sometimes
> >> encoded as qcom,board-id property.
> >
> > Hi Krzysztof,
> > I agree that the name is a bit confusing, it's not the same as
> > qcom,board-id AFAIK
> > and QCA as well as vendors are using a similar property in the wifi
> > node to override
> > the default qmi-board-id to the correct one as its rarely properly fused.
> >
> > I assume it would be better-called qcom,ath11k-qmi-board-id as you
> > dont even have
> > to be using a Qualcomm SoC as the same is used by PCI ath11k cards as well.
> >
>
> Thanks for the explanation. What is the "board" in that context? The
> card/hardware with ath11k? Then maybe qcom,ath11k-qmi-id or
> qcom,ath11k-qmi-hw-id?

Hi,

I assume it started off as a numerical value to match the board design and was
then simply carried off to the PCI cards as well.

qcom,ath11k-qmi-hw-id is fine by me, will just expand the description to make
it clear.

Regards,
Robert

>
> Best regards,
> Krzysztof
Kalle Valo June 27, 2022, 10:26 a.m. UTC | #5
Robert Marko <robimarko@gmail.com> writes:

> bus + qmi-chip-id + qmi-board-id and optionally the variant are currently
> used for identifying the correct board data file.
>
> This however is sometimes not enough as all of the IPQ8074 boards that I
> have access to dont have the qmi-board-id properly fused and simply return
> the default value of 0xFF.
>
> So, to provide the correct qmi-board-id add a new DT property that allows
> the qmi-board-id to be overridden from DTS in cases where its not set.
> This is what vendors have been doing in the stock firmwares that were
> shipped on boards I have.

What's wrong with using 0xff? Ie. something like this:

bus=ahb,qmi-chip-id=0,qmi-board-id=255,variant=foo

Or maybe even just skip qmi-board-id entirely if it's not supported? So
that the board file string would be something like:

bus=ahb,qmi-chip-id=0,variant=foo

I really would like to avoid adding more DT properties unless it's
absolutely critical.
Robert Marko June 27, 2022, 10:30 a.m. UTC | #6
On Mon, 27 Jun 2022 at 12:27, Kalle Valo <kvalo@kernel.org> wrote:
>
> Robert Marko <robimarko@gmail.com> writes:
>
> > bus + qmi-chip-id + qmi-board-id and optionally the variant are currently
> > used for identifying the correct board data file.
> >
> > This however is sometimes not enough as all of the IPQ8074 boards that I
> > have access to dont have the qmi-board-id properly fused and simply return
> > the default value of 0xFF.
> >
> > So, to provide the correct qmi-board-id add a new DT property that allows
> > the qmi-board-id to be overridden from DTS in cases where its not set.
> > This is what vendors have been doing in the stock firmwares that were
> > shipped on boards I have.
>
> What's wrong with using 0xff? Ie. something like this:
>
> bus=ahb,qmi-chip-id=0,qmi-board-id=255,variant=foo
>
> Or maybe even just skip qmi-board-id entirely if it's not supported? So
> that the board file string would be something like:
>
> bus=ahb,qmi-chip-id=0,variant=foo
>
> I really would like to avoid adding more DT properties unless it's
> absolutely critical.

Well, I suppose that due to the variant property we can avoid "correcting" the
qmi-board-id

Regards,
Robert
>
> --
> https://patchwork.kernel.org/project/linux-wireless/list/
>
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
index a677b056f112..fe6aafdab9d4 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
@@ -41,6 +41,14 @@  properties:
         * reg
         * reg-names
 
+  qcom,ath11k-board-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Board ID to override the one returned by the firmware or the default
+      0xff if it was not set by the vendor at all.
+      It is used along the ath11k-calibration-variant to mach the correct
+      calibration data from board-2.bin.
+
   qcom,ath11k-calibration-variant:
     $ref: /schemas/types.yaml#/definitions/string
     description: