* [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID @ 2022-06-21 13:53 Robert Marko 2022-06-21 13:53 ` [PATCH 2/2] ath11k: search DT for qcom,ath11k-board-id Robert Marko ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Robert Marko @ 2022-06-21 13:53 UTC (permalink / raw) To: kvalo, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, devicetree, linux-kernel Cc: Robert Marko 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(+) 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: -- 2.36.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] ath11k: search DT for qcom,ath11k-board-id 2022-06-21 13:53 [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Robert Marko @ 2022-06-21 13:53 ` Robert Marko 2022-06-21 15:58 ` [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Krzysztof Kozlowski 2022-06-27 10:26 ` Kalle Valo 2 siblings, 0 replies; 8+ messages in thread From: Robert Marko @ 2022-06-21 13:53 UTC (permalink / raw) To: kvalo, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, devicetree, linux-kernel Cc: Robert Marko 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 look for the qcom,ath11k-board-id property and use that. This is what vendors have been doing in the stock firmwares that were shipped on boards I have. It should be added to DTS like: wifi@c000000 { status = "okay"; qcom,ath11k-board-id = <658>; qcom,ath11k-calibration-variant = "Edgecore-EAP102"; }; Signed-off-by: Robert Marko <robimarko@gmail.com> --- drivers/net/wireless/ath/ath11k/qmi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c index 00136601cb7d..9d27b4968d10 100644 --- a/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c @@ -2172,12 +2172,14 @@ static int ath11k_qmi_request_device_info(struct ath11k_base *ab) static int ath11k_qmi_request_target_cap(struct ath11k_base *ab) { + struct device *dev = ab->dev; struct qmi_wlanfw_cap_req_msg_v01 req; struct qmi_wlanfw_cap_resp_msg_v01 resp; struct qmi_txn txn; int ret = 0; int r; char *fw_build_id; + unsigned int board_id; int fw_build_id_mask_len; memset(&req, 0, sizeof(req)); @@ -2219,7 +2221,9 @@ static int ath11k_qmi_request_target_cap(struct ath11k_base *ab) ab->qmi.target.chip_family = resp.chip_info.chip_family; } - if (resp.board_info_valid) + if (!of_property_read_u32(dev->of_node, "qcom,ath11k-board-id", &board_id)) + ab->qmi.target.board_id = board_id; + else if (resp.board_info_valid) ab->qmi.target.board_id = resp.board_info.board_id; else ab->qmi.target.board_id = 0xFF; -- 2.36.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID 2022-06-21 13:53 [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Robert Marko 2022-06-21 13:53 ` [PATCH 2/2] ath11k: search DT for qcom,ath11k-board-id Robert Marko @ 2022-06-21 15:58 ` Krzysztof Kozlowski 2022-06-21 18:47 ` Robert Marko 2022-06-27 10:26 ` Kalle Valo 2 siblings, 1 reply; 8+ messages in thread From: Krzysztof Kozlowski @ 2022-06-21 15:58 UTC (permalink / raw) To: Robert Marko, kvalo, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, devicetree, linux-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID 2022-06-21 15:58 ` [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Krzysztof Kozlowski @ 2022-06-21 18:47 ` Robert Marko 2022-06-22 14:55 ` Krzysztof Kozlowski 0 siblings, 1 reply; 8+ messages in thread From: Robert Marko @ 2022-06-21 18:47 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Kalle Valo, davem, edumazet, kuba, pabeni, Rob Herring, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, Devicetree List, open list 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID 2022-06-21 18:47 ` Robert Marko @ 2022-06-22 14:55 ` Krzysztof Kozlowski 2022-06-23 20:16 ` Robert Marko 0 siblings, 1 reply; 8+ messages in thread From: Krzysztof Kozlowski @ 2022-06-22 14:55 UTC (permalink / raw) To: Robert Marko Cc: Kalle Valo, davem, edumazet, kuba, pabeni, Rob Herring, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, Devicetree List, open list 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID 2022-06-22 14:55 ` Krzysztof Kozlowski @ 2022-06-23 20:16 ` Robert Marko 0 siblings, 0 replies; 8+ messages in thread From: Robert Marko @ 2022-06-23 20:16 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Kalle Valo, davem, Eric Dumazet, kuba, pabeni, Rob Herring, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, Devicetree List, open list 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID 2022-06-21 13:53 [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Robert Marko 2022-06-21 13:53 ` [PATCH 2/2] ath11k: search DT for qcom,ath11k-board-id Robert Marko 2022-06-21 15:58 ` [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Krzysztof Kozlowski @ 2022-06-27 10:26 ` Kalle Valo 2022-06-27 10:30 ` Robert Marko 2 siblings, 1 reply; 8+ messages in thread From: Kalle Valo @ 2022-06-27 10:26 UTC (permalink / raw) To: Robert Marko Cc: davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, devicetree, linux-kernel 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. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID 2022-06-27 10:26 ` Kalle Valo @ 2022-06-27 10:30 ` Robert Marko 0 siblings, 0 replies; 8+ messages in thread From: Robert Marko @ 2022-06-27 10:30 UTC (permalink / raw) To: Kalle Valo Cc: davem, Eric Dumazet, kuba, pabeni, Rob Herring, krzysztof.kozlowski+dt, ath11k, linux-wireless, netdev, Devicetree List, open list 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-06-27 10:30 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-06-21 13:53 [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Robert Marko 2022-06-21 13:53 ` [PATCH 2/2] ath11k: search DT for qcom,ath11k-board-id Robert Marko 2022-06-21 15:58 ` [PATCH 1/2] dt-bindings: net: wireless: ath11k: add new DT entry for board ID Krzysztof Kozlowski 2022-06-21 18:47 ` Robert Marko 2022-06-22 14:55 ` Krzysztof Kozlowski 2022-06-23 20:16 ` Robert Marko 2022-06-27 10:26 ` Kalle Valo 2022-06-27 10:30 ` Robert Marko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).