Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[sfrench/cifs-2.6.git] / include / acpi / processor.h
index ef7d83a414709742880ce23c36af67dcf4c29a39..77371b3cdc44ef0fe03ec774407b78615060a007 100644 (file)
@@ -2,6 +2,7 @@
 #define __ACPI_PROCESSOR_H
 
 #include <linux/kernel.h>
+#include <linux/cpu.h>
 
 #include <asm/acpi.h>
 
 
 #define ACPI_PDC_REVISION_ID           0x1
 
+#define ACPI_PSD_REV0_REVISION         0 /* Support for _PSD as in ACPI 3.0 */
+#define ACPI_PSD_REV0_ENTRIES          5
+
+/*
+ * Types of coordination defined in ACPI 3.0. Same macros can be used across
+ * P, C and T states
+ */
+#define DOMAIN_COORD_TYPE_SW_ALL       0xfc
+#define DOMAIN_COORD_TYPE_SW_ANY       0xfd
+#define DOMAIN_COORD_TYPE_HW_ALL       0xfe
+
 /* Power Management */
 
 struct acpi_processor_cx;
@@ -65,6 +77,14 @@ struct acpi_processor_power {
 
 /* Performance Management */
 
+struct acpi_psd_package {
+       acpi_integer num_entries;
+       acpi_integer revision;
+       acpi_integer domain;
+       acpi_integer coord_type;
+       acpi_integer num_processors;
+} __attribute__ ((packed));
+
 struct acpi_pct_register {
        u8 descriptor;
        u16 length;
@@ -91,7 +111,9 @@ struct acpi_processor_performance {
        struct acpi_pct_register status_register;
        unsigned int state_count;
        struct acpi_processor_px *states;
-
+       struct acpi_psd_package domain_info;
+       cpumask_t shared_cpu_map;
+       unsigned int shared_type;
 };
 
 /* Throttling Control */
@@ -160,6 +182,9 @@ struct acpi_processor_errata {
        } piix4;
 };
 
+extern int acpi_processor_preregister_performance(
+               struct acpi_processor_performance **performance);
+
 extern int acpi_processor_register_performance(struct acpi_processor_performance
                                               *performance, unsigned int cpu);
 extern void acpi_processor_unregister_performance(struct