Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6734fe57 authored by Matthew Garrett's avatar Matthew Garrett Committed by Len Brown
Browse files

ACPI: Bug compatibility for Windows on the ACPI reboot vector



Windows ignores the bit_offset and bit_width, despite the spec requiring
that they be validated. Drop the checks so that we match this behaviour.
Windows also goes straight for the keyboard controller if the ACPI reboot
fails, so we shouldn't sleep if we're still alive.

Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent f17d9cbf
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -15,9 +15,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;
@@ -45,6 +46,4 @@ void acpi_reboot(void)
		acpi_reset();
		break;
	}
	/* Wait ten seconds */
	acpi_os_stall(10000000);
}