diff options
author | Randall Spangler <rspangler@chromium.org> | 2013-08-02 12:40:30 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-08-02 17:32:42 -0700 |
commit | a566d8d9e42d6f25503e8c897a995fef0b6ae42b (patch) | |
tree | eec14187b5a9a9bb59444f4d998a6b5db2db5b63 /common/power_button_x86.c | |
parent | 93536fbe55d309d335682b1fd5223f5389d0c456 (diff) | |
download | chrome-ec-a566d8d9e42d6f25503e8c897a995fef0b6ae42b.tar.gz |
x86: use charge state hook to wake up power button task
This is cleaner than having the charge state machine explicitly know
about the power button task.
BUG=chrome-os-partner:21610
BRANCH=none
TEST=reboot EC; see that power button task does not leave init-on state until
just after the charge state initializes:
[0.022646 Charge state init -> idle0 after 0.005908 sec]
[0.022956 PB task 8 = init-on]
[0.023147 PB PCH pwrbtn=LOW]
[0.023303 PB task 6 = released, wait 199996]
Change-Id: I11d70103e3ee545512efe621f53d999680a7ad56
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/64366
Reviewed-by: Vic Yang <victoryang@chromium.org>
Diffstat (limited to 'common/power_button_x86.c')
-rw-r--r-- | common/power_button_x86.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/common/power_button_x86.c b/common/power_button_x86.c index 2d353b74ed..e37fb6f81f 100644 --- a/common/power_button_x86.c +++ b/common/power_button_x86.c @@ -397,3 +397,17 @@ static void powerbtn_x86_changed(void) task_wake(TASK_ID_POWERBTN); } DECLARE_HOOK(HOOK_POWER_BUTTON_CHANGE, powerbtn_x86_changed, HOOK_PRIO_DEFAULT); + +/** + * Handle charge state changes + */ +static void powerbtn_x86_charge(void) +{ + /* + * If we were waiting for the charge state machine to init before we + * powered on the chipset, we can stop waiting. + */ + if (pwrbtn_state == PWRBTN_STATE_INIT_ON) + task_wake(TASK_ID_POWERBTN); +} +DECLARE_HOOK(HOOK_CHARGE_STATE_CHANGE, powerbtn_x86_charge, HOOK_PRIO_DEFAULT); |