From f0266de1899f043daff3b472b8fdd6e30012cb25 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com> Date: Wed, 9 Jan 2008 11:46:33 -0800 Subject: [PATCH 121/134] [ARM] goldfish: Implement suspend as wait-for-interrupt. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mike A. Chan <mikechan@google.com> Signed-off-by: Arve Hjønnevåg <arve@android.com> --- arch/arm/mach-goldfish/Makefile | 2 +- arch/arm/mach-goldfish/pm.c | 43 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletions(-) create mode 100644 arch/arm/mach-goldfish/pm.c --- a/arch/arm/mach-goldfish/Makefile +++ b/arch/arm/mach-goldfish/Makefile @@ -4,6 +4,6 @@ # Object file lists. -obj-y := pdev_bus.o timer.o audio.o +obj-y := pdev_bus.o timer.o audio.o pm.o obj-$(CONFIG_MACH_GOLDFISH) += board-goldfish.o --- /dev/null +++ b/arch/arm/mach-goldfish/pm.c @@ -0,0 +1,43 @@ +/* arch/arm/mach-msm/pm.c + * + * Goldfish Power Management Routines + * + * Copyright (C) 2007 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/pm.h> +#include <linux/suspend.h> +#include <mach/system.h> + +static int goldfish_pm_enter(suspend_state_t state) +{ + arch_idle(); + return 0; +} + +static struct platform_suspend_ops goldfish_pm_ops = { + .enter = goldfish_pm_enter, + .valid = suspend_valid_only_mem, +}; + +static int __init goldfish_pm_init(void) +{ + suspend_set_ops(&goldfish_pm_ops); + return 0; +} + +__initcall(goldfish_pm_init); +