* [PATCH v2 2/2] dt-bindings: wireless: ath12k: drop qcom,ath12k-calibration-variant
2026-06-30 13:30 [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Andrew LaMarche
@ 2026-06-30 13:30 ` Andrew LaMarche
2026-07-01 7:05 ` Krzysztof Kozlowski
2026-07-02 9:32 ` [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Baochen Qiang
` (4 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Andrew LaMarche @ 2026-06-30 13:30 UTC (permalink / raw)
To: Johannes Berg, Jeff Johnson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-wireless, devicetree, ath12k, linux-kernel, Andrew LaMarche,
Ernest Van Hoecke
The ath12k-wsi binding documentation describes using the
generation-specific qcom,ath12k-calibration-variant binding as well as
the generation-agnostic qcom,calibration-variant binding to load
board-specific calibration data from the device tree. However, the
driver never implemented either of these.
Given that no devices currently supported use
qcom,ath12k-calibration-variant and the previous patch implements
qcom,calibration-variant, drop the generation-specific version from the
binding to prevent future confusion.
Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
---
.../devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml | 7 -------
1 file changed, 7 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
index 589960144fe1..fa64c8aa56f5 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml
@@ -58,13 +58,6 @@ properties:
String to uniquely identify variant of the calibration data for designs
with colliding bus and device ids
- qcom,ath12k-calibration-variant:
- $ref: /schemas/types.yaml#/definitions/string
- deprecated: true
- description:
- String to uniquely identify variant of the calibration data for designs
- with colliding bus and device ids
-
qcom,wsi-controller:
$ref: /schemas/types.yaml#/definitions/flag
description:
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 2/2] dt-bindings: wireless: ath12k: drop qcom,ath12k-calibration-variant
2026-06-30 13:30 ` [PATCH v2 2/2] dt-bindings: wireless: ath12k: drop qcom,ath12k-calibration-variant Andrew LaMarche
@ 2026-07-01 7:05 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-01 7:05 UTC (permalink / raw)
To: Andrew LaMarche
Cc: Johannes Berg, Jeff Johnson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On Tue, Jun 30, 2026 at 01:30:01PM +0000, Andrew LaMarche wrote:
> The ath12k-wsi binding documentation describes using the
> generation-specific qcom,ath12k-calibration-variant binding as well as
> the generation-agnostic qcom,calibration-variant binding to load
> board-specific calibration data from the device tree. However, the
> driver never implemented either of these.
>
> Given that no devices currently supported use
> qcom,ath12k-calibration-variant and the previous patch implements
> qcom,calibration-variant, drop the generation-specific version from the
> binding to prevent future confusion.
>
> Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
> ---
> .../devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml | 7 -------
> 1 file changed, 7 deletions(-)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree
2026-06-30 13:30 [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Andrew LaMarche
2026-06-30 13:30 ` [PATCH v2 2/2] dt-bindings: wireless: ath12k: drop qcom,ath12k-calibration-variant Andrew LaMarche
@ 2026-07-02 9:32 ` Baochen Qiang
2026-08-31 19:41 ` Jeff Johnson
2026-08-31 20:09 ` Jeff Johnson
` (3 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Baochen Qiang @ 2026-07-02 9:32 UTC (permalink / raw)
To: Andrew LaMarche, Johannes Berg, Jeff Johnson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On 6/30/2026 9:30 PM, Andrew LaMarche wrote:
> ath10k and ath11k support reading calibration variants from the device
> tree to locate the correct Board Description File (BDF). The ath12k-wsi
> binding already describes using qcom,calibration-variant but it is not
> implemented in the driver.
>
> Many ath12k designs expose all the radios under a single phy, each of
> which typically require a separate BDF. Without this, the radios may not
> come up or will not be calibrated correctly.
>
> Fix this by parsing the device tree for the generation-agnostic
> qcom,calibration-variant. This allows the driver to properly select,
> read and apply the correct BDF.
>
> Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
> ---
> Changes in v2:
> - Drop ath12k-specific binding qcom,ath12k-calibration-variant in favor
> of generation agnostic qcom,calibration-variant.
> - Link to v1: https://lore.kernel.org/all/20260131003222.2011259-1-andrewjlamarche@gmail.com
> ---
> drivers/net/wireless/ath/ath12k/core.c | 22 ++++++++++++++++++++++
> drivers/net/wireless/ath/ath12k/qmi.c | 4 ++++
> 2 files changed, 26 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
> index 742d4fd1b598..52c28864c63c 100644
> --- a/drivers/net/wireless/ath/ath12k/core.c
> +++ b/drivers/net/wireless/ath/ath12k/core.c
> @@ -812,6 +812,28 @@ int ath12k_core_check_smbios(struct ath12k_base *ab)
> return 0;
> }
>
> +int ath12k_core_check_dt(struct ath12k_base *ab)
> +{
> + size_t max_len = sizeof(ab->qmi.target.bdf_ext);
> + const char *variant = NULL;
> + struct device_node *node;
> +
> + node = ab->dev->of_node;
> + if (!node)
> + return -ENOENT;
> +
> + of_property_read_string(node, "qcom,calibration-variant",
> + &variant);
> + if (!variant)
> + return -ENODATA;
> +
> + if (strscpy(ab->qmi.target.bdf_ext, variant, max_len) < 0)
> + ath12k_dbg(ab, ATH12K_DBG_BOOT,
> + "bdf variant string is longer than the buffer can accommodate (variant: %s)\n", variant);
> +
> + return 0;
> +}
> +
> static int ath12k_core_soc_create(struct ath12k_base *ab)
> {
> int ret;
> diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
> index fd762b5d7bb5..3cf39ae06fd3 100644
> --- a/drivers/net/wireless/ath/ath12k/qmi.c
> +++ b/drivers/net/wireless/ath/ath12k/qmi.c
> @@ -2945,6 +2945,10 @@ int ath12k_qmi_request_target_cap(struct ath12k_base *ab)
> if (r)
> ath12k_dbg(ab, ATH12K_DBG_QMI, "SMBIOS bdf variant name not set.\n");
>
> + r = ath12k_core_check_dt(ab);
I understand there are already some variant exacting helper (ACPI, SMBIOS) being called
here, but they really should not. After all, how could a qmi message relates to ACPI or
SMBIOS?
I'd like firstly move the existing helpers out and then add the new DT helper.
> + if (r)> + ath12k_dbg(ab, ATH12K_DBG_QMI, "DT bdf variant name not set.\n");
> +
> r = ath12k_acpi_start(ab);
> if (r)
> /* ACPI is optional so continue in case of an error */
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree
2026-07-02 9:32 ` [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Baochen Qiang
@ 2026-08-31 19:41 ` Jeff Johnson
0 siblings, 0 replies; 10+ messages in thread
From: Jeff Johnson @ 2026-08-31 19:41 UTC (permalink / raw)
To: Baochen Qiang, Andrew LaMarche, Johannes Berg, Jeff Johnson,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On 7/2/2026 2:32 AM, Baochen Qiang wrote:
> On 6/30/2026 9:30 PM, Andrew LaMarche wrote:
>> diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
>> index fd762b5d7bb5..3cf39ae06fd3 100644
>> --- a/drivers/net/wireless/ath/ath12k/qmi.c
>> +++ b/drivers/net/wireless/ath/ath12k/qmi.c
>> @@ -2945,6 +2945,10 @@ int ath12k_qmi_request_target_cap(struct ath12k_base *ab)
>> if (r)
>> ath12k_dbg(ab, ATH12K_DBG_QMI, "SMBIOS bdf variant name not set.\n");
>>
>> + r = ath12k_core_check_dt(ab);
>
> I understand there are already some variant exacting helper (ACPI, SMBIOS) being called
> here, but they really should not. After all, how could a qmi message relates to ACPI or
> SMBIOS?
>
> I'd like firstly move the existing helpers out and then add the new DT helper.
This code is exactly following the pattern from ath11k. So I'd like to have
this land, and then we can think about how we can clean this up, especially
since folks are waiting for this.
>
>> + if (r)> + ath12k_dbg(ab, ATH12K_DBG_QMI, "DT bdf variant name not set.\n");
>> +
>> r = ath12k_acpi_start(ab);
>> if (r)
>> /* ACPI is optional so continue in case of an error */
>
/jeff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree
2026-06-30 13:30 [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Andrew LaMarche
2026-06-30 13:30 ` [PATCH v2 2/2] dt-bindings: wireless: ath12k: drop qcom,ath12k-calibration-variant Andrew LaMarche
2026-07-02 9:32 ` [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Baochen Qiang
@ 2026-08-31 20:09 ` Jeff Johnson
2026-09-01 1:52 ` Baochen Qiang
2026-09-01 1:52 ` Baochen Qiang
` (2 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Jeff Johnson @ 2026-08-31 20:09 UTC (permalink / raw)
To: Andrew LaMarche, Johannes Berg, Jeff Johnson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On 6/30/2026 6:30 AM, Andrew LaMarche wrote:
> +int ath12k_core_check_dt(struct ath12k_base *ab)
> +{
> + size_t max_len = sizeof(ab->qmi.target.bdf_ext);
> + const char *variant = NULL;
> + struct device_node *node;
> +
> + node = ab->dev->of_node;
> + if (!node)
> + return -ENOENT;
> +
> + of_property_read_string(node, "qcom,calibration-variant",
I've fixed the following in the pending branch:
● checkpatch.pl: 126: CHECK: Alignment should match open parenthesis
> + &variant);
> + if (!variant)
> + return -ENODATA;
> +
> + if (strscpy(ab->qmi.target.bdf_ext, variant, max_len) < 0)
> + ath12k_dbg(ab, ATH12K_DBG_BOOT,
> + "bdf variant string is longer than the buffer can accommodate (variant: %s)\n", variant);
Also:
● checkpatch.pl: 132: WARNING: line length of 121 exceeds 100 columns
● checkpatch.pl: 132: CHECK: Alignment should match open parenthesis
https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/commit/?id=c9d2d0d1c4a0faaba5f57e3c3350707db9f4f3f3
> +
> + return 0;
> +}
> +
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree
2026-08-31 20:09 ` Jeff Johnson
@ 2026-09-01 1:52 ` Baochen Qiang
0 siblings, 0 replies; 10+ messages in thread
From: Baochen Qiang @ 2026-09-01 1:52 UTC (permalink / raw)
To: Jeff Johnson, Andrew LaMarche, Johannes Berg, Jeff Johnson,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On 9/1/2026 4:09 AM, Jeff Johnson wrote:
> On 6/30/2026 6:30 AM, Andrew LaMarche wrote:
>> +int ath12k_core_check_dt(struct ath12k_base *ab)
>> +{
>> + size_t max_len = sizeof(ab->qmi.target.bdf_ext);
>> + const char *variant = NULL;
>> + struct device_node *node;
>> +
>> + node = ab->dev->of_node;
>> + if (!node)
>> + return -ENOENT;
>> +
>> + of_property_read_string(node, "qcom,calibration-variant",
>
> I've fixed the following in the pending branch:
> ● checkpatch.pl: 126: CHECK: Alignment should match open parenthesis
>
>> + &variant);
>> + if (!variant)
>> + return -ENODATA;
>> +
>> + if (strscpy(ab->qmi.target.bdf_ext, variant, max_len) < 0)
>> + ath12k_dbg(ab, ATH12K_DBG_BOOT,
>> + "bdf variant string is longer than the buffer can accommodate (variant: %s)\n", variant);
>
> Also:
> ● checkpatch.pl: 132: WARNING: line length of 121 exceeds 100 columns
> ● checkpatch.pl: 132: CHECK: Alignment should match open parenthesis
>
> https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/commit/?id=c9d2d0d1c4a0faaba5f57e3c3350707db9f4f3f3
looks good to me.
>
>> +
>> + return 0;
>> +}
>> +
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree
2026-06-30 13:30 [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Andrew LaMarche
` (2 preceding siblings ...)
2026-08-31 20:09 ` Jeff Johnson
@ 2026-09-01 1:52 ` Baochen Qiang
2026-09-01 12:32 ` Rameshkumar Sundaram
2026-09-03 19:02 ` Jeff Johnson
5 siblings, 0 replies; 10+ messages in thread
From: Baochen Qiang @ 2026-09-01 1:52 UTC (permalink / raw)
To: Andrew LaMarche, Johannes Berg, Jeff Johnson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On 6/30/2026 9:30 PM, Andrew LaMarche wrote:
> ath10k and ath11k support reading calibration variants from the device
> tree to locate the correct Board Description File (BDF). The ath12k-wsi
> binding already describes using qcom,calibration-variant but it is not
> implemented in the driver.
>
> Many ath12k designs expose all the radios under a single phy, each of
> which typically require a separate BDF. Without this, the radios may not
> come up or will not be calibrated correctly.
>
> Fix this by parsing the device tree for the generation-agnostic
> qcom,calibration-variant. This allows the driver to properly select,
> read and apply the correct BDF.
>
> Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree
2026-06-30 13:30 [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Andrew LaMarche
` (3 preceding siblings ...)
2026-09-01 1:52 ` Baochen Qiang
@ 2026-09-01 12:32 ` Rameshkumar Sundaram
2026-09-03 19:02 ` Jeff Johnson
5 siblings, 0 replies; 10+ messages in thread
From: Rameshkumar Sundaram @ 2026-09-01 12:32 UTC (permalink / raw)
To: Andrew LaMarche, Johannes Berg, Jeff Johnson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On 6/30/2026 7:00 PM, Andrew LaMarche wrote:
> ath10k and ath11k support reading calibration variants from the device
> tree to locate the correct Board Description File (BDF). The ath12k-wsi
> binding already describes using qcom,calibration-variant but it is not
> implemented in the driver.
>
> Many ath12k designs expose all the radios under a single phy, each of
> which typically require a separate BDF. Without this, the radios may not
> come up or will not be calibrated correctly.
>
> Fix this by parsing the device tree for the generation-agnostic
> qcom,calibration-variant. This allows the driver to properly select,
> read and apply the correct BDF.
>
> Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Reviewed-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree
2026-06-30 13:30 [PATCH v2 1/2] wifi: ath12k: support calibration-variant from device tree Andrew LaMarche
` (4 preceding siblings ...)
2026-09-01 12:32 ` Rameshkumar Sundaram
@ 2026-09-03 19:02 ` Jeff Johnson
5 siblings, 0 replies; 10+ messages in thread
From: Jeff Johnson @ 2026-09-03 19:02 UTC (permalink / raw)
To: Johannes Berg, Jeff Johnson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Andrew LaMarche
Cc: linux-wireless, devicetree, ath12k, linux-kernel,
Ernest Van Hoecke
On Tue, 30 Jun 2026 13:30:00 +0000, Andrew LaMarche wrote:
> ath10k and ath11k support reading calibration variants from the device
> tree to locate the correct Board Description File (BDF). The ath12k-wsi
> binding already describes using qcom,calibration-variant but it is not
> implemented in the driver.
>
> Many ath12k designs expose all the radios under a single phy, each of
> which typically require a separate BDF. Without this, the radios may not
> come up or will not be calibrated correctly.
>
> [...]
Applied, thanks!
[1/2] wifi: ath12k: support calibration-variant from device tree
commit: 06cca100ad083609ca9cc2d1f692546369144189
[2/2] dt-bindings: wireless: ath12k: drop qcom,ath12k-calibration-variant
commit: e6c2d73f27b3948cabec1017c9443fba24f1dcc1
Best regards,
--
Jeff Johnson <jeff.johnson@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 10+ messages in thread