From 35ea0a968caacc73e6ece2bd68db465cc21f07c2 Mon Sep 17 00:00:00 2001 From: Shawn Nematbakhsh Date: Fri, 2 Jan 2015 12:41:34 -0800 Subject: [PATCH] charge_manager: Bug fixes for power_info host commands - Correctly identify certain source ports (ex. c-plug to empty a-receptacle) - Correct ectool power unit print (mV * mA != mW). BUG=chrome-os-partner:33248 TEST=Manual on Samus. Connect c-plug to empty a-receptacle, run "ectool --name usbpdpower", verify that port power role is identified as source. Also, verify that 5000 mV @ 500mA port correctly prints 2500mW total power. BRANCH=Samus Signed-off-by: Shawn Nematbakhsh Change-Id: Icf0850afc570a1056578df9f1a647079a00229b3 Reviewed-on: https://chromium-review.googlesource.com/238235 Reviewed-by: Alec Berg Commit-Queue: Alec Berg --- common/charge_manager.c | 4 ++-- util/ectool.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/charge_manager.c b/common/charge_manager.c index 4b400f137c..1622997f02 100644 --- a/common/charge_manager.c +++ b/common/charge_manager.c @@ -441,10 +441,10 @@ static int hc_pd_power_info(struct host_cmd_handler_args *args) /* Fill in power role */ if (charge_port == port) r->role = USB_PD_PORT_POWER_SINK; - else if (sup != CHARGE_SUPPLIER_NONE) - r->role = USB_PD_PORT_POWER_SINK_NOT_CHARGING; else if (pd_is_connected(port) && pd_get_role(port) == PD_ROLE_SOURCE) r->role = USB_PD_PORT_POWER_SOURCE; + else if (sup != CHARGE_SUPPLIER_NONE) + r->role = USB_PD_PORT_POWER_SINK_NOT_CHARGING; else r->role = USB_PD_PORT_POWER_DISCONNECTED; diff --git a/util/ectool.c b/util/ectool.c index 7486580c0c..4e03a90f62 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -2999,7 +2999,7 @@ int cmd_usb_pd_power(int argc, char *argv[]) printf(" Max input current: %dmA\n", r->current_max); printf(" Max input power: %dmW\n", - r->max_power); + r->max_power / 1000); printf("\n"); }