diff options
author | Furquan Shaikh <furquan@chromium.org> | 2017-04-12 12:50:40 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-04-17 16:23:50 -0700 |
commit | e3b520b27a57198bf12670311b7b9bc39af3ad76 (patch) | |
tree | dbc2b0e8a697ed1e39736c064a1b11360631bae0 /common | |
parent | c5332f6fe7d4d5197ac2154319f5e7dd4436d62a (diff) | |
download | chrome-ec-e3b520b27a57198bf12670311b7b9bc39af3ad76.tar.gz |
power_button_x86: Reset power button setting on chipset transitions
Power button pulse is disabled by the host whenever it wants to treat
the power button as an input and not trigger SMI. Clear this setting
whenever there is a chipset state transition to default pulse
enabled.
BUG=b:37277943
BRANCH=None
TEST=make -j buildall
Change-Id: Id0cb3748bf7e25ad9111170116113151d9bed69e
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/476090
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/power_button_x86.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/common/power_button_x86.c b/common/power_button_x86.c index f9903b2782..f83d0f81ab 100644 --- a/common/power_button_x86.c +++ b/common/power_button_x86.c @@ -472,3 +472,24 @@ static int hc_config_powerbtn_x86(struct host_cmd_handler_args *args) } DECLARE_HOST_COMMAND(EC_CMD_CONFIG_POWER_BUTTON, hc_config_powerbtn_x86, EC_VER_MASK(0)); + + +/* + * Currently, the only reason why we disable power button pulse is to allow + * detachable menu on AP to use power button for selection purpose without + * triggering SMI. Thus, re-enable the pulse any time there is a chipset + * state transition event. + */ +static void power_button_pulse_setting_reset(void) +{ + power_button_pulse_enabled = 1; +} + +DECLARE_HOOK(HOOK_CHIPSET_STARTUP, power_button_pulse_setting_reset, + HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, power_button_pulse_setting_reset, + HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, power_button_pulse_setting_reset, + HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_CHIPSET_RESUME, power_button_pulse_setting_reset, + HOOK_PRIO_DEFAULT); |