Re: [PATCH] platform/x86: asus-wmi: restore battery charge limit support
Denis Benato <[email protected]>
| Newsgroups | org.kernel.vger.platform-driver-x86,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/18/26 19:48, Luis Miguel Arias wrote: > On ASUS systems where the charge threshold is supported through > ASUS_WMI_DEVID_RSOC, initializing charge_end_threshold to -1 causes > the sysfs attribute to return -ENODATA. This makes TLP consider > charge threshold support unavailable. > > Initialize the cached threshold to 100 instead, allowing userspace > to set the desired threshold normally. > > Tested on ASUS with TLP 1.8.0: > > Before this change: > * charge_end_threshold = -1 > * TLP reported no charge threshold support > > After this change: > * TLP reports "charge threshold" as supported > * natacpi (asus_wmi) is active > * charge_control_end_threshold can be set to 80% Hi Luis, I'm confused here... I sent a temporary revert for this while we waited for Upower to allow changing threshold with -ENODATA. The current version of upower is fixed and I wasn't even aware TLP could do this: how do you do it? This means TLP also need to support -ENODATA properly and stop treating it as an error... Do you want to contact them or do you want me to do it? Anyway the main idea is that this is not the expected behavior and is considered bad practice to change the limit at boot without user asking, so I think the wise thing to do is for Ilpo to apply my temporary revert to platform/x86 too while we wait for TLP to behave properly... P.S. newer version should have v2. v3 etc... Best regards, Denis > Signed-off-by: Luis Miguel Arias <[email protected]> > --- > drivers/platform/x86/asus-wmi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c > index 80144c412..87363b198 100644 > --- a/drivers/platform/x86/asus-wmi.c > +++ b/drivers/platform/x86/asus-wmi.c > @@ -1586,7 +1586,7 @@ static int asus_wmi_battery_add(struct power_supply *battery, struct acpi_batter > * platforms retains it, therefore signal the threshold as unknown > * until user explicitly sets it to a new value. > */ > - charge_end_threshold = -1; > + charge_end_threshold = 100; > > return 0; > }