mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] wifi: ath12k: skip hardware rfkill setup on Microsoft Surface Pro 11
@ 2026-10-04 16:51 François Roux
  0 siblings, 0 replies; only message in thread
From: François Roux @ 2026-10-04 16:51 UTC (permalink / raw)
  To: Jeff Johnson
  Cc: Manivannan Sadhasivam, Krzysztof Kozlowski, Konrad Dybcio,
	Bjorn Andersson, Jérôme de Bretagne, Dale Whinham,
	ath12k, linux-wireless, linux-arm-msm, linux-kernel

On the Microsoft Surface Pro 11 (X1E80100, "microsoft,denali"), the
WCN7850 hardware rfkill input reads as "radio off" and the OS has no
way to control it. ath12k enables 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 opt out through ath12k_acpi_get_disable_rfkill(),
but DT platforms cannot. A DT property was proposed for this and
rejected, because it describes what the OS should do rather than the
hardware. The suggested alternative was to handle this machine in the
driver, keyed on the board compatible and the device ID, until a
connector binding can describe a broken rfkill line. Do that.

Tested on a Surface Pro 11 with next-20260929, booted with the
unmodified mainline DTB: the interface is no longer blocked and
connects.

Link: https://lore.kernel.org/all/2ixwny6hzumlqmok5cjwutvtk7nzmx4t3dhxc44ao4l2u755pj@n6m7jyxf2o62/
Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
Assisted-by: LLM
Signed-off-by: François Roux <franzelfranzel@gmail.com>
---
This replaces my RFC series "Allow DT boards to disable WCN7850 hardware
rfkill", which duplicated the disable-rfkill DT property already proposed
and rejected in the Surface Pro 11 series:

https://lore.kernel.org/all/20261003091509.4822-1-franzelfranzel@gmail.com/
https://lore.kernel.org/all/20251220-surface-sp11-for-next-v5-2-16065bef8ef3@gmail.com/

The code is Manivannan's suggestion from that thread. Jérôme reported
there that the Surface Laptop 7 (microsoft,romulus13/15) has the same
problem. I left it out because I cannot test it.

 drivers/net/wireless/ath/ath12k/core.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 0c72948f3..dc41a2a7d 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -83,6 +83,16 @@ static int ath12k_core_rfkill_config(struct ath12k_base *ab)
 	if (ath12k_acpi_get_disable_rfkill(ab))
 		return 0;
 
+	/*
+	 * TODO: On the Microsoft Surface Pro 11, the OS cannot control the
+	 * WCN7850 hardware rfkill input, which reads as "radio off". Keep
+	 * hardware rfkill disabled there. Ideally this would come from the
+	 * connector node of the board DT, but that binding does not exist
+	 * yet, so handle it in the driver for now.
+	 */
+	if (of_machine_is_compatible("microsoft,denali") && ab->id.device == 0x1107)
+		return 0;
+
 	for (i = 0; i < ab->num_radios; i++) {
 		ar = ab->pdevs[i].ar;
 

base-commit: 6474fa070f2b8013b4b87350b775b8c3be6e8aac
prerequisite-patch-id: aafe3fac38f4020441979665509928f8cc832095
-- 
2.56.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-04 16:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-04 16:51 [PATCH] wifi: ath12k: skip hardware rfkill setup on Microsoft Surface Pro 11 François Roux

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®