mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-30 18:41:11 +00:00
charger: Prevent SET access to EC_CMD_CHARGE_STATE on locked systems
The SET sub-command of EC_CMD_CHARGE_STATE sets charger current / voltage parameters to arbitrary values and should be locked down. EC_CMD_CHARGE_CONTROL, on the other hand, switches between several safe operation modes, and should be allowed. BUG=None TEST=On kevin, set force_locked, plug zinger, and verify: ectool chargestate param 4 3 <-- ACCESS_DENIED ectool chargestate show <-- prints params ectool chargecontrol idle <-- stops charging battery ectool chargecontrol normal <-- battery charges again BRANCH=None Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Change-Id: I5503f07bb196d023a9bcd2e33f2e247f061f05e5 Reviewed-on: https://chromium-review.googlesource.com/757237 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
ad3696b1ca
commit
e4deceba8d
@@ -1193,9 +1193,6 @@ static int charge_command_charge_control(struct host_cmd_handler_args *args)
|
||||
const struct ec_params_charge_control *p = args->params;
|
||||
int rv;
|
||||
|
||||
if (system_is_locked())
|
||||
return EC_RES_ACCESS_DENIED;
|
||||
|
||||
rv = set_chg_ctrl_mode(p->mode);
|
||||
if (rv != EC_SUCCESS)
|
||||
return EC_RES_ERROR;
|
||||
@@ -1313,6 +1310,9 @@ static int charge_command_charge_state(struct host_cmd_handler_args *args)
|
||||
break;
|
||||
|
||||
case CHARGE_STATE_CMD_SET_PARAM:
|
||||
if (system_is_locked())
|
||||
return EC_RES_ACCESS_DENIED;
|
||||
|
||||
val = in->set_param.value;
|
||||
#ifdef CONFIG_CHARGER_PROFILE_OVERRIDE
|
||||
/* custom profile params */
|
||||
|
||||
Reference in New Issue
Block a user