[PATCH] platform/x86: asus-wmi: restore battery charge limit support

Luis Miguel Arias posted 1 patch 1 month, 1 week ago
drivers/platform/x86/asus-wmi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] platform/x86: asus-wmi: restore battery charge limit support
Posted by Luis Miguel Arias 1 month, 1 week ago
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
Re: [PATCH] platform/x86: asus-wmi: restore battery charge limit support
Posted by Ilpo Järvinen 1 week, 4 days ago
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.