diff options
author | Andrew McRae <amcrae@google.com> | 2022-09-05 18:28:22 +1000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-06 03:11:55 +0000 |
commit | 32de1c2e066f40671c3f9f5c5cd1cc8a7bb2364c (patch) | |
tree | ff2f775d885e47935fdb68a48142cd3f5db3798f /driver | |
parent | b314f8ad64f78ee9cb93a19e4d282ed8921e76e1 (diff) | |
download | chrome-ec-32de1c2e066f40671c3f9f5c5cd1cc8a7bb2364c.tar.gz |
ap_power: Refresh virtual wire signals when channel ready
When the ESPI VW channel is ready, refresh the VW signal values.
Depending on when the channel status was received, new values
for the VW signals may or may not have been received. If the
signals were received and then the channel status indicated not ready,
the signals were marked invalid (and the power sequence state
machine may be stalled waiting for the signals to become valid).
However once the channel status became ready, new signal values
may not be received (since the actual value may not have changed),
so the signals may remain (incorrectly) marked as invalid.
So when the VW channel status indicates ready, refresh the
VW signal values (allowing them to be marked valid), and update
the power sequence code via power_signal_interrupt(), which will
unblock the state machine, allowing the now valid VW signals to be
handled.
LOW_COVERAGE_REASON=ESPI emulator does not have API for channel setting
BUG=b:235429065
TEST=firmware_ECPowerButton passes
BRANCH=none
Signed-off-by: Andrew McRae <amcrae@google.com>
Change-Id: I547919e2d8c758878de9b6869ac223e4226a4f71
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3874582
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Diffstat (limited to 'driver')
0 files changed, 0 insertions, 0 deletions