diff options
author | Keir Fraser <keir@xen.org> | 2010-12-10 11:32:19 +0000 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2010-12-10 11:32:19 +0000 |
commit | 40bb4af7c0a0c9a6cec02b6a071907dc0695045c (patch) | |
tree | 771696d52784b6a0338e13a142ac800792e6dc61 /xen/drivers/acpi | |
parent | ac989b123e22114c9b9860ec172284ef68fd4d9f (diff) | |
download | xen-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.c | 7 |
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; |