From: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
To: "François Roux" <franzelfranzel@gmail.com>,
"Jeff Johnson" <jjohnson@kernel.org>
Cc: "Manivannan Sadhasivam" <mani@kernel.org>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Konrad Dybcio" <konradybcio@kernel.org>,
"Bjorn Andersson" <andersson@kernel.org>,
"Jérôme de Bretagne" <jerome.debretagne@gmail.com>,
"Dale Whinham" <daleyo@gmail.com>,
ath12k@lists.infradead.org, linux-wireless@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] wifi: ath12k: skip hardware rfkill setup on Microsoft Surface Pro 11
Date: Mon, 5 Oct 2026 07:37:46 -0700 [thread overview]
Message-ID: <d791e70f-9c3f-4916-94de-8d76517339bf@oss.qualcomm.com> (raw)
In-Reply-To: <20261004165132.4313-1-franzelfranzel@gmail.com>
On 10/4/2026 9:51 AM, François Roux wrote:
> 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;
> +
my preference would to to break this out into a separate table-driven function
so that if other devices have this issue they would just need to add to the table.
reference ath11k_core_get_usecase_firmware() as a table-driven solution for a
different device-specific problem (selects different firmware for specific
compatibles).
> for (i = 0; i < ab->num_radios; i++) {
> ar = ab->pdevs[i].ar;
>
>
> base-commit: 6474fa070f2b8013b4b87350b775b8c3be6e8aac
> prerequisite-patch-id: aafe3fac38f4020441979665509928f8cc832095
next prev parent reply other threads:[~2026-10-05 14:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-04 16:51 [PATCH] wifi: ath12k: skip hardware rfkill setup on Microsoft Surface Pro 11 François Roux
2026-10-05 14:37 ` Jeff Johnson [this message]
2026-10-05 16:50 ` Dale Whinham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d791e70f-9c3f-4916-94de-8d76517339bf@oss.qualcomm.com \
--to=jeff.johnson@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=ath12k@lists.infradead.org \
--cc=daleyo@gmail.com \
--cc=franzelfranzel@gmail.com \
--cc=jerome.debretagne@gmail.com \
--cc=jjohnson@kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=mani@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.