summaryrefslogtreecommitdiff
path: root/source/components/hardware
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2013-05-17 23:13:40 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2013-05-17 23:13:40 +0000
commitb7f987c19dad2c6d33c64e7f96a9b4deca9e2650 (patch)
tree740dae2325e162bb086ea6e7e5d481c4b669e232 /source/components/hardware
parentb4a951799e313e9ec15d955b72dd3097e4880724 (diff)
Import ACPICA 20130517.vendor/acpica/20130517
Notes
svn path=/vendor-sys/acpica/dist/; revision=250757 svn path=/vendor-sys/acpica/20130517/; revision=250758; tag=vendor/acpica/20130517
Diffstat (limited to 'source/components/hardware')
-rw-r--r--source/components/hardware/hwacpi.c2
-rw-r--r--source/components/hardware/hwgpe.c3
-rw-r--r--source/components/hardware/hwregs.c16
-rw-r--r--source/components/hardware/hwxface.c3
-rw-r--r--source/components/hardware/hwxfsleep.c13
5 files changed, 18 insertions, 19 deletions
diff --git a/source/components/hardware/hwacpi.c b/source/components/hardware/hwacpi.c
index d4d5b55a5237..deb2dfbea355 100644
--- a/source/components/hardware/hwacpi.c
+++ b/source/components/hardware/hwacpi.c
@@ -120,7 +120,6 @@ AcpiHwSetMode (
break;
case ACPI_SYS_MODE_LEGACY:
-
/*
* BIOS should clear all fixed status bits and restore fixed event
* enable bits to default
@@ -132,6 +131,7 @@ AcpiHwSetMode (
break;
default:
+
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c
index efeba2b5e721..4f123bc3482b 100644
--- a/source/components/hardware/hwgpe.c
+++ b/source/components/hardware/hwgpe.c
@@ -142,14 +142,17 @@ AcpiHwLowSetGpe (
/*lint -fallthrough */
case ACPI_GPE_ENABLE:
+
ACPI_SET_BIT (EnableMask, RegisterBit);
break;
case ACPI_GPE_DISABLE:
+
ACPI_CLEAR_BIT (EnableMask, RegisterBit);
break;
default:
+
ACPI_ERROR ((AE_INFO, "Invalid GPE Action, %u", Action));
return (AE_BAD_PARAMETER);
}
diff --git a/source/components/hardware/hwregs.c b/source/components/hardware/hwregs.c
index ca2f48bd6f18..88f8b4ed3d5e 100644
--- a/source/components/hardware/hwregs.c
+++ b/source/components/hardware/hwregs.c
@@ -430,7 +430,6 @@ AcpiHwRegisterRead (
&AcpiGbl_XPm1bStatus);
break;
-
case ACPI_REGISTER_PM1_ENABLE: /* PM1 A/B: 16-bit access each */
Status = AcpiHwReadMultiple (&Value,
@@ -438,7 +437,6 @@ AcpiHwRegisterRead (
&AcpiGbl_XPm1bEnable);
break;
-
case ACPI_REGISTER_PM1_CONTROL: /* PM1 A/B: 16-bit access each */
Status = AcpiHwReadMultiple (&Value,
@@ -453,26 +451,23 @@ AcpiHwRegisterRead (
Value &= ~ACPI_PM1_CONTROL_WRITEONLY_BITS;
break;
-
case ACPI_REGISTER_PM2_CONTROL: /* 8-bit access */
Status = AcpiHwRead (&Value, &AcpiGbl_FADT.XPm2ControlBlock);
break;
-
case ACPI_REGISTER_PM_TIMER: /* 32-bit access */
Status = AcpiHwRead (&Value, &AcpiGbl_FADT.XPmTimerBlock);
break;
-
case ACPI_REGISTER_SMI_COMMAND_BLOCK: /* 8-bit access */
Status = AcpiHwReadPort (AcpiGbl_FADT.SmiCommand, &Value, 8);
break;
-
default:
+
ACPI_ERROR ((AE_INFO, "Unknown Register ID: 0x%X",
RegisterId));
Status = AE_BAD_PARAMETER;
@@ -546,7 +541,6 @@ AcpiHwRegisterWrite (
&AcpiGbl_XPm1bStatus);
break;
-
case ACPI_REGISTER_PM1_ENABLE: /* PM1 A/B: 16-bit access each */
Status = AcpiHwWriteMultiple (Value,
@@ -554,9 +548,7 @@ AcpiHwRegisterWrite (
&AcpiGbl_XPm1bEnable);
break;
-
case ACPI_REGISTER_PM1_CONTROL: /* PM1 A/B: 16-bit access each */
-
/*
* Perform a read first to preserve certain bits (per ACPI spec)
* Note: This includes SCI_EN, we never want to change this bit
@@ -580,9 +572,7 @@ AcpiHwRegisterWrite (
&AcpiGbl_FADT.XPm1bControlBlock);
break;
-
case ACPI_REGISTER_PM2_CONTROL: /* 8-bit access */
-
/*
* For control registers, all reserved bits must be preserved,
* as per the ACPI spec.
@@ -600,13 +590,11 @@ AcpiHwRegisterWrite (
Status = AcpiHwWrite (Value, &AcpiGbl_FADT.XPm2ControlBlock);
break;
-
case ACPI_REGISTER_PM_TIMER: /* 32-bit access */
Status = AcpiHwWrite (Value, &AcpiGbl_FADT.XPmTimerBlock);
break;
-
case ACPI_REGISTER_SMI_COMMAND_BLOCK: /* 8-bit access */
/* SMI_CMD is currently always in IO space */
@@ -614,8 +602,8 @@ AcpiHwRegisterWrite (
Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, Value, 8);
break;
-
default:
+
ACPI_ERROR ((AE_INFO, "Unknown Register ID: 0x%X",
RegisterId));
Status = AE_BAD_PARAMETER;
diff --git a/source/components/hardware/hwxface.c b/source/components/hardware/hwxface.c
index 6f26c793939a..25ad60a4212a 100644
--- a/source/components/hardware/hwxface.c
+++ b/source/components/hardware/hwxface.c
@@ -592,10 +592,12 @@ AcpiGetSleepTypeData (
switch (Info->ReturnObject->Package.Count)
{
case 0:
+
Status = AE_AML_PACKAGE_LIMIT;
break;
case 1:
+
if (Elements[0]->Common.Type != ACPI_TYPE_INTEGER)
{
Status = AE_AML_OPERAND_TYPE;
@@ -610,6 +612,7 @@ AcpiGetSleepTypeData (
case 2:
default:
+
if ((Elements[0]->Common.Type != ACPI_TYPE_INTEGER) ||
(Elements[1]->Common.Type != ACPI_TYPE_INTEGER))
{
diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c
index 42f054386cb6..8259f012e842 100644
--- a/source/components/hardware/hwxfsleep.c
+++ b/source/components/hardware/hwxfsleep.c
@@ -267,13 +267,14 @@ AcpiHwSleepDispatch (
#if (!ACPI_REDUCED_HARDWARE)
-
/*
* If the Hardware Reduced flag is set (from the FADT), we must
- * use the extended sleep registers
+ * use the extended sleep registers (FADT). Note: As per the ACPI
+ * specification, these extended registers are to be used for HW-reduced
+ * platforms only. They are not general-purpose replacements for the
+ * legacy PM register sleep support.
*/
- if (AcpiGbl_ReducedHardware ||
- AcpiGbl_FADT.SleepControl.Address)
+ if (AcpiGbl_ReducedHardware)
{
Status = SleepFunctions->ExtendedFunction (SleepState);
}
@@ -351,20 +352,24 @@ AcpiEnterSleepStatePrep (
switch (SleepState)
{
case ACPI_STATE_S0:
+
SstValue = ACPI_SST_WORKING;
break;
case ACPI_STATE_S1:
case ACPI_STATE_S2:
case ACPI_STATE_S3:
+
SstValue = ACPI_SST_SLEEPING;
break;
case ACPI_STATE_S4:
+
SstValue = ACPI_SST_SLEEP_CONTEXT;
break;
default:
+
SstValue = ACPI_SST_INDICATOR_OFF; /* Default is off */
break;
}