diff options
Diffstat (limited to 'include/acpi')
| -rw-r--r-- | include/acpi/acpi_drivers.h | 1 | ||||
| -rw-r--r-- | include/acpi/acpi_numa.h | 4 | ||||
| -rw-r--r-- | include/acpi/acpixf.h | 2 | ||||
| -rw-r--r-- | include/acpi/cppc_acpi.h | 7 | ||||
| -rw-r--r-- | include/acpi/pcc.h | 29 | ||||
| -rw-r--r-- | include/acpi/platform/aclinux.h | 4 | ||||
| -rw-r--r-- | include/acpi/processor.h | 27 | ||||
| -rw-r--r-- | include/acpi/video.h | 2 | 
8 files changed, 64 insertions, 12 deletions
| diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h index 797ae2ec8eee..29c691265b49 100644 --- a/include/acpi/acpi_drivers.h +++ b/include/acpi/acpi_drivers.h @@ -78,6 +78,7 @@  /* ACPI PCI Interrupt Link (pci_link.c) */ +int acpi_irq_penalty_init(void);  int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,  			       int *polarity, char **name);  int acpi_pci_link_free_irq(acpi_handle handle); diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h index 94a37cd7fbda..d4b72944ccda 100644 --- a/include/acpi/acpi_numa.h +++ b/include/acpi/acpi_numa.h @@ -15,6 +15,10 @@ extern int pxm_to_node(int);  extern int node_to_pxm(int);  extern int acpi_map_pxm_to_node(int);  extern unsigned char acpi_srat_revision; +extern int acpi_numa __initdata; + +extern void bad_srat(void); +extern int srat_disabled(void);  #endif				/* CONFIG_ACPI_NUMA */  #endif				/* __ACP_NUMA_H */ diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index 4e4c21491c41..1ff3a76c265d 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h @@ -192,7 +192,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_do_not_use_xsdt, FALSE);  /*   * Optionally support group module level code.   */ -ACPI_INIT_GLOBAL(u8, acpi_gbl_group_module_level_code, FALSE); +ACPI_INIT_GLOBAL(u8, acpi_gbl_group_module_level_code, TRUE);  /*   * Optionally use 32-bit FADT addresses if and when there is a conflict diff --git a/include/acpi/cppc_acpi.h b/include/acpi/cppc_acpi.h index dad8af3ebeb5..284965cbc9af 100644 --- a/include/acpi/cppc_acpi.h +++ b/include/acpi/cppc_acpi.h @@ -15,10 +15,9 @@  #define _CPPC_ACPI_H  #include <linux/acpi.h> -#include <linux/mailbox_controller.h> -#include <linux/mailbox_client.h>  #include <linux/types.h> +#include <acpi/pcc.h>  #include <acpi/processor.h>  /* Only support CPPCv2 for now. */ @@ -130,8 +129,4 @@ extern int cppc_set_perf(int cpu, struct cppc_perf_ctrls *perf_ctrls);  extern int cppc_get_perf_caps(int cpu, struct cppc_perf_caps *caps);  extern int acpi_get_psd_map(struct cpudata **); -/* Methods to interact with the PCC mailbox controller. */ -extern struct mbox_chan * -	pcc_mbox_request_channel(struct mbox_client *, unsigned int); -  #endif /* _CPPC_ACPI_H*/ diff --git a/include/acpi/pcc.h b/include/acpi/pcc.h new file mode 100644 index 000000000000..17a940a14477 --- /dev/null +++ b/include/acpi/pcc.h @@ -0,0 +1,29 @@ +/* + * PCC (Platform Communications Channel) methods + * + * 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; version 2 + * of the License. + */ + +#ifndef _PCC_H +#define _PCC_H + +#include <linux/mailbox_controller.h> +#include <linux/mailbox_client.h> + +#ifdef CONFIG_PCC +extern struct mbox_chan *pcc_mbox_request_channel(struct mbox_client *cl, +						  int subspace_id); +extern void pcc_mbox_free_channel(struct mbox_chan *chan); +#else +static inline struct mbox_chan *pcc_mbox_request_channel(struct mbox_client *cl, +							 int subspace_id) +{ +	return NULL; +} +static inline void pcc_mbox_free_channel(struct mbox_chan *chan) { } +#endif + +#endif /* _PCC_H */ diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 45c2d6528829..93b61b1f2beb 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h @@ -73,6 +73,10 @@  #define ACPI_DEBUGGER  #endif +#ifdef CONFIG_ACPI_DEBUG +#define ACPI_MUTEX_DEBUG +#endif +  #include <linux/string.h>  #include <linux/kernel.h>  #include <linux/ctype.h> diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 6f1805dd5d3c..bfe6b2e10f3a 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h @@ -39,6 +39,7 @@  #define ACPI_CSTATE_SYSTEMIO	0  #define ACPI_CSTATE_FFH		1  #define ACPI_CSTATE_HALT	2 +#define ACPI_CSTATE_INTEGER	3  #define ACPI_CX_DESC_LEN	32 @@ -67,9 +68,25 @@ struct acpi_processor_cx {  	char desc[ACPI_CX_DESC_LEN];  }; +struct acpi_lpi_state { +	u32 min_residency; +	u32 wake_latency; /* worst case */ +	u32 flags; +	u32 arch_flags; +	u32 res_cnt_freq; +	u32 enable_parent_state; +	u64 address; +	u8 index; +	u8 entry_method; +	char desc[ACPI_CX_DESC_LEN]; +}; +  struct acpi_processor_power {  	int count; -	struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER]; +	union { +		struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER]; +		struct acpi_lpi_state lpi_states[ACPI_PROCESSOR_MAX_POWER]; +	};  	int timer_broadcast_on_state;  }; @@ -189,6 +206,7 @@ struct acpi_processor_flags {  	u8 bm_control:1;  	u8 bm_check:1;  	u8 has_cst:1; +	u8 has_lpi:1;  	u8 power_setup_done:1;  	u8 bm_rld_set:1;  	u8 need_hotplug_init:1; @@ -242,7 +260,7 @@ extern int acpi_processor_get_performance_info(struct acpi_processor *pr);  DECLARE_PER_CPU(struct acpi_processor *, processors);  extern struct acpi_processor_errata errata; -#ifdef ARCH_HAS_POWER_INIT +#if defined(ARCH_HAS_POWER_INIT) && defined(CONFIG_ACPI_PROCESSOR_CSTATE)  void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags,  					unsigned int cpu);  int acpi_processor_ffh_cstate_probe(unsigned int cpu, @@ -309,6 +327,7 @@ static inline int acpi_processor_get_bios_limit(int cpu, unsigned int *limit)  /* in processor_core.c */  phys_cpuid_t acpi_get_phys_id(acpi_handle, int type, u32 acpi_id); +phys_cpuid_t acpi_map_madt_entry(u32 acpi_id);  int acpi_map_cpuid(phys_cpuid_t phys_id, u32 acpi_id);  int acpi_get_cpuid(acpi_handle, int type, u32 acpi_id); @@ -371,7 +390,7 @@ extern struct cpuidle_driver acpi_idle_driver;  #ifdef CONFIG_ACPI_PROCESSOR_IDLE  int acpi_processor_power_init(struct acpi_processor *pr);  int acpi_processor_power_exit(struct acpi_processor *pr); -int acpi_processor_cst_has_changed(struct acpi_processor *pr); +int acpi_processor_power_state_has_changed(struct acpi_processor *pr);  int acpi_processor_hotplug(struct acpi_processor *pr);  #else  static inline int acpi_processor_power_init(struct acpi_processor *pr) @@ -384,7 +403,7 @@ static inline int acpi_processor_power_exit(struct acpi_processor *pr)  	return -ENODEV;  } -static inline int acpi_processor_cst_has_changed(struct acpi_processor *pr) +static inline int acpi_processor_power_state_has_changed(struct acpi_processor *pr)  {  	return -ENODEV;  } diff --git a/include/acpi/video.h b/include/acpi/video.h index 5731ccb42585..4536bd345ab4 100644 --- a/include/acpi/video.h +++ b/include/acpi/video.h @@ -54,7 +54,7 @@ extern int acpi_video_get_levels(struct acpi_device *device,  				 struct acpi_video_device_brightness **dev_br,  				 int *pmax_level);  #else -static inline int acpi_video_register(void) { return 0; } +static inline int acpi_video_register(void) { return -ENODEV; }  static inline void acpi_video_unregister(void) { return; }  static inline int acpi_video_get_edid(struct acpi_device *device, int type,  				      int device_id, void **edid) |