diff options
Diffstat (limited to 'drivers/acpi/reboot.c')
-rw-r--r-- | drivers/acpi/reboot.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c index 93f91142d7ad..a6c77e8b37bd 100644 --- a/drivers/acpi/reboot.c +++ b/drivers/acpi/reboot.c | |||
@@ -15,9 +15,15 @@ void acpi_reboot(void) | |||
15 | 15 | ||
16 | rr = &acpi_gbl_FADT.reset_register; | 16 | rr = &acpi_gbl_FADT.reset_register; |
17 | 17 | ||
18 | /* Is the reset register supported? */ | 18 | /* ACPI reset register was only introduced with v2 of the FADT */ |
19 | if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) || | 19 | |
20 | rr->bit_width != 8 || rr->bit_offset != 0) | 20 | if (acpi_gbl_FADT.header.revision < 2) |
21 | return; | ||
22 | |||
23 | /* Is the reset register supported? The spec says we should be | ||
24 | * checking the bit width and bit offset, but Windows ignores | ||
25 | * these fields */ | ||
26 | if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER)) | ||
21 | return; | 27 | return; |
22 | 28 | ||
23 | reset_value = acpi_gbl_FADT.reset_value; | 29 | reset_value = acpi_gbl_FADT.reset_value; |
@@ -45,6 +51,4 @@ void acpi_reboot(void) | |||
45 | acpi_reset(); | 51 | acpi_reset(); |
46 | break; | 52 | break; |
47 | } | 53 | } |
48 | /* Wait ten seconds */ | ||
49 | acpi_os_stall(10000000); | ||
50 | } | 54 | } |