summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hendricks <dhendrix@chromium.org>2015-09-14 13:49:24 -0700
committerChromeOS bot <3su6n15k.default@developer.gserviceaccount.com>2015-09-16 18:25:34 +0000
commitdcba15bd5d90f3f3d74a299436d8ed9140c214c9 (patch)
tree0054992e241161ea8054cddeaaa36936c3d37a70
parent375eb9f99eeed0c4785da04cf7d99982d4629170 (diff)
downloadchrome-ec-dcba15bd5d90f3f3d74a299436d8ed9140c214c9.tar.gz
gaia: Lid should be open for power button press to take effect
Due to the way the machine is constructed, the power button can still be pressed if the lid is closed. This can cause TPM failures. Ignore power button presses that occur when the lid is not open. BUG=chromium:431360 BRANCH=firmware-snow TEST=tested by using a magnet to simulate lid closed and pressing power Change-Id: Ida9acd728f49caae4ed63f6c067d27c9b458a679 Signed-off-by: David Hendricks <dhendrix@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/299548 Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--common/gaia_power.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/common/gaia_power.c b/common/gaia_power.c
index ab40cdc560..d92556b3ee 100644
--- a/common/gaia_power.c
+++ b/common/gaia_power.c
@@ -336,8 +336,18 @@ static int check_for_power_on_event(void)
/* check for power button press */
if (gpio_get_level(GPIO_KB_PWR_ON_L) == 0) {
udelay(KB_PWR_ON_DEBOUNCE);
- if (gpio_get_level(GPIO_KB_PWR_ON_L) == 0)
- return 4;
+ if (gpio_get_level(GPIO_KB_PWR_ON_L) == 0) {
+ /*
+ * Power button can still be pressed by accident when
+ * lid is closed: chrome-os-partner:431360 (c#116).
+ */
+ if (gpio_get_level(GPIO_LID_OPEN) == 1) {
+ return 4;
+ } else {
+ CPRINTF("[%T lid is closed, ignoring "
+ "power button press]\n");
+ }
+ }
}
if (power_request == POWER_REQ_ON) {