* [PATCH RFC 0/3] Allow DT boards to disable WCN7850 hardware rfkill
@ 2026-10-03 9:15 Franz
2026-10-03 9:15 ` [PATCH RFC 1/3] dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill Franz
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Franz @ 2026-10-03 9:15 UTC (permalink / raw)
To: Jeff Johnson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio
Cc: Johannes Berg, Abel Vesa, ath12k, linux-wireless, devicetree,
linux-arm-msm, linux-kernel
On the Microsoft Surface Pro 11 (X1E80100, board "denali"), the WCN7850
hardware rfkill input reads as "radio off". ath12k turns on hardware
rfkill handling, so Wi-Fi stays hard-blocked:
iwd: Error bringing interface 4 up: Operation not possible due to RF-kill
ACPI platforms can already turn this off (ath12k_acpi_get_disable_rfkill()),
but DT-based boards have no way to. This series adds a boolean
"disable-rfkill" property to the ath12k binding, makes ath12k honour
it, and sets it on the Surface Pro 11. Out-of-tree Surface Pro 11
kernels already ship an equivalent change.
This is an RFC mainly because of the property itself. Is a generic
"disable-rfkill" acceptable, or would you prefer a vendor-prefixed
name, or a different way to describe a board whose rfkill line is not
usable?
Testing: next-20260929 on a Surface Pro 11, with the ath12k change and
the property added to the installed DTB with fdtput. The interface
comes up and connects (5 GHz, 160 MHz). The DTS change builds, and the
built DTB carries the property. dt_binding_check / dtbs_check were not
run, because dtschema is not installed here.
On this machine the endpoint is only enumerated with "power: sequencing:
qcom-wcn: power off WLAN at probe", sent separately as a fix for
b921aa3f8dec.
This series was prepared with the help of an AI coding assistant
(Claude): finding the cause, writing the code and the changelogs. I
reviewed it and tested it on the hardware.
Franz (3):
dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill
wifi: ath12k: honour disable-rfkill from the device tree
arm64: dts: qcom: x1-microsoft-denali: disable WCN7850 hardware rfkill
.../devicetree/bindings/net/wireless/qcom,ath12k.yaml | 7 +++++++
arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi | 2 ++
drivers/net/wireless/ath/ath12k/core.c | 3 +++
3 files changed, 12 insertions(+)
base-commit: 6474fa070f2b8013b4b87350b775b8c3be6e8aac
prerequisite-patch-id: aafe3fac38f4020441979665509928f8cc832095
--
2.56.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH RFC 1/3] dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill
2026-10-03 9:15 [PATCH RFC 0/3] Allow DT boards to disable WCN7850 hardware rfkill Franz
@ 2026-10-03 9:15 ` Franz
2026-10-03 9:27 ` Krzysztof Kozlowski
2026-10-03 9:15 ` [PATCH RFC 2/3] wifi: ath12k: honour disable-rfkill from the device tree Franz
2026-10-03 9:15 ` [PATCH RFC 3/3] arm64: dts: qcom: x1-microsoft-denali: disable WCN7850 hardware rfkill Franz
2 siblings, 1 reply; 6+ messages in thread
From: Franz @ 2026-10-03 9:15 UTC (permalink / raw)
To: Jeff Johnson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio
Cc: Johannes Berg, Abel Vesa, ath12k, linux-wireless, devicetree,
linux-arm-msm, linux-kernel
Some boards do not wire the WCN7850 hardware rfkill input, or wire it so
that it always reads as "radio off". On the Microsoft Surface Pro 11
(X1E80100), ath12k enables hardware rfkill handling and the interface
ends up hard-blocked for good.
ACPI platforms can already turn this off through a firmware setting
that ath12k reads (ath12k_acpi_get_disable_rfkill()). Add a boolean
property so that DT-based boards can describe the same thing.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Franz <franzelfranzel@gmail.com>
---
.../devicetree/bindings/net/wireless/qcom,ath12k.yaml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml
index dc68dd599..d56050e77 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k.yaml
@@ -27,6 +27,13 @@ properties:
If present, a board or platform specific string used to lookup
usecase-specific firmware files for the device.
+ disable-rfkill:
+ type: boolean
+ description:
+ The device's hardware rfkill input is not usable on this board (for
+ example, it is not wired and reads as "radio off"). The driver must
+ not enable hardware rfkill handling.
+
vddaon-supply:
description: VDD_AON supply regulator handle
--
2.56.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH RFC 2/3] wifi: ath12k: honour disable-rfkill from the device tree
2026-10-03 9:15 [PATCH RFC 0/3] Allow DT boards to disable WCN7850 hardware rfkill Franz
2026-10-03 9:15 ` [PATCH RFC 1/3] dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill Franz
@ 2026-10-03 9:15 ` Franz
2026-10-03 9:28 ` Krzysztof Kozlowski
2026-10-03 9:15 ` [PATCH RFC 3/3] arm64: dts: qcom: x1-microsoft-denali: disable WCN7850 hardware rfkill Franz
2 siblings, 1 reply; 6+ messages in thread
From: Franz @ 2026-10-03 9:15 UTC (permalink / raw)
To: Jeff Johnson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio
Cc: Johannes Berg, Abel Vesa, ath12k, linux-wireless, devicetree,
linux-arm-msm, linux-kernel
ath12k_core_rfkill_config() skips the hardware rfkill setup only when
ACPI says so. DT-based boards have no equivalent. On the Microsoft
Surface Pro 11 (X1E80100), the WCN7850 rfkill input reads as "radio
off", so the interface is hard-blocked:
iwd: Error bringing interface 4 up: Operation not possible due to RF-kill
Also skip the setup when the device's DT node has "disable-rfkill". The
PCI core attaches the node to the pci_dev, so ab->dev->of_node sees it.
Tested on a Surface Pro 11 with next-20260929 and the matching DT
change: the interface comes up and connects (5 GHz, 160 MHz).
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Franz <franzelfranzel@gmail.com>
---
drivers/net/wireless/ath/ath12k/core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 0c72948f3..8cac84917 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -83,6 +83,9 @@ static int ath12k_core_rfkill_config(struct ath12k_base *ab)
if (ath12k_acpi_get_disable_rfkill(ab))
return 0;
+ if (of_property_read_bool(ab->dev->of_node, "disable-rfkill"))
+ return 0;
+
for (i = 0; i < ab->num_radios; i++) {
ar = ab->pdevs[i].ar;
--
2.56.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH RFC 3/3] arm64: dts: qcom: x1-microsoft-denali: disable WCN7850 hardware rfkill
2026-10-03 9:15 [PATCH RFC 0/3] Allow DT boards to disable WCN7850 hardware rfkill Franz
2026-10-03 9:15 ` [PATCH RFC 1/3] dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill Franz
2026-10-03 9:15 ` [PATCH RFC 2/3] wifi: ath12k: honour disable-rfkill from the device tree Franz
@ 2026-10-03 9:15 ` Franz
2 siblings, 0 replies; 6+ messages in thread
From: Franz @ 2026-10-03 9:15 UTC (permalink / raw)
To: Jeff Johnson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio
Cc: Johannes Berg, Abel Vesa, ath12k, linux-wireless, devicetree,
linux-arm-msm, linux-kernel
The WCN7850 hardware rfkill input reads as "radio off" on the Surface
Pro 11, which keeps Wi-Fi hard-blocked. Mark it as unusable.
Tested by adding the property to the installed DTB with fdtput, on
next-20260929 with the matching ath12k change.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Franz <franzelfranzel@gmail.com>
---
arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
index a71c29762..36592b8ed 100644
--- a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
@@ -1009,6 +1009,8 @@ wifi@0 {
vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+
+ disable-rfkill;
};
};
--
2.56.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill
2026-10-03 9:15 ` [PATCH RFC 1/3] dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill Franz
@ 2026-10-03 9:27 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-03 9:27 UTC (permalink / raw)
To: Franz, Jeff Johnson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Johannes Berg, Abel Vesa, ath12k, linux-wireless, devicetree,
linux-arm-msm, linux-kernel
On 03/10/2026 11:15, Franz wrote:
> Some boards do not wire the WCN7850 hardware rfkill input, or wire it so
> that it always reads as "radio off". On the Microsoft Surface Pro 11
> (X1E80100), ath12k enables hardware rfkill handling and the interface
> ends up hard-blocked for good.
>
> ACPI platforms can already turn this off through a firmware setting
> that ath12k reads (ath12k_acpi_get_disable_rfkill()). Add a boolean
> property so that DT-based boards can describe the same thing.
>
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Franz <franzelfranzel@gmail.com>
Please do not duplicate work but build on top or reference previous
discussions.
https://lore.kernel.org/all/20251220-surface-sp11-for-next-v5-3-16065bef8ef3@gmail.com/
https://lore.kernel.org/all/20251201011457.17422-7-daleyo@gmail.com/
and some more
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC 2/3] wifi: ath12k: honour disable-rfkill from the device tree
2026-10-03 9:15 ` [PATCH RFC 2/3] wifi: ath12k: honour disable-rfkill from the device tree Franz
@ 2026-10-03 9:28 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-03 9:28 UTC (permalink / raw)
To: Franz, Jeff Johnson, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Andersson, Konrad Dybcio
Cc: Johannes Berg, Abel Vesa, ath12k, linux-wireless, devicetree,
linux-arm-msm, linux-kernel
On 03/10/2026 11:15, Franz wrote:
> ath12k_core_rfkill_config() skips the hardware rfkill setup only when
> ACPI says so. DT-based boards have no equivalent. On the Microsoft
> Surface Pro 11 (X1E80100), the WCN7850 rfkill input reads as "radio
> off", so the interface is hard-blocked:
>
> iwd: Error bringing interface 4 up: Operation not possible due to RF-kill
>
> Also skip the setup when the device's DT node has "disable-rfkill". The
> PCI core attaches the node to the pci_dev, so ab->dev->of_node sees it.
>
> Tested on a Surface Pro 11 with next-20260929 and the matching DT
> change: the interface comes up and connects (5 GHz, 160 MHz).
>
> Assisted-by: Claude:claude-opus-5-5
LLM, see docs.
> Signed-off-by: Franz <franzelfranzel@gmail.com>
Please read submitting patches document carefully to understand what is
needed when sending patch, e.g. what you need to certify with your full
name.
Your LLM cannot certify anything.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-10-03 9:29 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-03 9:15 [PATCH RFC 0/3] Allow DT boards to disable WCN7850 hardware rfkill Franz
2026-10-03 9:15 ` [PATCH RFC 1/3] dt-bindings: net: wireless: qcom,ath12k: add disable-rfkill Franz
2026-10-03 9:27 ` Krzysztof Kozlowski
2026-10-03 9:15 ` [PATCH RFC 2/3] wifi: ath12k: honour disable-rfkill from the device tree Franz
2026-10-03 9:28 ` Krzysztof Kozlowski
2026-10-03 9:15 ` [PATCH RFC 3/3] arm64: dts: qcom: x1-microsoft-denali: disable WCN7850 hardware rfkill Franz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®