diff options
author | Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> | 2005-12-14 15:05:00 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-02-09 03:21:48 -0500 |
commit | 3b2d99429e3386b6e2ac949fc72486509c8bbe36 (patch) | |
tree | b2162152b2c7fa56b13f74a0b166b978dd3ee548 /include/acpi | |
parent | 0bdd340c092b0936f78a54bdbd3927463ed4fca3 (diff) |
P-state software coordination for ACPI core
http://bugzilla.kernel.org/show_bug.cgi?id=5737
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/processor.h | 27 |
1 files changed, 26 insertions, 1 deletions
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 | ||
23 | struct acpi_processor_cx; | 35 | struct acpi_processor_cx; |
@@ -66,6 +78,14 @@ struct acpi_processor_power { | |||
66 | 78 | ||
67 | /* Performance Management */ | 79 | /* Performance Management */ |
68 | 80 | ||
81 | struct 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 | |||
69 | struct acpi_pct_register { | 89 | struct 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 | ||
186 | extern int acpi_processor_preregister_performance( | ||
187 | struct acpi_processor_performance **performance); | ||
188 | |||
164 | extern int acpi_processor_register_performance(struct acpi_processor_performance | 189 | extern int acpi_processor_register_performance(struct acpi_processor_performance |
165 | *performance, unsigned int cpu); | 190 | *performance, unsigned int cpu); |
166 | extern void acpi_processor_unregister_performance(struct | 191 | extern void acpi_processor_unregister_performance(struct |