Skip to content

Battery charge limit not enforced on ASUS Vivobook 16 V3607VU (threshold accepted but battery charges past configured limit) #153

Description

@Kunal-Lakhwani

Issue description

I have an ASUS Vivobook 16 V3607VU running Fedora 44 KDE Plasma.

Battery charge thresholds appear to be fully supported by the software stack, but the battery continues charging past the configured limit.

Hardware

  • Model: ASUS Vivobook 16 V3607VU
  • Board: V3607VU
  • BIOS: V3607VU.303
  • Battery model: X350052

Software

  • Fedora 44 KDE Plasma
  • Kernel: 7.0.14-201.fc44.x86_64
  • asusctl: 6.3.8

What works

The battery threshold appears to be accepted everywhere:

$ cat /sys/class/power_supply/BAT0/charge_control_end_threshold
90
$ asusctl battery info
Current battery charge limit: 90%

UPower also reports that charge thresholds are supported:

charge-threshold-supported: yes

The ASUS WMI driver loads successfully during boot and the battery exposes the standard Linux charge threshold interface.

What does not work

Despite the configured 90% charge limit, the battery continues charging beyond the threshold.

Reproduction:

  1. Set charge limit to 90%.

  2. Verify:

    • /sys/class/power_supply/BAT0/charge_control_end_threshold = 90
    • asusctl battery info = 90
  3. Discharge the battery to approximately 87%.

  4. Connect AC power.

  5. The battery continues charging past 90% (observed at 93% and still charging).

power_now remains non-zero while charging.

Additional observations

UPower appears to report an outdated threshold:

cat /sys/class/power_supply/BAT0/charge_control_end_threshold
90

asusctl battery info
Current battery charge limit: 90%

upower -i
charge-end-threshold: 80%

So the kernel sysfs interface and asusctl agree on 90%, while UPower continues to report 80%.

I'm not sure whether this is a separate UPower issue or related to the main problem.

I also created a udev rule to restore the threshold during boot:

ACTION=="add", SUBSYSTEM=="power_supply", KERNEL=="BAT*", ATTR{charge_control_end_threshold}="90"

This correctly restores the sysfs value but does not change the charging behavior.

Question

Is this a known limitation of the V3607VU platform, or does this model require additional kernel support or a platform-specific quirk before battery charge thresholds are actually enforced?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions