Blame view

include/linux/acpi.h 10.4 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
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
  /*
   * acpi.h - ACPI Interface
   *
   * Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
   *
   * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation; either version 2 of the License, or
   * (at your option) any later version.
   *
   * 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.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program; if not, write to the Free Software
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   *
   * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   */
  
  #ifndef _LINUX_ACPI_H
  #define _LINUX_ACPI_H
443dea72d   Thomas Renninger   ACPI: Export acpi...
27
  #include <linux/ioport.h>	/* for struct resource */
3f5948fa2   David Mosberger   [PATCH] Include <...
28

25be5e6cc   Len Brown   [PATCH] VIA IRQ q...
29
  #ifdef	CONFIG_ACPI
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
30
31
32
33
34
  #ifndef _LINUX
  #define _LINUX
  #endif
  
  #include <linux/list.h>
29b71a1ca   Thomas Renninger   ACPI: autoload mo...
35
  #include <linux/mod_devicetable.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
36
37
38
39
  
  #include <acpi/acpi.h>
  #include <acpi/acpi_bus.h>
  #include <acpi/acpi_drivers.h>
762834e8b   Yasunori Goto   [PATCH] Unify pxm...
40
  #include <acpi/acpi_numa.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
41
  #include <asm/acpi.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
42

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
43
44
45
46
  enum acpi_irq_model_id {
  	ACPI_IRQ_MODEL_PIC = 0,
  	ACPI_IRQ_MODEL_IOAPIC,
  	ACPI_IRQ_MODEL_IOSAPIC,
3948ec940   John Keller   ACPI: Altix: ACPI...
47
  	ACPI_IRQ_MODEL_PLATFORM,
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
48
49
50
51
  	ACPI_IRQ_MODEL_COUNT
  };
  
  extern enum acpi_irq_model_id	acpi_irq_model;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
52
53
54
55
56
57
58
59
  enum acpi_interrupt_id {
  	ACPI_INTERRUPT_PMI	= 1,
  	ACPI_INTERRUPT_INIT,
  	ACPI_INTERRUPT_CPEI,
  	ACPI_INTERRUPT_COUNT
  };
  
  #define	ACPI_SPACE_MEM		0
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
60
61
62
63
64
65
66
  enum acpi_address_range_id {
  	ACPI_ADDRESS_RANGE_MEMORY = 1,
  	ACPI_ADDRESS_RANGE_RESERVED = 2,
  	ACPI_ADDRESS_RANGE_ACPI = 3,
  	ACPI_ADDRESS_RANGE_NVS	= 4,
  	ACPI_ADDRESS_RANGE_COUNT
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
67

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
68
  /* Table Handlers */
15a58ed12   Alexey Starikovskiy   ACPICA: Remove du...
69
  typedef int (*acpi_table_handler) (struct acpi_table_header *table);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
70

5a8765a84   Len Brown   ACPI: acpi_madt_e...
71
  typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
72
73
  
  char * __acpi_map_table (unsigned long phys_addr, unsigned long size);
970ec1a82   Yinghai Lu   [IA64] fix __apci...
74
  void __acpi_unmap_table(char *map, unsigned long size);
cbf9bd603   Yinghai Lu   acpi: get boot_cp...
75
  int early_acpi_boot_init(void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
76
  int acpi_boot_init (void);
8558e3943   Len Brown   x86, ACPI: delete...
77
  void acpi_boot_table_init (void);
3c999f142   Yinghai Lu   x86: check comman...
78
  int acpi_mps_check (void);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
79
80
81
  int acpi_numa_init (void);
  
  int acpi_table_init (void);
ceb6c4683   Alexey Starikovskiy   ACPICA: Remove du...
82
  int acpi_table_parse (char *id, acpi_table_handler handler);
6eb87fed5   Len Brown   ACPI: acpi_table_...
83
84
  int __init acpi_table_parse_entries(char *id, unsigned long table_size,
  	int entry_id, acpi_table_entry_handler handler, unsigned int max_entries);
5a8765a84   Len Brown   ACPI: acpi_madt_e...
85
  int acpi_table_parse_madt (enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries);
ceb6c4683   Alexey Starikovskiy   ACPICA: Remove du...
86
  int acpi_parse_mcfg (struct acpi_table_header *header);
5f3b1a8b6   Alexey Starikovskiy   ACPICA: Remove du...
87
  void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
88
89
90
  
  /* the following four functions are architecture-dependent */
  void acpi_numa_slit_init (struct acpi_table_slit *slit);
15a58ed12   Alexey Starikovskiy   ACPICA: Remove du...
91
  void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
7237d3de7   Suresh Siddha   x86, ACPI: add su...
92
  void acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa);
15a58ed12   Alexey Starikovskiy   ACPICA: Remove du...
93
  void acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
94
95
96
97
98
99
100
  void acpi_numa_arch_fixup(void);
  
  #ifdef CONFIG_ACPI_HOTPLUG_CPU
  /* Arch dependent functions for cpu hotplug support */
  int acpi_map_lsapic(acpi_handle handle, int *pcpu);
  int acpi_unmap_lsapic(int cpu);
  #endif /* CONFIG_ACPI_HOTPLUG_CPU */
b1bb248a5   Kenji Kaneshige   [PATCH] ACPI base...
101
102
  int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
  int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
5229e87d5   Len Brown   ACPI: create /sys...
103
  void acpi_irq_stats_init(void);
5229e87d5   Len Brown   ACPI: create /sys...
104
  extern u32 acpi_irq_handled;
88bea188b   Len Brown   ACPI: add /sys/fi...
105
  extern u32 acpi_irq_not_handled;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
106

c255d844d   Pavel Machek   [PATCH] suspend-t...
107
  extern int sbf_port;
77afcf78a   Pavel Machek   PM: Integrate bee...
108
  extern unsigned long acpi_realmode_flags;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
109

a2f809b08   Yinghai Lu   irq: change ACPI ...
110
  int acpi_register_gsi (struct device *dev, u32 gsi, int triggering, int polarity);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
111
  int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
2c2df8418   Eric W. Biederman   x86, acpi/irq: In...
112
  int acpi_isa_irq_to_gsi (unsigned isa_irq, u32 *gsi);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
113

61fd47e0c   Shaohua Li   ACPI: fix two IRQ...
114
  #ifdef CONFIG_X86_IO_APIC
9a0a91bb5   Eric W. Biederman   x86, acpi/irq: Te...
115
  extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity);
61fd47e0c   Shaohua Li   ACPI: fix two IRQ...
116
  #else
9a0a91bb5   Eric W. Biederman   x86, acpi/irq: Te...
117
  #define acpi_get_override_irq(gsi, trigger, polarity) (-1)
61fd47e0c   Shaohua Li   ACPI: fix two IRQ...
118
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
119
120
121
122
123
  /*
   * This function undoes the effect of one call to acpi_register_gsi().
   * If this matches the last registration, any IRQ resources for gsi
   * are freed.
   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
124
  void acpi_unregister_gsi (u32 gsi);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
125

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
126
127
128
  struct pci_dev;
  
  int acpi_pci_irq_enable (struct pci_dev *dev);
c9c3e457d   David Shaohua Li   [ACPI] PNPACPI vs...
129
  void acpi_penalize_isa_irq(int irq, int active);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
130

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
131
  void acpi_pci_irq_disable (struct pci_dev *dev);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
132
133
134
135
136
137
138
139
140
  
  struct acpi_pci_driver {
  	struct acpi_pci_driver *next;
  	int (*add)(acpi_handle handle);
  	void (*remove)(acpi_handle handle);
  };
  
  int acpi_pci_register_driver(struct acpi_pci_driver *driver);
  void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
141
142
  extern int ec_read(u8 addr, u8 *val);
  extern int ec_write(u8 addr, u8 val);
d7a76e4cb   Lennart Poettering   ACPI: consolidate...
143
144
  extern int ec_transaction(u8 command,
                            const u8 *wdata, unsigned wdata_len,
1cb7b1e0d   Thomas Renninger   ACPI EC: remove d...
145
                            u8 *rdata, unsigned rdata_len);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
146

bff431e49   Carlos Corbacho   ACPI: WMI: Add AC...
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
  #if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
  
  typedef void (*wmi_notify_handler) (u32 value, void *context);
  
  extern acpi_status wmi_evaluate_method(const char *guid, u8 instance,
  					u32 method_id,
  					const struct acpi_buffer *in,
  					struct acpi_buffer *out);
  extern acpi_status wmi_query_block(const char *guid, u8 instance,
  					struct acpi_buffer *out);
  extern acpi_status wmi_set_block(const char *guid, u8 instance,
  					const struct acpi_buffer *in);
  extern acpi_status wmi_install_notify_handler(const char *guid,
  					wmi_notify_handler handler, void *data);
  extern acpi_status wmi_remove_notify_handler(const char *guid);
  extern acpi_status wmi_get_event_data(u32 event, struct acpi_buffer *out);
  extern bool wmi_has_guid(const char *guid);
  
  #endif	/* CONFIG_ACPI_WMI */
c3d6de698   Thomas Renninger   ACPI video: if no...
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
  #define ACPI_VIDEO_OUTPUT_SWITCHING			0x0001
  #define ACPI_VIDEO_DEVICE_POSTING			0x0002
  #define ACPI_VIDEO_ROM_AVAILABLE			0x0004
  #define ACPI_VIDEO_BACKLIGHT				0x0008
  #define ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR		0x0010
  #define ACPI_VIDEO_BACKLIGHT_FORCE_VIDEO		0x0020
  #define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR	0x0040
  #define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO		0x0080
  #define ACPI_VIDEO_BACKLIGHT_DMI_VENDOR			0x0100
  #define ACPI_VIDEO_BACKLIGHT_DMI_VIDEO			0x0200
  #define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR		0x0400
  #define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VIDEO		0x0800
  
  #if defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE)
  
  extern long acpi_video_get_capabilities(acpi_handle graphics_dev_handle);
  extern long acpi_is_video_device(struct acpi_device *device);
  extern int acpi_video_backlight_support(void);
  extern int acpi_video_display_switch_support(void);
  
  #else
  
  static inline long acpi_video_get_capabilities(acpi_handle graphics_dev_handle)
  {
  	return 0;
  }
  
  static inline long acpi_is_video_device(struct acpi_device *device)
  {
  	return 0;
  }
  
  static inline int acpi_video_backlight_support(void)
  {
  	return 0;
  }
  
  static inline int acpi_video_display_switch_support(void)
  {
  	return 0;
  }
  
  #endif /* defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE) */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
209
  extern int acpi_blacklisted(void);
d4b7dc499   Len Brown   ACPI: make _OSI(L...
210
  extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d);
d90aa92c0   Lin Ming   acpi: fix _OSI st...
211
  extern void acpi_osi_setup(char *str);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
212

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
213
214
  #ifdef CONFIG_ACPI_NUMA
  int acpi_get_pxm(acpi_handle handle);
1e3590e2e   Yasunori Goto   [PATCH] pgdat all...
215
  int acpi_get_node(acpi_handle *handle);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
216
217
218
219
220
  #else
  static inline int acpi_get_pxm(acpi_handle handle)
  {
  	return 0;
  }
1e3590e2e   Yasunori Goto   [PATCH] pgdat all...
221
222
223
224
  static inline int acpi_get_node(acpi_handle *handle)
  {
  	return 0;
  }
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
225
  #endif
1e3590e2e   Yasunori Goto   [PATCH] pgdat all...
226
  extern int acpi_paddr_to_node(u64 start_addr, u64 size);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
227
228
  
  extern int pnpacpi_disabled;
3484d7981   David Rientjes   x86_64: fake pxm-...
229
  #define PXM_INVAL	(-1)
3484d7981   David Rientjes   x86_64: fake pxm-...
230

876fba43c   Jean Delvare   ACPI: add const t...
231
  int acpi_check_resource_conflict(const struct resource *res);
443dea72d   Thomas Renninger   ACPI: Export acpi...
232

df92e6959   Thomas Renninger   ACPI: track opreg...
233
234
  int acpi_check_region(resource_size_t start, resource_size_t n,
  		      const char *name);
df92e6959   Thomas Renninger   ACPI: track opreg...
235

70dd6beac   Jean Delvare   hwmon: (asus_atk0...
236
  int acpi_resources_are_enforced(void);
d8f3de0d2   Rafael J. Wysocki   Suspend-related p...
237
  #ifdef CONFIG_PM_SLEEP
bdfe6b7c6   Shaohua Li   pm: acpi hibernat...
238
  void __init acpi_no_s4_hw_signature(void);
d8f3de0d2   Rafael J. Wysocki   Suspend-related p...
239
  void __init acpi_old_suspend_ordering(void);
72ad5d77f   Rafael J. Wysocki   ACPI / Sleep: All...
240
  void __init acpi_nvs_nosave(void);
d8f3de0d2   Rafael J. Wysocki   Suspend-related p...
241
  #endif /* CONFIG_PM_SLEEP */
9f5404d8e   Kenji Kaneshige   PCI/ACPI: rename ...
242

70023de88   Shaohua Li   ACPI: Add a gener...
243
244
245
246
247
248
  struct acpi_osc_context {
  	char *uuid_str; /* uuid string */
  	int rev;
  	struct acpi_buffer cap; /* arg2/arg3 */
  	struct acpi_buffer ret; /* free by caller if success */
  };
9f5404d8e   Kenji Kaneshige   PCI/ACPI: rename ...
249
250
251
  #define OSC_QUERY_TYPE			0
  #define OSC_SUPPORT_TYPE 		1
  #define OSC_CONTROL_TYPE		2
9f5404d8e   Kenji Kaneshige   PCI/ACPI: rename ...
252
253
254
255
256
257
258
  
  /* _OSC DW0 Definition */
  #define OSC_QUERY_ENABLE		1
  #define OSC_REQUEST_ERROR		2
  #define OSC_INVALID_UUID_ERROR		4
  #define OSC_INVALID_REVISION_ERROR	8
  #define OSC_CAPABILITIES_MASK_ERROR	16
70023de88   Shaohua Li   ACPI: Add a gener...
259
  acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context);
3563ff964   Shaohua Li   ACPI: Add platfor...
260
261
262
263
264
265
  /* platform-wide _OSC bits */
  #define OSC_SB_PAD_SUPPORT		1
  #define OSC_SB_PPC_OST_SUPPORT		2
  #define OSC_SB_PR3_SUPPORT		4
  #define OSC_SB_CPUHP_OST_SUPPORT	8
  #define OSC_SB_APEI_SUPPORT		16
eccddd32c   Huang Ying   ACPI, APEI, Add A...
266
  extern bool osc_sb_apei_support_acked;
3a9622dc4   Shaohua Li   ACPI: cleanup pci...
267
  /* PCI defined _OSC bits */
9f5404d8e   Kenji Kaneshige   PCI/ACPI: rename ...
268
269
270
271
272
273
  /* _OSC DW1 Definition (OS Support Fields) */
  #define OSC_EXT_PCI_CONFIG_SUPPORT		1
  #define OSC_ACTIVE_STATE_PWR_SUPPORT 		2
  #define OSC_CLOCK_PWR_CAPABILITY_SUPPORT	4
  #define OSC_PCI_SEGMENT_GROUPS_SUPPORT		8
  #define OSC_MSI_SUPPORT				16
3a9622dc4   Shaohua Li   ACPI: cleanup pci...
274
  #define OSC_PCI_SUPPORT_MASKS			0x1f
9f5404d8e   Kenji Kaneshige   PCI/ACPI: rename ...
275
276
277
278
279
280
281
  
  /* _OSC DW1 Definition (OS Control Fields) */
  #define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL	1
  #define OSC_SHPC_NATIVE_HP_CONTROL 		2
  #define OSC_PCI_EXPRESS_PME_CONTROL		4
  #define OSC_PCI_EXPRESS_AER_CONTROL		8
  #define OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL	16
3a9622dc4   Shaohua Li   ACPI: cleanup pci...
282
  #define OSC_PCI_CONTROL_MASKS 	(OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | 	\
9f5404d8e   Kenji Kaneshige   PCI/ACPI: rename ...
283
284
285
286
  				OSC_SHPC_NATIVE_HP_CONTROL | 		\
  				OSC_PCI_EXPRESS_PME_CONTROL |		\
  				OSC_PCI_EXPRESS_AER_CONTROL |		\
  				OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL)
d90116ea3   Rafael J. Wysocki   PCI/ACPI: Make ac...
287
288
289
  
  #define OSC_PCI_NATIVE_HOTPLUG	(OSC_PCI_EXPRESS_NATIVE_HP_CONTROL |	\
  				OSC_SHPC_NATIVE_HP_CONTROL)
75fb60f26   Rafael J. Wysocki   ACPI/PCI: Negotia...
290
291
  extern acpi_status acpi_pci_osc_control_set(acpi_handle handle,
  					     u32 *mask, u32 req);
4a7a16dc0   Len Brown   ACPI: move declar...
292
  extern void acpi_early_init(void);
e55a5999f   Feng Tang   ACPI: Handle CONF...
293
294
295
  #else	/* !CONFIG_ACPI */
  
  #define acpi_disabled 1
4a7a16dc0   Len Brown   ACPI: move declar...
296
  static inline void acpi_early_init(void) { }
53de49f52   Andrew Morton   [ACPI] CONFIG_ACP...
297

cbf9bd603   Yinghai Lu   acpi: get boot_cp...
298
299
300
301
  static inline int early_acpi_boot_init(void)
  {
  	return 0;
  }
53de49f52   Andrew Morton   [ACPI] CONFIG_ACP...
302
303
304
305
  static inline int acpi_boot_init(void)
  {
  	return 0;
  }
8558e3943   Len Brown   x86, ACPI: delete...
306
  static inline void acpi_boot_table_init(void)
53de49f52   Andrew Morton   [ACPI] CONFIG_ACP...
307
  {
8558e3943   Len Brown   x86, ACPI: delete...
308
  	return;
53de49f52   Andrew Morton   [ACPI] CONFIG_ACP...
309
  }
3c999f142   Yinghai Lu   x86: check comman...
310
311
312
313
  static inline int acpi_mps_check(void)
  {
  	return 0;
  }
443dea72d   Thomas Renninger   ACPI: Export acpi...
314
315
316
317
  static inline int acpi_check_resource_conflict(struct resource *res)
  {
  	return 0;
  }
df92e6959   Thomas Renninger   ACPI: track opreg...
318
319
320
321
322
  static inline int acpi_check_region(resource_size_t start, resource_size_t n,
  				    const char *name)
  {
  	return 0;
  }
e55a5999f   Feng Tang   ACPI: Handle CONF...
323
324
325
326
327
328
  struct acpi_table_header;
  static inline int acpi_table_parse(char *id,
  				int (*handler)(struct acpi_table_header *))
  {
  	return -1;
  }
d4b7dc499   Len Brown   ACPI: make _OSI(L...
329
  #endif	/* !CONFIG_ACPI */
6fed05c9c   Rafael J. Wysocki   ACPI / PM: Fix bu...
330
331
332
333
334
335
336
337
338
  
  #ifdef CONFIG_ACPI_SLEEP
  int suspend_nvs_register(unsigned long start, unsigned long size);
  #else
  static inline int suspend_nvs_register(unsigned long a, unsigned long b)
  {
  	return 0;
  }
  #endif
25be5e6cc   Len Brown   [PATCH] VIA IRQ q...
339
  #endif	/*_LINUX_ACPI_H*/