aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers/acpi
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2010-12-10 11:32:19 +0000
committerKeir Fraser <keir@xen.org>2010-12-10 11:32:19 +0000
commit40bb4af7c0a0c9a6cec02b6a071907dc0695045c (patch)
tree771696d52784b6a0338e13a142ac800792e6dc61 /xen/drivers/acpi
parentac989b123e22114c9b9860ec172284ef68fd4d9f (diff)
downloadxen-40bb4af7c0a0c9a6cec02b6a071907dc0695045c.tar.gz
xen-40bb4af7c0a0c9a6cec02b6a071907dc0695045c.tar.bz2
xen-40bb4af7c0a0c9a6cec02b6a071907dc0695045c.zip
x86 acpi: Follow Windows behaviour more closely during reset.
This follows some changes proposed for upstream Linux: 1. Do not check the FADT reset register size/offset 2. Try ACPI poking twice during our reset attempt sequence Hopefully this will help us reset reliably on a wider range of platforms. Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/drivers/acpi')
-rw-r--r--xen/drivers/acpi/reboot.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/xen/drivers/acpi/reboot.c b/xen/drivers/acpi/reboot.c
index 69ea8afeea..744c500a76 100644
--- a/xen/drivers/acpi/reboot.c
+++ b/xen/drivers/acpi/reboot.c
@@ -10,9 +10,10 @@ 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))
+ /* 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;