drivers/platform/x86/asus-wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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%
Signed-off-by: Luis Miguel Arias <luismiguel@godjango.dev>
---
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;
}
--
2.47.3
On Tue, 18 Aug 2026, 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%
>
> Signed-off-by: Luis Miguel Arias <luismiguel@godjango.dev>
> ---
> 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;
Thank you for the submission but is is already covered by the commit
78bf392ba77d ("platform/x86: asus-wmi: temporarily revert to setting a
charge limit").
--
i.
© 2016 - 2026 Red Hat, Inc.