Re: [PATCH 0/2] platform/x86: ideapad-laptop: Fix unexpected charge_types on probe

From: Derek J. Clark

Date: Sun Oct 18 2026 - 01:31:04 EST


On October 17, 2026 4:16:17 PM PDT, Rong Zhang <i@xxxxxxxx> wrote:
>It was reported [1] that some unfortunate combinations of BIOS and
>Lenovo utilities (e.g., Legion Go 2 + Legion Space) may enable Rapid
>Charge and Conservation Mode at the same time, which is very out of
>sepc.
>
>If both are enabled during a previous Windows boot, ideapad-laptop will
>see both bits set and correctly shout "unexpected charge_types".
>
>A planned BIOS update will address this. Before that, if unexpected
>charge_types are encountered on probe, enforce [Long_Life] to prevent
>the device from operating in an out-of-spec state. On check or fix
>failure, skip registering the battery hook and the conservation_mode
>attribute.
>
>Note: the switches never enable themselves autonomously, so there is no
>need to fix it during runtime.
>

Hi Rong,

Note that this isn't strictly true. A known bug in multiple Lenovo devices is that querying the EC too quickly can cause it to reset into an invalid state. I.e. some games run under wine for check the state of the AC adapter multiple times a second. In such a case they can reset and then report both modes on. I don't believe the device re-enumerates in this case. This is documented in the driver [1].

Lenovo ha mentioned to me a BIOS fix for this issue will be coming for the Go S and Go 2 at some point as well, but this isn't exclusive to Go models. It may be prudent to fix any time an invalid state is detected.

Thanks,
- Derek

[1] https://github.com/torvalds/linux/blob/32c52ec87d6245ee2d12ed5dd509e40062939b50/drivers/platform/x86/lenovo/ideapad-laptop.c#L286-L296

>Fixes: 90430ea98f55 ("platform/x86: ideapad-laptop: Add charge_types:Fast (Rapid Charge)")
>Closes: https://github.com/ValveSoftware/SteamOS/issues/2876 [1]
>Signed-off-by: Rong Zhang <i@xxxxxxxx>
>---
>Rong Zhang (2):
> platform/x86: ideapad-laptop: Factor out charge_types methods for internal use
> platform/x86: ideapad-laptop: Fix unexpected charge_types on probe
>
> drivers/platform/x86/lenovo/ideapad-laptop.c | 113 ++++++++++++++++++++-------
> 1 file changed, 84 insertions(+), 29 deletions(-)
>---
>base-commit: 58161ead29e50d70a317ea26b472e0c7508e69da
>change-id: ef28eda4-ideapad-fix-charge-types-067d46d08945
>
>Thanks,
>Rong
>