summaryrefslogtreecommitdiffstats
path: root/target/linux/goldfish/patches-2.6.30/0121--ARM-goldfish-Implement-suspend-as-wait-for-interr.patch
blob: 0190820ed8d1c734cb6105ca230c9890c5aba045 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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);
+