From 1513e1dc9b03f032b07ce09254d42fe6a1fbb296 Mon Sep 17 00:00:00 2001 From: Vijay Hiremath Date: Sat, 28 Jul 2018 10:55:27 -0700 Subject: Octopus: Avoid potential panic in LED code When the charge is in idle mode LED array is out of bound hence there is potential panic. Fill the LED array to defined number of LED states. BUG=b:111913899 BRANCH=none TEST=Manually tested on yorp "chgstate discharge on" doesn't panic anymore Change-Id: Ib9c52b68b0ec9440911f15b6c09e8505b2b20e95 Signed-off-by: Vijay Hiremath Reviewed-on: https://chromium-review.googlesource.com/1153782 Commit-Ready: Jett Rink Reviewed-by: Jett Rink --- board/yorp/led.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'board/yorp') diff --git a/board/yorp/led.c b/board/yorp/led.c index 9040452f17..5e97887722 100644 --- a/board/yorp/led.c +++ b/board/yorp/led.c @@ -20,6 +20,8 @@ const int led_charge_lvl_2 = 100; /* Yorp: Note there is only LED for charge / power */ const struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { + [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC}, + {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} }, [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} }, [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} }, @@ -28,7 +30,9 @@ const struct led_descriptor [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} }, [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC}, {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} }, + [STATE_FACTORY_TEST] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} }, }; +BUILD_ASSERT(ARRAY_SIZE(led_bat_state_table) == LED_NUM_STATES); const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED }; -- cgit v1.2.1