diff options
author | Ting Shen <phoenixshen@google.com> | 2021-09-02 17:56:04 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-09-02 14:04:48 +0000 |
commit | 566139b225145c3a4d77465f70eb61c035ec3dcb (patch) | |
tree | 882c214d0949588dd7439bbfbf8844e1bae2db29 | |
parent | 7999cc115b95dc918ec6a89d4e0f4b55728557d7 (diff) | |
download | chrome-ec-566139b225145c3a4d77465f70eb61c035ec3dcb.tar.gz |
rt1718s: don't update charge_manager on supplier = NONE
Same bug as CL:3113487. charge_manager accidentally overwrites other
global variable when supplier = -1.
BUG=b:198552518
TEST=Add debug log in charge_manager.c, make sure charge_manager does
not receive invalid arguments.
BRANCH=main
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: I12787ab66fba7d8328440835867262e3828ac723
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3140013
Reviewed-by: Eric Yilun Lin <yllin@google.com>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
-rw-r--r-- | driver/tcpm/rt1718s.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/driver/tcpm/rt1718s.c b/driver/tcpm/rt1718s.c index ca5151ba90..0cc3166ccc 100644 --- a/driver/tcpm/rt1718s.c +++ b/driver/tcpm/rt1718s.c @@ -304,7 +304,9 @@ static void rt1718s_update_charge_manager(int port, static enum charge_supplier current_bc12_type = CHARGE_SUPPLIER_NONE; if (new_bc12_type != current_bc12_type) { - charge_manager_update_charge(current_bc12_type, port, NULL); + if (current_bc12_type != CHARGE_SUPPLIER_NONE) + charge_manager_update_charge(current_bc12_type, port, + NULL); if (new_bc12_type != CHARGE_SUPPLIER_NONE) { struct charge_port_info chg = { |