]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/acpi/processor_core.c
Pull misc into release branch
[linux-2.6-omap-h63xx.git] / drivers / acpi / processor_core.c
index 99d1516d1e7023c067b8485272440dab43111485..498422343f38a64550532c9ab8733d94397322d5 100644 (file)
 #define ACPI_PROCESSOR_FILE_LIMIT      "limit"
 #define ACPI_PROCESSOR_NOTIFY_PERFORMANCE 0x80
 #define ACPI_PROCESSOR_NOTIFY_POWER    0x81
+#define ACPI_PROCESSOR_NOTIFY_THROTTLING       0x82
 
 #define ACPI_PROCESSOR_LIMIT_USER      0
 #define ACPI_PROCESSOR_LIMIT_THERMAL   1
 
-#define ACPI_STA_PRESENT 0x00000001
-
 #define _COMPONENT             ACPI_PROCESSOR_COMPONENT
 ACPI_MODULE_NAME("processor_core");
 
@@ -86,11 +85,19 @@ static int acpi_processor_info_open_fs(struct inode *inode, struct file *file);
 static void acpi_processor_notify(acpi_handle handle, u32 event, void *data);
 static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu);
 static int acpi_processor_handle_eject(struct acpi_processor *pr);
+extern int acpi_processor_tstate_has_changed(struct acpi_processor *pr);
+
+
+static const struct acpi_device_id processor_device_ids[] = {
+       {ACPI_PROCESSOR_HID, 0},
+       {"", 0},
+};
+MODULE_DEVICE_TABLE(acpi, processor_device_ids);
 
 static struct acpi_driver acpi_processor_driver = {
        .name = "processor",
        .class = ACPI_PROCESSOR_CLASS,
-       .ids = ACPI_PROCESSOR_HID,
+       .ids = processor_device_ids,
        .ops = {
                .add = acpi_processor_add,
                .remove = acpi_processor_remove,
@@ -117,7 +124,6 @@ struct acpi_processor_errata errata __read_mostly;
 
 static int acpi_processor_errata_piix4(struct pci_dev *dev)
 {
-       u8 rev = 0;
        u8 value1 = 0;
        u8 value2 = 0;
 
@@ -129,9 +135,7 @@ static int acpi_processor_errata_piix4(struct pci_dev *dev)
         * Note that 'dev' references the PIIX4 ACPI Controller.
         */
 
-       pci_read_config_byte(dev, PCI_REVISION_ID, &rev);
-
-       switch (rev) {
+       switch (dev->revision) {
        case 0:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found PIIX4 A-step\n"));
                break;
@@ -149,7 +153,7 @@ static int acpi_processor_errata_piix4(struct pci_dev *dev)
                break;
        }
 
-       switch (rev) {
+       switch (dev->revision) {
 
        case 0:         /* PIIX4 A-step */
        case 1:         /* PIIX4 B-step */
@@ -701,6 +705,9 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
                acpi_processor_cst_has_changed(pr);
                acpi_bus_generate_event(device, event, 0);
                break;
+       case ACPI_PROCESSOR_NOTIFY_THROTTLING:
+               acpi_processor_tstate_has_changed(pr);
+               acpi_bus_generate_event(device, event, 0);
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
                                  "Unsupported event [0x%x]\n", event));
@@ -779,7 +786,7 @@ static int is_processor_present(acpi_handle handle)
 
 
        status = acpi_evaluate_integer(handle, "_STA", NULL, &sta);
-       if (ACPI_FAILURE(status) || !(sta & ACPI_STA_PRESENT)) {
+       if (ACPI_FAILURE(status) || !(sta & ACPI_STA_DEVICE_PRESENT)) {
                ACPI_EXCEPTION((AE_INFO, status, "Processor Device is not present"));
                return 0;
        }