Files
OpenCellular/common
Duncan Laurie 9da3dfb29f charge_state_v2: Fixes for battery present reporting
Fix some issues with how the battery present flag is reported
up to the host.

If there is no battery presence GPIO or custom function then
errors updating the smart battery info can result in the
battery present flag reporting BP_NOT_SURE and indicating to the
host that the battery is missing.  In order to prevent spurious
events require a second back-to-back read of a missing battery
before the host is notified.

When the battery presence does change, the host needs to be told
to re-read the static battery info with EC_HOST_EVENT_BATTERY,
passed to the OS via Notify command to tell the OS to re-execute
_BIF/_BIX method on the ACPI battery device.

When sending these events to the host the battery flags should
first be updated in LPC shared memory so if the host handles
the event quickly it will read the correct updated flags value.

BUG=chrome-os-partner:34011
BRANCH=broadwell
TEST=manual testing on samus:
1) add a console command that allows the smart battery update
function to set batt.is_present to BP_NOT_SURE for a specified
number of update cycles.
2) ensure that when the smart battery update only returns the
battery missing for one update cycle that it does not result in
an event to the host.
3) ensure that if the smart battery update indicates the battery
is missing for more than one update cycle, such that the host is
notified the battery is missing, that it correctly gets an event
to re-read the battery info when it is indicated as present again.

Change-Id: I0da004b991ea1a89b34cd7c0f8f3628b813ffe44
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/241763
Reviewed-by: Alec Berg <alecaberg@chromium.org>
2015-01-18 22:17:27 +00:00
..
2014-05-21 20:32:17 +00:00
2013-12-20 05:07:58 +00:00
2014-05-21 20:32:17 +00:00
2015-01-15 01:07:02 +00:00
2014-05-21 20:32:17 +00:00
2014-05-21 20:32:17 +00:00
2014-05-21 20:32:17 +00:00
2014-03-06 21:32:57 +00:00
2013-10-25 20:12:49 +00:00
2014-05-21 20:32:17 +00:00
2014-05-21 20:32:17 +00:00
2013-12-19 00:12:28 +00:00
2014-05-21 20:32:17 +00:00
2014-03-06 21:33:09 +00:00
2014-01-14 09:19:45 +00:00
2014-05-21 20:32:17 +00:00
2015-01-15 01:07:02 +00:00
2014-05-21 20:32:17 +00:00
2013-12-19 00:12:28 +00:00
2014-05-17 20:14:17 +00:00
2013-12-19 00:12:28 +00:00
2014-05-21 20:32:17 +00:00
2014-05-21 20:32:17 +00:00