[PATCH 0/2] platform/x86: asus-laptop: Fix Wi-Fi hard RF-kill on Pegatron Lucid
From: Pavel Kossenko (kotekompotek)
Date: Sat Oct 10 2026 - 15:39:07 EST
On the Pegatron Lucid tablet the built-in Intel Centrino Advanced-N +
WiMAX 6250 (8086:0087, subsystem 8086:1301) is permanently hard-blocked
under Linux, while the same unit works under Windows. The driver and
firmware load, wlp2s0 is created, and all pega-* rfkill switches are
unblocked, but iwlwifi reports:
iwlwifi 0000:02:00.0: reporting RF_KILL (radio disabled)
and "rfkill unblock all" does not help. There is no physical switch
and no BIOS option.
The Lucid DSDT implements \_SB.ATKD.ENPR/DAPR for radio ids 0, 1, 2
and 6. Reading the GPIO level register (GPBS + 0x0C, GPBS = 0x480) at
boot shows the lines that asus-laptop drives (GP18 WLAN, GP17 BT,
GP20 WWAN) low/enabled, but GP27 (id 6, EC bit WMHD) high/disabled.
asus-laptop never touches id 6. Calling ENPR(6) via acpi_call
immediately toggles the card's RF-kill bit and Wi-Fi works.
Patch 1 fixes a pre-existing leak: asus_rfkill_exit() never
unregisters asus->wimax. Patch 2 needs it, since it reuses that
struct for the new pega-wimax switch.
Patch 2 registers id 6 as a "pega-wimax" rfkill switch, following the
existing pega-wlan/pega-bt/pega-wwan pattern.
Testing (Pegatron Lucid, Debian 13, kernel 6.12.111+deb13-amd64, the
patched asus-laptop.c built out of tree; the two hunks apply to 6.12
with 2-line offsets):
- Clean boot without any userspace workaround: pega-wimax is
registered unblocked, phy0 is no longer hard-blocked.
- wlp2s0 associates with a WPA2 AP (-43 dBm, HT40), gets a DHCP
lease, and downloads 38 MB at 4.7 MB/s.
- "rfkill block" on pega-wimax hard-blocks phy0 ("RF_KILL bit
toggled to disable radio"), and unblock re-enables it.
- rmmod asus_laptop removes all four pega-* rfkill devices
(previously pega-wimax was not freed); modprobe re-registers them
with no warnings.
Not tested: patch 1 on a non-Lucid Asus laptop that implements
WM_RSTS (asus-wimax). I don't have such hardware; the change there is
the same asus_rfkill_terminate() call exercised above.
Only the 6250 combo card was available to me, so I can't say whether
id 6 also gates other cards fitted to Lucid units. Registering the
switch unblocked matches what the Windows tools apparently do.
Tool use, per Documentation/process/generated-content.rst: the
investigation (DSDT analysis, GPIO register reads), both patches and
these changelogs were produced with an AI coding assistant (Claude
Opus 5.5) working on the tablet over SSH at my direction. I reviewed
the changes, ran the tests above on my device, and can answer
questions about them.
Based on pdx86/for-next (98f039265e58).
Pavel Kossenko (kotekompotek) (2):
platform/x86: asus-laptop: Unregister the wimax rfkill on exit
platform/x86: asus-laptop: Add WiMAX rfkill switch for Pegatron Lucid
drivers/platform/x86/asus-laptop.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
--
2.47.0.windows.2