mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-07 16:11:43 +00:00
i2c_passthru: Return NAK when battery not present.
virtual_battery_read() returns a cached value for some of the supported smart battery parameters. If a value isn't supported, it calls out to the actual battery. In the case of a battery that's not present, but a supported battery parameter is queried, we would still return _something_. This seems to confuse powerd and causes slow boot. This commit changes the i2c passthru command to return a NAK when the virtual battery is enabled but the battery is not present. BUG=chrome-os-partner:55954 BRANCH=gru TEST=Build and flash kevin. Unplug battery. Verify boot is nice and quick. Change-Id: Ib3ab768504c29904f01b91e6194a9689bfdb1e1e Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/392926 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Trybot-Ready: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> (cherry picked from commit b5eb2d93820c9e1a162cb1b390b3563bf9effcd5) Reviewed-on: https://chromium-review.googlesource.com/393187 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
03857a3b35
commit
701223cf09
12
common/i2c.c
12
common/i2c.c
@@ -599,6 +599,18 @@ static int i2c_command_passthru(struct host_cmd_handler_args *args)
|
||||
#if defined(VIRTUAL_BATTERY_ADDR) && defined(I2C_PORT_VIRTUAL_BATTERY)
|
||||
if (params->port == I2C_PORT_VIRTUAL_BATTERY &&
|
||||
VIRTUAL_BATTERY_ADDR == addr) {
|
||||
#if defined(CONFIG_BATTERY_PRESENT_GPIO) || \
|
||||
defined(CONFIG_BATTERY_PRESENT_CUSTOM)
|
||||
/*
|
||||
* If the battery isn't present, return a NAK (which we
|
||||
* would have gotten anyways had we attempted to talk to
|
||||
* the battery.)
|
||||
*/
|
||||
if (battery_is_present() != BP_YES) {
|
||||
resp->i2c_status = EC_I2C_STATUS_NAK;
|
||||
break;
|
||||
}
|
||||
#endif /* defined(CONFIG_BATTERY_PRESENT_{GPIO/CUSTOM}) */
|
||||
/* get batt param from write msg */
|
||||
if (*out)
|
||||
batt_param = *out;
|
||||
|
||||
Reference in New Issue
Block a user