ACPICA: Fix access width for reset vector
authorMatthew Garrett <mjg@redhat.com>
Fri, 11 Mar 2011 21:12:18 +0000 (16:12 -0500)
committerLen Brown <len.brown@intel.com>
Wed, 23 Mar 2011 03:51:59 +0000 (23:51 -0400)
Section 4.7.3.6 of the ACPI specification requires that the register width
of the reset vector be 8 bits. Windows simply hardcodes the access to be
a byte and ignores the width provided in the FADT, so make sure that we
do the same.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/acpica/hwxface.c

index 6f98d210e71c4f23ae4b3ccd01b84cc2574b2221..f75f81ad15c962a20c0cbc1afa7ba035e9ccca8c 100644 (file)
@@ -80,14 +80,14 @@ acpi_status acpi_reset(void)
 
        if (reset_reg->space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
                /*
-                * 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.
+                * 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. 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 */