Check in files with local changes:
* In the resume path, give up after waiting for a while for WAK_STS to be set. Some BIOSs never set it. * Allow access to the field if it is within the region size rounded up to a multiple of the access byte width. This overcomes "off-by-one" programming errors in the AML often found in Toshiba laptops.
This commit is contained in:
parent
ea905c360c
commit
aa87b3ef75
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exfldio - Aml Field I/O
|
||||
* $Revision: 103 $
|
||||
* $Revision: 104 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -352,7 +352,7 @@ AcpiExAccessRegion (
|
||||
}
|
||||
else if (Status == AE_NOT_EXIST)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
ACPI_REPORT_ERROR ((
|
||||
"Region %s(%X) has no handler\n",
|
||||
AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
|
||||
RgnDesc->Region.SpaceId));
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface
|
||||
* $Revision: 65 $
|
||||
* $Revision: 66 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -375,7 +375,11 @@ AcpiEnterSleepState (
|
||||
}
|
||||
}
|
||||
|
||||
Status = AcpiHwDisableNonWakeupGpes ();
|
||||
/*
|
||||
* 1) Disable all runtime GPEs
|
||||
* 2) Enable all wakeup GPEs
|
||||
*/
|
||||
Status = AcpiHwPrepareGpesForSleep ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -526,7 +530,11 @@ AcpiEnterSleepStateS4bios (
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
Status = AcpiHwDisableNonWakeupGpes ();
|
||||
/*
|
||||
* 1) Disable all runtime GPEs
|
||||
* 2) Enable all wakeup GPEs
|
||||
*/
|
||||
Status = AcpiHwPrepareGpesForSleep ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -646,10 +654,14 @@ AcpiLeaveSleepState (
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Method _WAK failed, %s\n", AcpiFormatException (Status)));
|
||||
}
|
||||
/* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
|
||||
|
||||
/* _WAK returns stuff - do we want to look at it? */
|
||||
|
||||
Status = AcpiHwEnableNonWakeupGpes ();
|
||||
/*
|
||||
* Restore the GPEs:
|
||||
* 1) Disable all wakeup GPEs
|
||||
* 2) Enable all runtime GPEs
|
||||
*/
|
||||
Status = AcpiHwRestoreGpesOnWake ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
|
Loading…
Reference in New Issue
Block a user