diff options
author | Len Brown <len.brown@intel.com> | 2011-03-23 02:34:15 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-03-23 02:34:15 -0400 |
commit | f7f28f7e8c42c67c4bce24415c6cd6da222a1798 (patch) | |
tree | bcfeea0ca42e17c04d119b5bfb086fbf112903ca /drivers/acpi | |
parent | 5c129a8600100a5d0f5fdbc1014c5dba1d307bc4 (diff) | |
parent | 95cf3e12e7f659e536215b37c67d46f3e2ce95cc (diff) |
Merge branch 'reset' into release
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/acpica/hwxface.c | 10 | ||||
-rw-r--r-- | drivers/acpi/reboot.c | 14 |
2 files changed, 14 insertions, 10 deletions
diff --git a/drivers/acpi/acpica/hwxface.c b/drivers/acpi/acpica/hwxface.c index 6f98d210e71c..f75f81ad15c9 100644 --- a/drivers/acpi/acpica/hwxface.c +++ b/drivers/acpi/acpica/hwxface.c | |||
@@ -80,14 +80,14 @@ acpi_status acpi_reset(void) | |||
80 | 80 | ||
81 | if (reset_reg->space_id == ACPI_ADR_SPACE_SYSTEM_IO) { | 81 | if (reset_reg->space_id == ACPI_ADR_SPACE_SYSTEM_IO) { |
82 | /* | 82 | /* |
83 | * For I/O space, write directly to the OSL. This bypasses the port | 83 | * For I/O space, write directly to the OSL. This |
84 | * validation mechanism, which may block a valid write to the reset | 84 | * bypasses the port validation mechanism, which may |
85 | * register. | 85 | * block a valid write to the reset register. Spec |
86 | * section 4.7.3.6 requires register width to be 8. | ||
86 | */ | 87 | */ |
87 | status = | 88 | status = |
88 | acpi_os_write_port((acpi_io_address) reset_reg->address, | 89 | acpi_os_write_port((acpi_io_address) reset_reg->address, |
89 | acpi_gbl_FADT.reset_value, | 90 | acpi_gbl_FADT.reset_value, 8); |
90 | reset_reg->bit_width); | ||
91 | } else { | 91 | } else { |
92 | /* Write the reset value to the reset register */ | 92 | /* Write the reset value to the reset register */ |
93 | 93 | ||
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 | } |