All of lore.kernel.org
 help / color / mirror / Atom feed
* [REGRESSION] platform/x86: bitland-mifs-wmi: platform profiles cannot be changed on USB-C-only RedmiBook Pro 15 (TM2017)
@ 2026-10-20  5:12 Serhiy Shliapuhin
  2026-10-21 14:56 ` Thorsten Leemhuis
  0 siblings, 1 reply; 4+ messages in thread
From: Serhiy Shliapuhin @ 2026-10-20  5:12 UTC (permalink / raw)
  To: qby140326@gmail.com; +Cc: platform-driver-x86, ilpo.jarvinen, regressions

Hi Mingyou,

On my RedmiBook Pro 15 (2021) none of the platform profiles exposed
by bitland-mifs-wmi can actually be selected. "performance" and
"balanced-performance" are always rejected with -EOPNOTSUPP, even
while the laptop is charging, and "low-power" is accepted but has no
effect. As a result power-profiles-daemon can only stay in Balanced.

This is a regression. With Ubuntu kernel 7.0.0-38-generic the
Performance and Power Saver profiles could be selected via
power-profiles-daemon without errors (only the intel_pstate CPU
driver was used, as no platform_profile handler was bound on this
machine). After upgrading to 7.3.0-9-generic (Ubuntu 26.10),
bitland-mifs-wmi binds on this laptop, power-profiles-daemon also
uses the platform_profile driver, and profile switching no longer
works.

Last good: 7.0.0-38-generic (Ubuntu)
First bad: 7.3.0-9-generic (Ubuntu)

#regzbot introduced: dc1ec4fa86b2

Hardware / software:
  DMI: TIMI RedmiBook Pro 15/TM2017, BIOS RMATG5B0P0909 03/31/2021
  Kernel: 7.3.0-9-generic (Ubuntu 26.10)

1) DC-only modes are never available

This model charges exclusively over USB-C; it has no dedicated DC
barrel jack. The driver's DC power check (as documented in
Documentation/wmi/devices/bitland-mifs-wmi.rst, "Performance" and
"Full-speed" require a DC power source, not USB-C/PD) can therefore
never be satisfied on this machine.

Platform profile handler:
  $ cat /sys/class/platform-profile/platform-profile-0/name
  bitland-mifs-wmi
  $ cat /sys/firmware/acpi/platform_profile_choices
  low-power balanced balanced-performance performance

Power supplies while the charger is connected (no ACPI AC device):
  $ ls /sys/class/power_supply/
  BAT0  ucsi-source-psy-USBC000:001  ucsi-source-psy-USBC000:002
  $ cat /sys/class/power_supply/ucsi-source-psy-USBC000:002/online
  1

  $ echo performance | sudo tee /sys/firmware/acpi/platform_profile
  tee: /sys/firmware/acpi/platform_profile: Operation not supported

  $ powerprofilesctl set performance
  Failed to activate platform driver 'platform_profile': Failed to
  write to acpi_platform_profile: Error writing
  '/sys/firmware/acpi/platform_profile': Operation not supported (15)

I have not been able to verify the behaviour under Windows.

2) "low-power" is silently ignored

Writing "low-power" is accepted without error, but reading the
attribute back immediately returns "balanced":

  $ echo low-power | sudo tee /sys/firmware/acpi/platform_profile
  low-power
  $ cat /sys/firmware/acpi/platform_profile
  balanced

power-profiles-daemon then sees "balanced" and reverts its own
profile, so Power Saver cannot be selected either. It looks like on
this firmware the mode writes are either ignored or the current mode
is read back incorrectly.

Summary of all writable modes on this machine (charger connected):
  low-power             -> accepted, reads back "balanced"
  balanced-performance  -> -EOPNOTSUPP
  performance           -> -EOPNOTSUPP

I am ready to provide acpidump or any other information you need.

Thanks,
Serhiy Shliapuhin

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-22  9:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-20  5:12 [REGRESSION] platform/x86: bitland-mifs-wmi: platform profiles cannot be changed on USB-C-only RedmiBook Pro 15 (TM2017) Serhiy Shliapuhin
2026-10-21 14:56 ` Thorsten Leemhuis
2026-10-22  8:08   ` Serhiy Shliapuhin
2026-10-22  9:13     ` Mingyou Chen

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.