summaryrefslogtreecommitdiff
path: root/common/usb_charger.c
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2018-09-14 10:47:53 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2018-09-25 03:15:48 +0000
commit25af44928186c9b6e8440d92017d3fc576b611c5 (patch)
tree9fee68cd4f30e424cbf3a2bb9b84ce7c79bb59e7 /common/usb_charger.c
parentfa7d31925693f1cf94c66cce67107e1b73b0d299 (diff)
downloadchrome-ec-25af44928186c9b6e8440d92017d3fc576b611c5.tar.gz
chgmgr: Allow charge_manager_update_charge to accept NULL
Currently, charge_manager_update_charge does not handle NULL pointer for struct charge_port_info any differently. It's not sanity-checked either (thus memory access violation can occur). This patch will make charge_manager_update_charge accept NULL pointer and set available current and voltage to zero. This also helps callers' intentions be clear because callers can explicitly specify NULL (instead of passing a pointer to chg = {0}, which is initialized somewhere else). Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=none BRANCH=none TEST=buildall Change-Id: I518662ab6a3a07f93da5d34cf62a6f856884f67d Reviewed-on: https://chromium-review.googlesource.com/1226125 Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> (cherry picked from commit 69246cf51011ca951e5c405f5a4d2ee4448eb66c) Reviewed-on: https://chromium-review.googlesource.com/1242202 Reviewed-by: Martin Roth <martinroth@chromium.org> Commit-Queue: Martin Roth <martinroth@chromium.org> Tested-by: Martin Roth <martinroth@chromium.org>
Diffstat (limited to 'common/usb_charger.c')
-rw-r--r--common/usb_charger.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/common/usb_charger.c b/common/usb_charger.c
index 545907ea72..361d019a52 100644
--- a/common/usb_charger.c
+++ b/common/usb_charger.c
@@ -18,6 +18,7 @@
#include "console.h"
#include "gpio.h"
#include "hooks.h"
+#include "stddef.h"
#include "task.h"
#include "usb_charge.h"
#include "usb_pd.h"
@@ -83,25 +84,19 @@ void usb_charger_vbus_change(int port, int vbus_level)
static void usb_charger_init(void)
{
int i;
- struct charge_port_info charge_none = {0};
/* Initialize all charge suppliers */
for (i = 0; i < CONFIG_USB_PD_PORT_COUNT; i++) {
charge_manager_update_charge(CHARGE_SUPPLIER_PROPRIETARY,
- i,
- &charge_none);
+ i, NULL);
charge_manager_update_charge(CHARGE_SUPPLIER_BC12_CDP,
- i,
- &charge_none);
+ i, NULL);
charge_manager_update_charge(CHARGE_SUPPLIER_BC12_DCP,
- i,
- &charge_none);
+ i, NULL);
charge_manager_update_charge(CHARGE_SUPPLIER_BC12_SDP,
- i,
- &charge_none);
+ i, NULL);
charge_manager_update_charge(CHARGE_SUPPLIER_OTHER,
- i,
- &charge_none);
+ i, NULL);
/* Initialize VBUS supplier based on whether VBUS is present. */
update_vbus_supplier(i, pd_is_vbus_present(i));
}