aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'include/acpi')
-rw-r--r--include/acpi/pdc_intel.h5
-rw-r--r--include/acpi/processor.h27
2 files changed, 31 insertions, 1 deletions
diff --git a/include/acpi/pdc_intel.h b/include/acpi/pdc_intel.h
index 3fa81d55cd0c..c5472be6f3a2 100644
--- a/include/acpi/pdc_intel.h
+++ b/include/acpi/pdc_intel.h
@@ -18,6 +18,11 @@
18 ACPI_PDC_C_C1_HALT | \ 18 ACPI_PDC_C_C1_HALT | \
19 ACPI_PDC_P_FFH) 19 ACPI_PDC_P_FFH)
20 20
21#define ACPI_PDC_EST_CAPABILITY_SWSMP (ACPI_PDC_SMP_C1PT | \
22 ACPI_PDC_C_C1_HALT | \
23 ACPI_PDC_SMP_P_SWCOORD | \
24 ACPI_PDC_P_FFH)
25
21#define ACPI_PDC_C_CAPABILITY_SMP (ACPI_PDC_SMP_C2C3 | \ 26#define ACPI_PDC_C_CAPABILITY_SMP (ACPI_PDC_SMP_C2C3 | \
22 ACPI_PDC_SMP_C1PT | \ 27 ACPI_PDC_SMP_C1PT | \
23 ACPI_PDC_C_C1_HALT) 28 ACPI_PDC_C_C1_HALT)
diff --git a/include/acpi/processor.h b/include/acpi/processor.h
index badf0277b1be..0c46d1b3dda2 100644
--- a/include/acpi/processor.h
+++ b/include/acpi/processor.h
@@ -3,6 +3,7 @@
3 3
4#include <linux/kernel.h> 4#include <linux/kernel.h>
5#include <linux/config.h> 5#include <linux/config.h>
6#include <linux/cpu.h>
6 7
7#include <asm/acpi.h> 8#include <asm/acpi.h>
8 9
@@ -18,6 +19,17 @@
18 19
19#define ACPI_PDC_REVISION_ID 0x1 20#define ACPI_PDC_REVISION_ID 0x1
20 21
22#define ACPI_PSD_REV0_REVISION 0 /* Support for _PSD as in ACPI 3.0 */
23#define ACPI_PSD_REV0_ENTRIES 5
24
25/*
26 * Types of coordination defined in ACPI 3.0. Same macros can be used across
27 * P, C and T states
28 */
29#define DOMAIN_COORD_TYPE_SW_ALL 0xfc
30#define DOMAIN_COORD_TYPE_SW_ANY 0xfd
31#define DOMAIN_COORD_TYPE_HW_ALL 0xfe
32
21/* Power Management */ 33/* Power Management */
22 34
23struct acpi_processor_cx; 35struct acpi_processor_cx;
@@ -66,6 +78,14 @@ struct acpi_processor_power {
66 78
67/* Performance Management */ 79/* Performance Management */
68 80
81struct acpi_psd_package {
82 acpi_integer num_entries;
83 acpi_integer revision;
84 acpi_integer domain;
85 acpi_integer coord_type;
86 acpi_integer num_processors;
87} __attribute__ ((packed));
88
69struct acpi_pct_register { 89struct acpi_pct_register {
70 u8 descriptor; 90 u8 descriptor;
71 u16 length; 91 u16 length;
@@ -92,7 +112,9 @@ struct acpi_processor_performance {
92 struct acpi_pct_register status_register; 112 struct acpi_pct_register status_register;
93 unsigned int state_count; 113 unsigned int state_count;
94 struct acpi_processor_px *states; 114 struct acpi_processor_px *states;
95 115 struct acpi_psd_package domain_info;
116 cpumask_t shared_cpu_map;
117 unsigned int shared_type;
96}; 118};
97 119
98/* Throttling Control */ 120/* Throttling Control */
@@ -161,6 +183,9 @@ struct acpi_processor_errata {
161 } piix4; 183 } piix4;
162}; 184};
163 185
186extern int acpi_processor_preregister_performance(
187 struct acpi_processor_performance **performance);
188
164extern int acpi_processor_register_performance(struct acpi_processor_performance 189extern int acpi_processor_register_performance(struct acpi_processor_performance
165 *performance, unsigned int cpu); 190 *performance, unsigned int cpu);
166extern void acpi_processor_unregister_performance(struct 191extern void acpi_processor_unregister_performance(struct