@@ -9,6 +9,7 @@
#ifdef CONFIG_X86
#include <asm/x86_init.h>
+#include <asm/olpc.h>
#endif
/*
@@ -877,6 +878,13 @@ static inline void i8042_pnp_exit(void) { }
static inline void i8042_platform_suspend(struct device *dev, bool may_wakeup)
{
+ if (!machine_is_olpc())
+ return;
+
+ if (may_wakeup)
+ olpc_ec_wakeup_set(EC_SCI_SRC_GAME);
+ else
+ olpc_ec_wakeup_clear(EC_SCI_SRC_GAME);
}
static int __init i8042_platform_init(void)
@@ -923,6 +931,9 @@ static int __init i8042_platform_init(void)
if (dmi_check_system(i8042_dmi_dritek_table))
i8042_dritek = true;
+
+ if (olpc_ec_wakeup_available())
+ i8042_enable_wakeup = true;
#endif /* CONFIG_X86 */
return retval;
The OLPC XO laptop can be resumed from suspend via keyboard or mouse activity. Hook up the i8042 driver to the OLPC EC controls to make this possible. Signed-off-by: Daniel Drake <dsd@laptop.org> --- drivers/input/serio/i8042-x86ia64io.h | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) This depends on patches merged into linus master 2 days ago.