diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/acpi.h | 10 | ||||
-rw-r--r-- | include/linux/cpuidle.h | 22 | ||||
-rw-r--r-- | include/linux/platform_data/spear_thermal.h | 26 | ||||
-rw-r--r-- | include/linux/tboot.h | 1 |
4 files changed, 55 insertions, 4 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index f53fea61f40a..f421dd84f29d 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -372,4 +372,14 @@ static inline int acpi_nvs_for_each_region(int (*func)(__u64, __u64, void *), | |||
372 | 372 | ||
373 | #endif /* !CONFIG_ACPI */ | 373 | #endif /* !CONFIG_ACPI */ |
374 | 374 | ||
375 | #ifdef CONFIG_ACPI | ||
376 | void acpi_os_set_prepare_sleep(int (*func)(u8 sleep_state, | ||
377 | u32 pm1a_ctrl, u32 pm1b_ctrl)); | ||
378 | |||
379 | acpi_status acpi_os_prepare_sleep(u8 sleep_state, | ||
380 | u32 pm1a_control, u32 pm1b_control); | ||
381 | #else | ||
382 | #define acpi_os_set_prepare_sleep(func, pm1a_ctrl, pm1b_ctrl) do { } while (0) | ||
383 | #endif | ||
384 | |||
375 | #endif /*_LINUX_ACPI_H*/ | 385 | #endif /*_LINUX_ACPI_H*/ |
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 712abcc205ae..6c26a3da0e03 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/list.h> | 15 | #include <linux/list.h> |
16 | #include <linux/kobject.h> | 16 | #include <linux/kobject.h> |
17 | #include <linux/completion.h> | 17 | #include <linux/completion.h> |
18 | #include <linux/hrtimer.h> | ||
18 | 19 | ||
19 | #define CPUIDLE_STATE_MAX 8 | 20 | #define CPUIDLE_STATE_MAX 8 |
20 | #define CPUIDLE_NAME_LEN 16 | 21 | #define CPUIDLE_NAME_LEN 16 |
@@ -43,12 +44,15 @@ struct cpuidle_state { | |||
43 | 44 | ||
44 | unsigned int flags; | 45 | unsigned int flags; |
45 | unsigned int exit_latency; /* in US */ | 46 | unsigned int exit_latency; /* in US */ |
46 | unsigned int power_usage; /* in mW */ | 47 | int power_usage; /* in mW */ |
47 | unsigned int target_residency; /* in US */ | 48 | unsigned int target_residency; /* in US */ |
49 | unsigned int disable; | ||
48 | 50 | ||
49 | int (*enter) (struct cpuidle_device *dev, | 51 | int (*enter) (struct cpuidle_device *dev, |
50 | struct cpuidle_driver *drv, | 52 | struct cpuidle_driver *drv, |
51 | int index); | 53 | int index); |
54 | |||
55 | int (*enter_dead) (struct cpuidle_device *dev, int index); | ||
52 | }; | 56 | }; |
53 | 57 | ||
54 | /* Idle State Flags */ | 58 | /* Idle State Flags */ |
@@ -96,7 +100,6 @@ struct cpuidle_device { | |||
96 | struct list_head device_list; | 100 | struct list_head device_list; |
97 | struct kobject kobj; | 101 | struct kobject kobj; |
98 | struct completion kobj_unregister; | 102 | struct completion kobj_unregister; |
99 | void *governor_data; | ||
100 | }; | 103 | }; |
101 | 104 | ||
102 | DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices); | 105 | DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices); |
@@ -118,10 +121,12 @@ static inline int cpuidle_get_last_residency(struct cpuidle_device *dev) | |||
118 | ****************************/ | 121 | ****************************/ |
119 | 122 | ||
120 | struct cpuidle_driver { | 123 | struct cpuidle_driver { |
121 | char name[CPUIDLE_NAME_LEN]; | 124 | const char *name; |
122 | struct module *owner; | 125 | struct module *owner; |
123 | 126 | ||
124 | unsigned int power_specified:1; | 127 | unsigned int power_specified:1; |
128 | /* set to 1 to use the core cpuidle time keeping (for all states). */ | ||
129 | unsigned int en_core_tk_irqen:1; | ||
125 | struct cpuidle_state states[CPUIDLE_STATE_MAX]; | 130 | struct cpuidle_state states[CPUIDLE_STATE_MAX]; |
126 | int state_count; | 131 | int state_count; |
127 | int safe_state_index; | 132 | int safe_state_index; |
@@ -140,6 +145,11 @@ extern void cpuidle_pause_and_lock(void); | |||
140 | extern void cpuidle_resume_and_unlock(void); | 145 | extern void cpuidle_resume_and_unlock(void); |
141 | extern int cpuidle_enable_device(struct cpuidle_device *dev); | 146 | extern int cpuidle_enable_device(struct cpuidle_device *dev); |
142 | extern void cpuidle_disable_device(struct cpuidle_device *dev); | 147 | extern void cpuidle_disable_device(struct cpuidle_device *dev); |
148 | extern int cpuidle_wrap_enter(struct cpuidle_device *dev, | ||
149 | struct cpuidle_driver *drv, int index, | ||
150 | int (*enter)(struct cpuidle_device *dev, | ||
151 | struct cpuidle_driver *drv, int index)); | ||
152 | extern int cpuidle_play_dead(void); | ||
143 | 153 | ||
144 | #else | 154 | #else |
145 | static inline void disable_cpuidle(void) { } | 155 | static inline void disable_cpuidle(void) { } |
@@ -157,6 +167,12 @@ static inline void cpuidle_resume_and_unlock(void) { } | |||
157 | static inline int cpuidle_enable_device(struct cpuidle_device *dev) | 167 | static inline int cpuidle_enable_device(struct cpuidle_device *dev) |
158 | {return -ENODEV; } | 168 | {return -ENODEV; } |
159 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } | 169 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } |
170 | static inline int cpuidle_wrap_enter(struct cpuidle_device *dev, | ||
171 | struct cpuidle_driver *drv, int index, | ||
172 | int (*enter)(struct cpuidle_device *dev, | ||
173 | struct cpuidle_driver *drv, int index)) | ||
174 | { return -ENODEV; } | ||
175 | static inline int cpuidle_play_dead(void) {return -ENODEV; } | ||
160 | 176 | ||
161 | #endif | 177 | #endif |
162 | 178 | ||
diff --git a/include/linux/platform_data/spear_thermal.h b/include/linux/platform_data/spear_thermal.h new file mode 100644 index 000000000000..724f2e1cbbcb --- /dev/null +++ b/include/linux/platform_data/spear_thermal.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * SPEAr thermal driver platform data. | ||
3 | * | ||
4 | * Copyright (C) 2011-2012 ST Microelectronics | ||
5 | * Author: Vincenzo Frascino <vincenzo.frascino@st.com> | ||
6 | * | ||
7 | * This software is licensed under the terms of the GNU General Public | ||
8 | * License version 2, as published by the Free Software Foundation, and | ||
9 | * may be copied, distributed, and modified under those terms. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | */ | ||
17 | #ifndef SPEAR_THERMAL_H | ||
18 | #define SPEAR_THERMAL_H | ||
19 | |||
20 | /* SPEAr Thermal Sensor Platform Data */ | ||
21 | struct spear_thermal_pdata { | ||
22 | /* flags used to enable thermal sensor */ | ||
23 | unsigned int thermal_flags; | ||
24 | }; | ||
25 | |||
26 | #endif /* SPEAR_THERMAL_H */ | ||
diff --git a/include/linux/tboot.h b/include/linux/tboot.h index 1dba6ee55203..c75128bed5fa 100644 --- a/include/linux/tboot.h +++ b/include/linux/tboot.h | |||
@@ -143,7 +143,6 @@ static inline int tboot_enabled(void) | |||
143 | 143 | ||
144 | extern void tboot_probe(void); | 144 | extern void tboot_probe(void); |
145 | extern void tboot_shutdown(u32 shutdown_type); | 145 | extern void tboot_shutdown(u32 shutdown_type); |
146 | extern void tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control); | ||
147 | extern struct acpi_table_header *tboot_get_dmar_table( | 146 | extern struct acpi_table_header *tboot_get_dmar_table( |
148 | struct acpi_table_header *dmar_tbl); | 147 | struct acpi_table_header *dmar_tbl); |
149 | extern int tboot_force_iommu(void); | 148 | extern int tboot_force_iommu(void); |