diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2013-05-17 23:13:40 +0000 |
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2013-05-17 23:13:40 +0000 |
| commit | b7f987c19dad2c6d33c64e7f96a9b4deca9e2650 (patch) | |
| tree | 740dae2325e162bb086ea6e7e5d481c4b669e232 /source/components/hardware | |
| parent | b4a951799e313e9ec15d955b72dd3097e4880724 (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.c | 2 | ||||
| -rw-r--r-- | source/components/hardware/hwgpe.c | 3 | ||||
| -rw-r--r-- | source/components/hardware/hwregs.c | 16 | ||||
| -rw-r--r-- | source/components/hardware/hwxface.c | 3 | ||||
| -rw-r--r-- | source/components/hardware/hwxfsleep.c | 13 |
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; } |
