Re: [BUG] Redmi Book Pro 16 2024 platform_profile write fails on Linux 7.1.7
From: Anton Karasev
Date: Tue Sep 29 2026 - 21:54:48 EST
Hi Armin,
I have the same machine as Martiya (Redmi Book Pro 16 2024, DMI
XIAOMI / TM2309, BIOS RMAMT6B0P0B0B, which is the latest BIOS Xiaomi
publishes for this model). In case it is useful to have it on the list,
here is its full acpidump (all tables, acpidump -o):
https://bugzilla.kernel.org/attachment.cgi?id=310971
What the tables say about the Mifs interface on this BIOS, and what I
verified on the machine:
- The method is \_SB.PC00.WMID.WMAA, in the SSDT with OEM Table ID
XMCC1806. It implements only command 0x08 (GET and SET), 0x0a
subcommand 5, and 0x10 (GET subcommands 1-3, SET subcommand 2 only).
Other command IDs answer 0xE000, including WMI_FN_SYSTEM_AC_TYPE,
which your "Treat WMI_FN_SYSTEM_AC_TYPE as optional" patch now
handles; unhandled subcommands mostly return status 0.
- The SET branches set only the return code and leave the function id
at 0; only the GET branches fill it in. So on this BIOS "Detect failed
function calls" reports every SET as failed with -ENOMSG, although the
firmware applies it -- the same as Chris reported for the Xiaomi Book
Pro 14 in "Only check the function id of GET responses". Verified with
the for-next driver built for 7.2.7: every profile write failed with
-ENOMSG while the EC mode changed; with Chris's patch on top, all of
them succeed.
- The mode values are not the Bitland ones. SET of 0x08 stores the value
in the EC register QFAN as is, and NTDP in the DSDT maps QFAN to the
DPTF variable \_SB.ODV1: 0/1 balanced (ODV1 0), 2 quiet (2), 3
performance/Turbo (1), 4 full speed/Geek (4). With your two patches
the AC type check now passes on AC, and the value "performance" writes
(3) happens to be Turbo here; "balanced-performance" writes 1, which is
balanced, and after Fn+K to balanced (QFAN 1) platform_profile reads
back balanced-performance. On battery performance is still refused by
power_supply_is_system_supplied(), although the firmware accepts Turbo
there.
- Command 0x10 is the battery interface on this firmware (subcommand 2
is the 80 % charge protection), which makes the existing kb_mode
attribute dangerous: writing "fixed" to it turns charge protection off.
Verified on the machine.
I have put the details, including the test results, in a reply to
[PATCH v6 5/5] of the redmi-wmi merge series, since that is where the
per-machine table is being discussed. I am happy to test patches on
this model.
Thanks,
Anton Karasev