aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/acpi/processor.h27
-rw-r--r--include/linux/cpufreq.h4
2 files changed, 30 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
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
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index 17866d7e2b71..f7d988366941 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -73,6 +73,8 @@ struct cpufreq_real_policy {
73 73
74struct cpufreq_policy { 74struct cpufreq_policy {
75 cpumask_t cpus; /* affected CPUs */ 75 cpumask_t cpus; /* affected CPUs */
76 unsigned int shared_type; /* ANY or ALL affected CPUs
77 should set cpufreq */
76 unsigned int cpu; /* cpu nr of registered CPU */ 78 unsigned int cpu; /* cpu nr of registered CPU */
77 struct cpufreq_cpuinfo cpuinfo;/* see above */ 79 struct cpufreq_cpuinfo cpuinfo;/* see above */
78 80
@@ -99,6 +101,8 @@ struct cpufreq_policy {
99#define CPUFREQ_INCOMPATIBLE (1) 101#define CPUFREQ_INCOMPATIBLE (1)
100#define CPUFREQ_NOTIFY (2) 102#define CPUFREQ_NOTIFY (2)
101 103
104#define CPUFREQ_SHARED_TYPE_ALL (0) /* All dependent CPUs should set freq */
105#define CPUFREQ_SHARED_TYPE_ANY (1) /* Freq can be set from any dependent CPU */
102 106
103/******************** cpufreq transition notifiers *******************/ 107/******************** cpufreq transition notifiers *******************/
104 108