aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/acpi/acglobal.h4
-rw-r--r--include/acpi/acmacros.h6
-rw-r--r--include/acpi/acpi_bus.h5
-rw-r--r--include/acpi/acpi_drivers.h2
-rw-r--r--include/acpi/acpi_numa.h1
-rw-r--r--include/acpi/acpiosxf.h7
-rw-r--r--include/acpi/processor.h13
-rw-r--r--include/linux/acpi.h62
-rw-r--r--include/linux/cpuidle.h13
-rw-r--r--include/linux/dmi.h2
-rw-r--r--include/linux/kernel.h1
-rw-r--r--include/linux/power_supply.h1
-rw-r--r--include/linux/sonypi.h2
-rw-r--r--include/linux/thermal.h94
14 files changed, 177 insertions, 36 deletions
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h
index 347a911d8237..47a1fd8f2d8a 100644
--- a/include/acpi/acglobal.h
+++ b/include/acpi/acglobal.h
@@ -117,10 +117,6 @@ extern u32 acpi_dbg_layer;
117 117
118extern u32 acpi_gbl_nesting_level; 118extern u32 acpi_gbl_nesting_level;
119 119
120/* Event counters */
121
122ACPI_EXTERN u32 acpi_gpe_count;
123
124/* Support for dynamic control method tracing mechanism */ 120/* Support for dynamic control method tracing mechanism */
125 121
126ACPI_EXTERN u32 acpi_gbl_original_dbg_level; 122ACPI_EXTERN u32 acpi_gbl_original_dbg_level;
diff --git a/include/acpi/acmacros.h b/include/acpi/acmacros.h
index 45662f6dbdb6..99d171c87c84 100644
--- a/include/acpi/acmacros.h
+++ b/include/acpi/acmacros.h
@@ -486,7 +486,7 @@
486#define ACPI_FUNCTION_NAME(name) 486#define ACPI_FUNCTION_NAME(name)
487#endif 487#endif
488 488
489#ifdef DEBUG_FUNC_TRACE 489#ifdef CONFIG_ACPI_DEBUG_FUNC_TRACE
490 490
491#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \ 491#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \
492 acpi_ut_trace(ACPI_DEBUG_PARAMETERS) 492 acpi_ut_trace(ACPI_DEBUG_PARAMETERS)
@@ -565,7 +565,7 @@
565 565
566#endif /* ACPI_SIMPLE_RETURN_MACROS */ 566#endif /* ACPI_SIMPLE_RETURN_MACROS */
567 567
568#else /* !DEBUG_FUNC_TRACE */ 568#else /* !CONFIG_ACPI_DEBUG_FUNC_TRACE */
569 569
570#define ACPI_FUNCTION_TRACE(a) 570#define ACPI_FUNCTION_TRACE(a)
571#define ACPI_FUNCTION_TRACE_PTR(a,b) 571#define ACPI_FUNCTION_TRACE_PTR(a,b)
@@ -584,7 +584,7 @@
584#define return_UINT32(s) return(s) 584#define return_UINT32(s) return(s)
585#define return_PTR(s) return(s) 585#define return_PTR(s) return(s)
586 586
587#endif /* DEBUG_FUNC_TRACE */ 587#endif /* CONFIG_ACPI_DEBUG_FUNC_TRACE */
588 588
589/* Conditional execution */ 589/* Conditional execution */
590 590
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index fb7171b1bd22..2f1c68c7a727 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -321,6 +321,11 @@ struct acpi_bus_event {
321 321
322extern struct kobject *acpi_kobj; 322extern struct kobject *acpi_kobj;
323extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int); 323extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int);
324void acpi_bus_private_data_handler(acpi_handle, u32, void *);
325int acpi_bus_get_private_data(acpi_handle, void **);
326extern int acpi_notifier_call_chain(struct acpi_device *, u32, u32);
327extern int register_acpi_notifier(struct notifier_block *);
328extern int unregister_acpi_notifier(struct notifier_block *);
324/* 329/*
325 * External Functions 330 * External Functions
326 */ 331 */
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index f85f77a538aa..9757a040a505 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -48,6 +48,7 @@
48#define ACPI_BUTTON_HID_SLEEPF "LNXSLPBN" 48#define ACPI_BUTTON_HID_SLEEPF "LNXSLPBN"
49#define ACPI_VIDEO_HID "LNXVIDEO" 49#define ACPI_VIDEO_HID "LNXVIDEO"
50#define ACPI_BAY_HID "LNXIOBAY" 50#define ACPI_BAY_HID "LNXIOBAY"
51#define ACPI_DOCK_HID "LNXDOCK"
51 52
52/* -------------------------------------------------------------------------- 53/* --------------------------------------------------------------------------
53 PCI 54 PCI
@@ -73,7 +74,6 @@ struct pci_bus;
73 74
74acpi_status acpi_get_pci_id(acpi_handle handle, struct acpi_pci_id *id); 75acpi_status acpi_get_pci_id(acpi_handle handle, struct acpi_pci_id *id);
75int acpi_pci_bind(struct acpi_device *device); 76int acpi_pci_bind(struct acpi_device *device);
76int acpi_pci_unbind(struct acpi_device *device);
77int acpi_pci_bind_root(struct acpi_device *device, struct acpi_pci_id *id, 77int acpi_pci_bind_root(struct acpi_device *device, struct acpi_pci_id *id,
78 struct pci_bus *bus); 78 struct pci_bus *bus);
79 79
diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h
index 62c5ee4311da..173972672175 100644
--- a/include/acpi/acpi_numa.h
+++ b/include/acpi/acpi_numa.h
@@ -15,7 +15,6 @@ extern int pxm_to_node(int);
15extern int node_to_pxm(int); 15extern int node_to_pxm(int);
16extern void __acpi_map_pxm_to_node(int, int); 16extern void __acpi_map_pxm_to_node(int, int);
17extern int acpi_map_pxm_to_node(int); 17extern int acpi_map_pxm_to_node(int);
18extern void __cpuinit acpi_unmap_pxm_to_node(int);
19 18
20#endif /* CONFIG_ACPI_NUMA */ 19#endif /* CONFIG_ACPI_NUMA */
21#endif /* __ACP_NUMA_H */ 20#endif /* __ACP_NUMA_H */
diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
index ca882b8e7d10..022a5fd80c8e 100644
--- a/include/acpi/acpiosxf.h
+++ b/include/acpi/acpiosxf.h
@@ -181,6 +181,9 @@ acpi_os_install_interrupt_handler(u32 gsi,
181acpi_status 181acpi_status
182acpi_os_remove_interrupt_handler(u32 gsi, acpi_osd_handler service_routine); 182acpi_os_remove_interrupt_handler(u32 gsi, acpi_osd_handler service_routine);
183 183
184void acpi_os_gpe_count(u32 gpe_number);
185void acpi_os_fixed_event_count(u32 fixed_event_number);
186
184/* 187/*
185 * Threads and Scheduling 188 * Threads and Scheduling
186 */ 189 */
@@ -239,8 +242,8 @@ acpi_status acpi_os_validate_interface(char *interface);
239acpi_status acpi_osi_invalidate(char* interface); 242acpi_status acpi_osi_invalidate(char* interface);
240 243
241acpi_status 244acpi_status
242acpi_os_validate_address(u8 space_id, 245acpi_os_validate_address(u8 space_id, acpi_physical_address address,
243 acpi_physical_address address, acpi_size length); 246 acpi_size length, char *name);
244 247
245u64 acpi_os_get_timer(void); 248u64 acpi_os_get_timer(void);
246 249
diff --git a/include/acpi/processor.h b/include/acpi/processor.h
index 6e253b5b0f3b..cdc8004cfd12 100644
--- a/include/acpi/processor.h
+++ b/include/acpi/processor.h
@@ -4,7 +4,7 @@
4#include <linux/kernel.h> 4#include <linux/kernel.h>
5#include <linux/cpu.h> 5#include <linux/cpu.h>
6#include <linux/cpuidle.h> 6#include <linux/cpuidle.h>
7 7#include <linux/thermal.h>
8#include <asm/acpi.h> 8#include <asm/acpi.h>
9 9
10#define ACPI_PROCESSOR_BUSY_METRIC 10 10#define ACPI_PROCESSOR_BUSY_METRIC 10
@@ -34,6 +34,7 @@
34 34
35#define ACPI_CSTATE_SYSTEMIO (0) 35#define ACPI_CSTATE_SYSTEMIO (0)
36#define ACPI_CSTATE_FFH (1) 36#define ACPI_CSTATE_FFH (1)
37#define ACPI_CSTATE_HALT (2)
37 38
38/* Power Management */ 39/* Power Management */
39 40
@@ -64,7 +65,7 @@ struct acpi_processor_cx {
64 u8 valid; 65 u8 valid;
65 u8 type; 66 u8 type;
66 u32 address; 67 u32 address;
67 u8 space_id; 68 u8 entry_method;
68 u8 index; 69 u8 index;
69 u32 latency; 70 u32 latency;
70 u32 latency_ticks; 71 u32 latency_ticks;
@@ -176,6 +177,8 @@ struct acpi_processor_throttling {
176 u32 address; 177 u32 address;
177 u8 duty_offset; 178 u8 duty_offset;
178 u8 duty_width; 179 u8 duty_width;
180 u8 tsd_valid_flag;
181 unsigned int shared_type;
179 struct acpi_processor_tx states[ACPI_PROCESSOR_MAX_THROTTLING]; 182 struct acpi_processor_tx states[ACPI_PROCESSOR_MAX_THROTTLING];
180}; 183};
181 184
@@ -218,7 +221,7 @@ struct acpi_processor {
218 struct acpi_processor_performance *performance; 221 struct acpi_processor_performance *performance;
219 struct acpi_processor_throttling throttling; 222 struct acpi_processor_throttling throttling;
220 struct acpi_processor_limit limit; 223 struct acpi_processor_limit limit;
221 224 struct thermal_cooling_device *cdev;
222 /* the _PDC objects for this processor, if any */ 225 /* the _PDC objects for this processor, if any */
223 struct acpi_object_list *pdc; 226 struct acpi_object_list *pdc;
224}; 227};
@@ -316,7 +319,7 @@ static inline int acpi_processor_ppc_has_changed(struct acpi_processor *pr)
316int acpi_processor_get_throttling_info(struct acpi_processor *pr); 319int acpi_processor_get_throttling_info(struct acpi_processor *pr);
317extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state); 320extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state);
318extern struct file_operations acpi_processor_throttling_fops; 321extern struct file_operations acpi_processor_throttling_fops;
319 322extern void acpi_processor_throttling_init(void);
320/* in processor_idle.c */ 323/* in processor_idle.c */
321int acpi_processor_power_init(struct acpi_processor *pr, 324int acpi_processor_power_init(struct acpi_processor *pr,
322 struct acpi_device *device); 325 struct acpi_device *device);
@@ -330,7 +333,7 @@ extern struct cpuidle_driver acpi_idle_driver;
330/* in processor_thermal.c */ 333/* in processor_thermal.c */
331int acpi_processor_get_limit_info(struct acpi_processor *pr); 334int acpi_processor_get_limit_info(struct acpi_processor *pr);
332extern struct file_operations acpi_processor_limit_fops; 335extern struct file_operations acpi_processor_limit_fops;
333 336extern struct thermal_cooling_device_ops processor_cooling_ops;
334#ifdef CONFIG_CPU_FREQ 337#ifdef CONFIG_CPU_FREQ
335void acpi_thermal_cpufreq_init(void); 338void acpi_thermal_cpufreq_init(void);
336void acpi_thermal_cpufreq_exit(void); 339void acpi_thermal_cpufreq_exit(void);
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 63f2e6ed698f..ddbe7efe590e 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -25,6 +25,7 @@
25#ifndef _LINUX_ACPI_H 25#ifndef _LINUX_ACPI_H
26#define _LINUX_ACPI_H 26#define _LINUX_ACPI_H
27 27
28#include <linux/ioport.h> /* for struct resource */
28 29
29#ifdef CONFIG_ACPI 30#ifdef CONFIG_ACPI
30 31
@@ -43,8 +44,6 @@
43#include <linux/dmi.h> 44#include <linux/dmi.h>
44 45
45 46
46#ifdef CONFIG_ACPI
47
48enum acpi_irq_model_id { 47enum acpi_irq_model_id {
49 ACPI_IRQ_MODEL_PIC = 0, 48 ACPI_IRQ_MODEL_PIC = 0,
50 ACPI_IRQ_MODEL_IOAPIC, 49 ACPI_IRQ_MODEL_IOAPIC,
@@ -80,7 +79,6 @@ typedef int (*acpi_table_handler) (struct acpi_table_header *table);
80typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end); 79typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);
81 80
82char * __acpi_map_table (unsigned long phys_addr, unsigned long size); 81char * __acpi_map_table (unsigned long phys_addr, unsigned long size);
83unsigned long acpi_find_rsdp (void);
84int acpi_boot_init (void); 82int acpi_boot_init (void);
85int acpi_boot_table_init (void); 83int acpi_boot_table_init (void);
86int acpi_numa_init (void); 84int acpi_numa_init (void);
@@ -115,8 +113,8 @@ int acpi_unmap_lsapic(int cpu);
115 113
116int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); 114int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
117int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base); 115int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
118 116void acpi_irq_stats_init(void);
119extern int acpi_mp_config; 117extern u32 acpi_irq_handled;
120 118
121extern struct acpi_mcfg_allocation *pci_mmcfg_config; 119extern struct acpi_mcfg_allocation *pci_mmcfg_config;
122extern int pci_mmcfg_config_num; 120extern int pci_mmcfg_config_num;
@@ -124,12 +122,6 @@ extern int pci_mmcfg_config_num;
124extern int sbf_port; 122extern int sbf_port;
125extern unsigned long acpi_realmode_flags; 123extern unsigned long acpi_realmode_flags;
126 124
127#else /* !CONFIG_ACPI */
128
129#define acpi_mp_config 0
130
131#endif /* !CONFIG_ACPI */
132
133int acpi_register_gsi (u32 gsi, int triggering, int polarity); 125int acpi_register_gsi (u32 gsi, int triggering, int polarity);
134int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); 126int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
135 127
@@ -145,8 +137,6 @@ extern int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity);
145 */ 137 */
146void acpi_unregister_gsi (u32 gsi); 138void acpi_unregister_gsi (u32 gsi);
147 139
148#ifdef CONFIG_ACPI
149
150struct acpi_prt_entry { 140struct acpi_prt_entry {
151 struct list_head node; 141 struct list_head node;
152 struct acpi_pci_id id; 142 struct acpi_pci_id id;
@@ -179,8 +169,6 @@ struct acpi_pci_driver {
179int acpi_pci_register_driver(struct acpi_pci_driver *driver); 169int acpi_pci_register_driver(struct acpi_pci_driver *driver);
180void acpi_pci_unregister_driver(struct acpi_pci_driver *driver); 170void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
181 171
182#endif /* CONFIG_ACPI */
183
184#ifdef CONFIG_ACPI_EC 172#ifdef CONFIG_ACPI_EC
185 173
186extern int ec_read(u8 addr, u8 *val); 174extern int ec_read(u8 addr, u8 *val);
@@ -192,6 +180,26 @@ extern int ec_transaction(u8 command,
192 180
193#endif /*CONFIG_ACPI_EC*/ 181#endif /*CONFIG_ACPI_EC*/
194 182
183#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
184
185typedef void (*wmi_notify_handler) (u32 value, void *context);
186
187extern acpi_status wmi_evaluate_method(const char *guid, u8 instance,
188 u32 method_id,
189 const struct acpi_buffer *in,
190 struct acpi_buffer *out);
191extern acpi_status wmi_query_block(const char *guid, u8 instance,
192 struct acpi_buffer *out);
193extern acpi_status wmi_set_block(const char *guid, u8 instance,
194 const struct acpi_buffer *in);
195extern acpi_status wmi_install_notify_handler(const char *guid,
196 wmi_notify_handler handler, void *data);
197extern acpi_status wmi_remove_notify_handler(const char *guid);
198extern acpi_status wmi_get_event_data(u32 event, struct acpi_buffer *out);
199extern bool wmi_has_guid(const char *guid);
200
201#endif /* CONFIG_ACPI_WMI */
202
195extern int acpi_blacklisted(void); 203extern int acpi_blacklisted(void);
196#ifdef CONFIG_DMI 204#ifdef CONFIG_DMI
197extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); 205extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d);
@@ -217,6 +225,13 @@ extern int pnpacpi_disabled;
217#define PXM_INVAL (-1) 225#define PXM_INVAL (-1)
218#define NID_INVAL (-1) 226#define NID_INVAL (-1)
219 227
228int acpi_check_resource_conflict(struct resource *res);
229
230int acpi_check_region(resource_size_t start, resource_size_t n,
231 const char *name);
232int acpi_check_mem_region(resource_size_t start, resource_size_t n,
233 const char *name);
234
220#else /* CONFIG_ACPI */ 235#else /* CONFIG_ACPI */
221 236
222static inline int acpi_boot_init(void) 237static inline int acpi_boot_init(void)
@@ -229,5 +244,22 @@ static inline int acpi_boot_table_init(void)
229 return 0; 244 return 0;
230} 245}
231 246
247static inline int acpi_check_resource_conflict(struct resource *res)
248{
249 return 0;
250}
251
252static inline int acpi_check_region(resource_size_t start, resource_size_t n,
253 const char *name)
254{
255 return 0;
256}
257
258static inline int acpi_check_mem_region(resource_size_t start,
259 resource_size_t n, const char *name)
260{
261 return 0;
262}
263
232#endif /* !CONFIG_ACPI */ 264#endif /* !CONFIG_ACPI */
233#endif /*_LINUX_ACPI_H*/ 265#endif /*_LINUX_ACPI_H*/
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index b0fd85ab9efb..385d45b616db 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -46,9 +46,10 @@ struct cpuidle_state {
46/* Idle State Flags */ 46/* Idle State Flags */
47#define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */ 47#define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */
48#define CPUIDLE_FLAG_CHECK_BM (0x02) /* BM activity will exit state */ 48#define CPUIDLE_FLAG_CHECK_BM (0x02) /* BM activity will exit state */
49#define CPUIDLE_FLAG_SHALLOW (0x10) /* low latency, minimal savings */ 49#define CPUIDLE_FLAG_POLL (0x10) /* no latency, no savings */
50#define CPUIDLE_FLAG_BALANCED (0x20) /* medium latency, moderate savings */ 50#define CPUIDLE_FLAG_SHALLOW (0x20) /* low latency, minimal savings */
51#define CPUIDLE_FLAG_DEEP (0x40) /* high latency, large savings */ 51#define CPUIDLE_FLAG_BALANCED (0x40) /* medium latency, moderate savings */
52#define CPUIDLE_FLAG_DEEP (0x80) /* high latency, large savings */
52 53
53#define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000) 54#define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000)
54 55
@@ -178,4 +179,10 @@ static inline void cpuidle_unregister_governor(struct cpuidle_governor *gov) { }
178 179
179#endif 180#endif
180 181
182#ifdef CONFIG_ARCH_HAS_CPU_RELAX
183#define CPUIDLE_DRIVER_STATE_START 1
184#else
185#define CPUIDLE_DRIVER_STATE_START 0
186#endif
187
181#endif /* _LINUX_CPUIDLE_H */ 188#endif /* _LINUX_CPUIDLE_H */
diff --git a/include/linux/dmi.h b/include/linux/dmi.h
index 5b42a659a308..b1251b2af568 100644
--- a/include/linux/dmi.h
+++ b/include/linux/dmi.h
@@ -79,7 +79,6 @@ extern void dmi_scan_machine(void);
79extern int dmi_get_year(int field); 79extern int dmi_get_year(int field);
80extern int dmi_name_in_vendors(const char *str); 80extern int dmi_name_in_vendors(const char *str);
81extern int dmi_available; 81extern int dmi_available;
82extern char *dmi_get_slot(int slot);
83 82
84#else 83#else
85 84
@@ -90,7 +89,6 @@ static inline const struct dmi_device * dmi_find_device(int type, const char *na
90static inline int dmi_get_year(int year) { return 0; } 89static inline int dmi_get_year(int year) { return 0; }
91static inline int dmi_name_in_vendors(const char *s) { return 0; } 90static inline int dmi_name_in_vendors(const char *s) { return 0; }
92#define dmi_available 0 91#define dmi_available 0
93static inline char *dmi_get_slot(int slot) { return NULL; }
94 92
95#endif 93#endif
96 94
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 18222f267bc4..9e01f376840a 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -243,6 +243,7 @@ extern enum system_states {
243#define TAINT_BAD_PAGE (1<<5) 243#define TAINT_BAD_PAGE (1<<5)
244#define TAINT_USER (1<<6) 244#define TAINT_USER (1<<6)
245#define TAINT_DIE (1<<7) 245#define TAINT_DIE (1<<7)
246#define TAINT_OVERRIDDEN_ACPI_TABLE (1<<8)
246 247
247extern void dump_stack(void) __cold; 248extern void dump_stack(void) __cold;
248 249
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 5cbf3e371012..68ed19ccf1f7 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -94,6 +94,7 @@ enum power_supply_property {
94 /* Properties of type `const char *' */ 94 /* Properties of type `const char *' */
95 POWER_SUPPLY_PROP_MODEL_NAME, 95 POWER_SUPPLY_PROP_MODEL_NAME,
96 POWER_SUPPLY_PROP_MANUFACTURER, 96 POWER_SUPPLY_PROP_MANUFACTURER,
97 POWER_SUPPLY_PROP_SERIAL_NUMBER,
97}; 98};
98 99
99enum power_supply_type { 100enum power_supply_type {
diff --git a/include/linux/sonypi.h b/include/linux/sonypi.h
index 40c7b5d993b9..f41ffd7c2dd9 100644
--- a/include/linux/sonypi.h
+++ b/include/linux/sonypi.h
@@ -101,6 +101,8 @@
101#define SONYPI_EVENT_FNKEY_RELEASED 59 101#define SONYPI_EVENT_FNKEY_RELEASED 59
102#define SONYPI_EVENT_WIRELESS_ON 60 102#define SONYPI_EVENT_WIRELESS_ON 60
103#define SONYPI_EVENT_WIRELESS_OFF 61 103#define SONYPI_EVENT_WIRELESS_OFF 61
104#define SONYPI_EVENT_ZOOM_IN_PRESSED 62
105#define SONYPI_EVENT_ZOOM_OUT_PRESSED 63
104 106
105/* get/set brightness */ 107/* get/set brightness */
106#define SONYPI_IOCGBRT _IOR('v', 0, __u8) 108#define SONYPI_IOCGBRT _IOR('v', 0, __u8)
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
new file mode 100644
index 000000000000..bba7712cadc7
--- /dev/null
+++ b/include/linux/thermal.h
@@ -0,0 +1,94 @@
1/*
2 * thermal.h ($Revision: 0 $)
3 *
4 * Copyright (C) 2008 Intel Corp
5 * Copyright (C) 2008 Zhang Rui <rui.zhang@intel.com>
6 * Copyright (C) 2008 Sujith Thomas <sujith.thomas@intel.com>
7 *
8 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; version 2 of the License.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
21 *
22 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 */
24
25#ifndef __THERMAL_H__
26#define __THERMAL_H__
27
28#include <linux/idr.h>
29#include <linux/device.h>
30
31struct thermal_zone_device;
32struct thermal_cooling_device;
33
34struct thermal_zone_device_ops {
35 int (*bind) (struct thermal_zone_device *,
36 struct thermal_cooling_device *);
37 int (*unbind) (struct thermal_zone_device *,
38 struct thermal_cooling_device *);
39 int (*get_temp) (struct thermal_zone_device *, char *);
40 int (*get_mode) (struct thermal_zone_device *, char *);
41 int (*set_mode) (struct thermal_zone_device *, const char *);
42 int (*get_trip_type) (struct thermal_zone_device *, int, char *);
43 int (*get_trip_temp) (struct thermal_zone_device *, int, char *);
44};
45
46struct thermal_cooling_device_ops {
47 int (*get_max_state) (struct thermal_cooling_device *, char *);
48 int (*get_cur_state) (struct thermal_cooling_device *, char *);
49 int (*set_cur_state) (struct thermal_cooling_device *, unsigned int);
50};
51
52#define THERMAL_TRIPS_NONE -1
53#define THERMAL_MAX_TRIPS 10
54#define THERMAL_NAME_LENGTH 20
55struct thermal_cooling_device {
56 int id;
57 char type[THERMAL_NAME_LENGTH];
58 struct device device;
59 void *devdata;
60 struct thermal_cooling_device_ops *ops;
61 struct list_head node;
62};
63
64#define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \
65 ((long)t-2732+5)/10 : ((long)t-2732-5)/10)
66#define CELSIUS_TO_KELVIN(t) ((t)*10+2732)
67
68struct thermal_zone_device {
69 int id;
70 char type[THERMAL_NAME_LENGTH];
71 struct device device;
72 void *devdata;
73 int trips;
74 struct thermal_zone_device_ops *ops;
75 struct list_head cooling_devices;
76 struct idr idr;
77 struct mutex lock; /* protect cooling devices list */
78 struct list_head node;
79};
80
81struct thermal_zone_device *thermal_zone_device_register(char *, int, void *,
82 struct thermal_zone_device_ops *);
83void thermal_zone_device_unregister(struct thermal_zone_device *);
84
85int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int,
86 struct thermal_cooling_device *);
87int thermal_zone_unbind_cooling_device(struct thermal_zone_device *, int,
88 struct thermal_cooling_device *);
89
90struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
91 struct thermal_cooling_device_ops *);
92void thermal_cooling_device_unregister(struct thermal_cooling_device *);
93
94#endif /* __THERMAL_H__ */