diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/chipset_gaia.c | 17 | ||||
-rw-r--r-- | common/chipset_haswell.c | 2 | ||||
-rw-r--r-- | common/chipset_ivybridge.c | 2 | ||||
-rw-r--r-- | common/chipset_tegra.c | 17 |
4 files changed, 18 insertions, 20 deletions
diff --git a/common/chipset_gaia.c b/common/chipset_gaia.c index 19619d601b..fd5d5fb7a6 100644 --- a/common/chipset_gaia.c +++ b/common/chipset_gaia.c @@ -27,7 +27,6 @@ #include "chipset.h" /* This module implements chipset functions too */ #include "common.h" #include "console.h" -#include "gaia_power.h" #include "gpio.h" #include "hooks.h" #include "lid_switch.h" @@ -289,15 +288,15 @@ static void gaia_suspend_deferred(void) } DECLARE_DEFERRED(gaia_suspend_deferred); -void gaia_suspend_event(enum gpio_signal signal) +void power_interrupt(enum gpio_signal signal) { - hook_call_deferred(gaia_suspend_deferred, 0); -} - -void gaia_power_event(enum gpio_signal signal) -{ - /* Wake up the task */ - task_wake(TASK_ID_CHIPSET); + if (signal == GPIO_SUSPEND_L) { + /* Handle suspend events in the hook task */ + hook_call_deferred(gaia_suspend_deferred, 0); + } else { + /* All other events are handled in the chipset task */ + task_wake(TASK_ID_CHIPSET); + } } static void gaia_lid_event(void) diff --git a/common/chipset_haswell.c b/common/chipset_haswell.c index b656cb8797..95823ae418 100644 --- a/common/chipset_haswell.c +++ b/common/chipset_haswell.c @@ -367,7 +367,7 @@ enum x86_state x86_handle_state(enum x86_state state) return state; } -void haswell_interrupt(enum gpio_signal signal) +void power_interrupt(enum gpio_signal signal) { /* Pass through eDP VDD enable from PCH */ gpio_set_level(GPIO_EC_EDP_VDD_EN, gpio_get_level(GPIO_PCH_EDP_VDD_EN)); diff --git a/common/chipset_ivybridge.c b/common/chipset_ivybridge.c index 048d6a5d5b..7a8dfd12aa 100644 --- a/common/chipset_ivybridge.c +++ b/common/chipset_ivybridge.c @@ -337,7 +337,7 @@ enum x86_state x86_handle_state(enum x86_state state) return state; } -void ivybridge_interrupt(enum gpio_signal signal) +void power_interrupt(enum gpio_signal signal) { /* Route SUSWARN# back to SUSACK# */ gpio_set_level(GPIO_PCH_SUSACK_L, gpio_get_level(GPIO_PCH_SUSWARN_L)); diff --git a/common/chipset_tegra.c b/common/chipset_tegra.c index 7032f969cb..3484a266ae 100644 --- a/common/chipset_tegra.c +++ b/common/chipset_tegra.c @@ -27,7 +27,6 @@ #include "chipset.h" /* This module implements chipset functions too */ #include "common.h" #include "console.h" -#include "tegra_power.h" #include "gpio.h" #include "hooks.h" #include "lid_switch.h" @@ -248,15 +247,15 @@ static void tegra_suspend_deferred(void) } DECLARE_DEFERRED(tegra_suspend_deferred); -void tegra_suspend_event(enum gpio_signal signal) +void power_interrupt(enum gpio_signal signal) { - hook_call_deferred(tegra_suspend_deferred, 0); -} - -void tegra_power_event(enum gpio_signal signal) -{ - /* Wake up the task */ - task_wake(TASK_ID_CHIPSET); + if (signal == GPIO_SUSPEND_L) { + /* Handle suspend events in the hook task */ + hook_call_deferred(tegra_suspend_deferred, 0); + } else { + /* All other events are handled in the chipset task */ + task_wake(TASK_ID_CHIPSET); + } } static void tegra_lid_event(void) |