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_ctlis only toggled bycmd_cpupower, and…cmd_cpupoweris aCONSOLE_COMMAND, which is only available via serial/thecros_ecconsole 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.