Battery Life?

I think the EC retains full control over the power limits:

  • Power limits are set by update_soc_power_limit
  • It mentions manual_ctl, however…
  • manual_ctl is only toggled by cmd_cpupower, and…
  • cmd_cpupower is a CONSOLE_COMMAND, which is only available via serial/the cros_ec console device (which is not exposed to the AP, I believe)

I believe update_soc_power_limit is called on every battery charge tick or AC state change. Perhaps if the machine is fully charged, it won’t override those values? Hmm.

EDIT: That having been said… the code doesn’t update PL2/4 unless it thinks it has to (it is unaware of the value set by the kernel), and it only updates PL1 when it updates PL2/4. I just set a different value for PL1 and it stuck across a few charge state transitions.

1 Like