AcpiReset: Bypass port validation mechanism.

Allow writes to reserved ports. This change may eventually be
driven down in to AcpiWrite and AcpiRead.
This commit is contained in:
Robert Moore 2009-07-30 08:38:30 -07:00
parent 79f8819b96
commit a5777b37bd

View File

@ -157,9 +157,23 @@ AcpiReset (
return_ACPI_STATUS (AE_NOT_EXIST);
}
/* Write the reset value to the reset register */
if (ResetReg->SpaceId == 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.
*/
Status = AcpiOsWritePort ((ACPI_IO_ADDRESS) ResetReg->Address,
AcpiGbl_FADT.ResetValue, ResetReg->BitWidth);
}
else
{
/* Write the reset value to the reset register */
Status = AcpiHwWrite (AcpiGbl_FADT.ResetValue, ResetReg);
}
Status = AcpiHwWrite (AcpiGbl_FADT.ResetValue, ResetReg);
return_ACPI_STATUS (Status);
}