aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/bus.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/bus.c')
-rw-r--r--drivers/acpi/bus.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 606f8733a776..dd3983cece92 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -43,7 +43,7 @@ ACPI_MODULE_NAME("acpi_bus")
43extern void __init acpi_pic_sci_set_trigger(unsigned int irq, u16 trigger); 43extern void __init acpi_pic_sci_set_trigger(unsigned int irq, u16 trigger);
44#endif 44#endif
45 45
46FADT_DESCRIPTOR acpi_fadt; 46struct fadt_descriptor acpi_fadt;
47EXPORT_SYMBOL(acpi_fadt); 47EXPORT_SYMBOL(acpi_fadt);
48 48
49struct acpi_device *acpi_root; 49struct acpi_device *acpi_root;
@@ -205,12 +205,14 @@ int acpi_bus_set_power(acpi_handle handle, int state)
205 * Get device's current power state if it's unknown 205 * Get device's current power state if it's unknown
206 * This means device power state isn't initialized or previous setting failed 206 * This means device power state isn't initialized or previous setting failed
207 */ 207 */
208 if (device->power.state == ACPI_STATE_UNKNOWN) 208 if (!device->flags.force_power_state) {
209 acpi_bus_get_power(device->handle, &device->power.state); 209 if (device->power.state == ACPI_STATE_UNKNOWN)
210 if (state == device->power.state) { 210 acpi_bus_get_power(device->handle, &device->power.state);
211 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at D%d\n", 211 if (state == device->power.state) {
212 state)); 212 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at D%d\n",
213 return_VALUE(0); 213 state));
214 return_VALUE(0);
215 }
214 } 216 }
215 if (!device->power.states[state].flags.valid) { 217 if (!device->power.states[state].flags.valid) {
216 ACPI_DEBUG_PRINT((ACPI_DB_WARN, "Device does not support D%d\n", 218 ACPI_DEBUG_PRINT((ACPI_DB_WARN, "Device does not support D%d\n",
@@ -596,6 +598,8 @@ void __init acpi_early_init(void)
596 if (acpi_disabled) 598 if (acpi_disabled)
597 return_VOID; 599 return_VOID;
598 600
601 printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
602
599 /* enable workarounds, unless strict ACPI spec. compliance */ 603 /* enable workarounds, unless strict ACPI spec. compliance */
600 if (!acpi_strict) 604 if (!acpi_strict)
601 acpi_gbl_enable_interpreter_slack = TRUE; 605 acpi_gbl_enable_interpreter_slack = TRUE;
@@ -617,7 +621,7 @@ void __init acpi_early_init(void)
617 /* 621 /*
618 * Get a separate copy of the FADT for use by other drivers. 622 * Get a separate copy of the FADT for use by other drivers.
619 */ 623 */
620 status = acpi_get_table(ACPI_TABLE_FADT, 1, &buffer); 624 status = acpi_get_table(ACPI_TABLE_ID_FADT, 1, &buffer);
621 if (ACPI_FAILURE(status)) { 625 if (ACPI_FAILURE(status)) {
622 printk(KERN_ERR PREFIX "Unable to get the FADT\n"); 626 printk(KERN_ERR PREFIX "Unable to get the FADT\n");
623 goto error0; 627 goto error0;
@@ -743,8 +747,6 @@ static int __init acpi_init(void)
743 747
744 ACPI_FUNCTION_TRACE("acpi_init"); 748 ACPI_FUNCTION_TRACE("acpi_init");
745 749
746 printk(KERN_INFO PREFIX "Subsystem revision %08x\n", ACPI_CA_VERSION);
747
748 if (acpi_disabled) { 750 if (acpi_disabled) {
749 printk(KERN_INFO PREFIX "Interpreter disabled.\n"); 751 printk(KERN_INFO PREFIX "Interpreter disabled.\n");
750 return_VALUE(-ENODEV); 752 return_VALUE(-ENODEV);