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;
>  }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.