diff options
author | Kyle McMartin <kyle@redhat.com> | 2011-03-28 15:15:32 -0400 |
---|---|---|
committer | Kyle McMartin <kyle@redhat.com> | 2011-03-28 17:22:32 -0400 |
commit | db49e9edd88a3f41e7c5f249c26583c579a41bb1 (patch) | |
tree | 8aa40ec5918044c135000a68524ddee9da2172a3 /acpi_reboot.patch | |
parent | 561c61e4ca69b9f215c5f476aea5e78928fe4af1 (diff) | |
download | kernel-db49e9edd88a3f41e7c5f249c26583c579a41bb1.tar.gz kernel-db49e9edd88a3f41e7c5f249c26583c579a41bb1.tar.xz kernel-db49e9edd88a3f41e7c5f249c26583c579a41bb1.zip |
update to snapshot 2.6.38-git19
Diffstat (limited to 'acpi_reboot.patch')
-rw-r--r-- | acpi_reboot.patch | 51 |
1 files changed, 1 insertions, 50 deletions
diff --git a/acpi_reboot.patch b/acpi_reboot.patch index a980b31f7..c67cf950b 100644 --- a/acpi_reboot.patch +++ b/acpi_reboot.patch @@ -22,7 +22,7 @@ index c495aa8..c770e66 100644 + * 1) If the FADT has the ACPI reboot register flag set, try it + * 2) If still alive, write to the keyboard controller + * 3) If still alive, write to the ACPI reboot register again -+ * 4) Ig still alive, write to the keyboard controller again ++ * 4) If still alive, write to the keyboard controller again + * + * If the machine is still alive at this stage, it gives up. We default to + * following the same pattern, except that if we're still alive after (4) we'll @@ -51,52 +51,3 @@ index c495aa8..c770e66 100644 case BOOT_TRIPLE: load_idt(&no_idt); -diff --git a/drivers/acpi/acpica/hwxface.c b/drivers/acpi/acpica/hwxface.c -index 50cc3be..c6a4e63 100644 ---- a/drivers/acpi/acpica/hwxface.c -+++ b/drivers/acpi/acpica/hwxface.c -@@ -82,12 +82,11 @@ acpi_status acpi_reset(void) - /* - * For I/O space, write directly to the OSL. This bypasses the port - * validation mechanism, which may block a valid write to the reset -- * register. -+ * register. Spec section 4.7.3.6 requires register width to be 8. - */ - status = - acpi_os_write_port((acpi_io_address) reset_reg->address, -- acpi_gbl_FADT.reset_value, -- reset_reg->bit_width); -+ acpi_gbl_FADT.reset_value, 8); - } else { - /* Write the reset value to the reset register */ - -diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c -index 93f9114..a6c77e8b 100644 ---- a/drivers/acpi/reboot.c -+++ b/drivers/acpi/reboot.c -@@ -15,9 +15,15 @@ void acpi_reboot(void) - - rr = &acpi_gbl_FADT.reset_register; - -- /* Is the reset register supported? */ -- if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) || -- rr->bit_width != 8 || rr->bit_offset != 0) -+ /* ACPI reset register was only introduced with v2 of the FADT */ -+ -+ if (acpi_gbl_FADT.header.revision < 2) -+ return; -+ -+ /* Is the reset register supported? The spec says we should be -+ * checking the bit width and bit offset, but Windows ignores -+ * these fields */ -+ if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER)) - return; - - reset_value = acpi_gbl_FADT.reset_value; -@@ -45,6 +51,4 @@ void acpi_reboot(void) - acpi_reset(); - break; - } -- /* Wait ten seconds */ -- acpi_os_stall(10000000); - } |