ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/src/trunk/sys/contrib/dev/acpica/components/hardware/hwesleep.c
(Generate patch)

Comparing trunk/sys/contrib/dev/acpica/components/hardware/hwesleep.c (file contents):
Revision 12107 by laffer1, Mon May 28 19:13:05 2018 UTC vs.
Revision 12108 by laffer1, Sun Oct 21 15:50:05 2018 UTC

# Line 114 | Line 114 | AcpiHwExtendedSleep (
114      UINT8                   SleepState)
115   {
116      ACPI_STATUS             Status;
117 <    UINT8                   SleepTypeValue;
117 >    UINT8                   SleepControl;
118      UINT64                  SleepStatus;
119  
120  
# Line 140 | Line 140 | AcpiHwExtendedSleep (
140  
141      AcpiGbl_SystemAwakeAndRunning = FALSE;
142  
143    /* Flush caches, as per ACPI specification */
144
145    ACPI_FLUSH_CPU_CACHE ();
146
143      /*
144       * Set the SLP_TYP and SLP_EN bits.
145       *
# Line 153 | Line 149 | AcpiHwExtendedSleep (
149      ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
150          "Entering sleep state [S%u]\n", SleepState));
151  
152 <    SleepTypeValue = ((AcpiGbl_SleepTypeA << ACPI_X_SLEEP_TYPE_POSITION) &
153 <        ACPI_X_SLEEP_TYPE_MASK);
152 >    SleepControl = ((AcpiGbl_SleepTypeA << ACPI_X_SLEEP_TYPE_POSITION) &
153 >        ACPI_X_SLEEP_TYPE_MASK) | ACPI_X_SLEEP_ENABLE;
154  
155 <    Status = AcpiWrite ((UINT64) (SleepTypeValue | ACPI_X_SLEEP_ENABLE),
156 <        &AcpiGbl_FADT.SleepControl);
155 >    /* Flush caches, as per ACPI specification */
156 >
157 >    ACPI_FLUSH_CPU_CACHE ();
158 >
159 >    Status = AcpiOsEnterSleep (SleepState, SleepControl, 0);
160 >    if (Status == AE_CTRL_TERMINATE)
161 >    {
162 >        return_ACPI_STATUS (AE_OK);
163 >    }
164 >    if (ACPI_FAILURE (Status))
165 >    {
166 >        return_ACPI_STATUS (Status);
167 >    }
168 >
169 >    Status = AcpiWrite ((UINT64) SleepControl, &AcpiGbl_FADT.SleepControl);
170      if (ACPI_FAILURE (Status))
171      {
172          return_ACPI_STATUS (Status);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines