diff options
Diffstat (limited to 'source/components/hardware')
| -rw-r--r-- | source/components/hardware/hwacpi.c | 10 | ||||
| -rw-r--r-- | source/components/hardware/hwesleep.c | 5 | ||||
| -rw-r--r-- | source/components/hardware/hwgpe.c | 12 | ||||
| -rw-r--r-- | source/components/hardware/hwregs.c | 39 | ||||
| -rw-r--r-- | source/components/hardware/hwsleep.c | 16 | ||||
| -rw-r--r-- | source/components/hardware/hwxface.c | 48 | ||||
| -rw-r--r-- | source/components/hardware/hwxfsleep.c | 7 | 
7 files changed, 75 insertions, 62 deletions
| diff --git a/source/components/hardware/hwacpi.c b/source/components/hardware/hwacpi.c index dd92c9d06414..d22546f60a13 100644 --- a/source/components/hardware/hwacpi.c +++ b/source/components/hardware/hwacpi.c @@ -113,7 +113,7 @@ AcpiHwSetMode (          /* BIOS should have disabled ALL fixed and GP events */          Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, -                        (UINT32) AcpiGbl_FADT.AcpiEnable, 8); +            (UINT32) AcpiGbl_FADT.AcpiEnable, 8);          ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Attempting to enable ACPI mode\n"));          break; @@ -123,9 +123,9 @@ AcpiHwSetMode (           * enable bits to default           */          Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, -                    (UINT32) AcpiGbl_FADT.AcpiDisable, 8); +            (UINT32) AcpiGbl_FADT.AcpiDisable, 8);          ACPI_DEBUG_PRINT ((ACPI_DB_INFO, -                    "Attempting to enable Legacy (non-ACPI) mode\n")); +            "Attempting to enable Legacy (non-ACPI) mode\n"));          break;      default: @@ -149,8 +149,8 @@ AcpiHwSetMode (      {          if (AcpiHwGetMode () == Mode)          { -            ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n", -                Mode)); +            ACPI_DEBUG_PRINT ((ACPI_DB_INFO, +                "Mode %X successfully enabled\n", Mode));              return_ACPI_STATUS (AE_OK);          }          AcpiOsStall (ACPI_USEC_PER_MSEC); diff --git a/source/components/hardware/hwesleep.c b/source/components/hardware/hwesleep.c index 4d53c25316cb..adfc5c4d80e1 100644 --- a/source/components/hardware/hwesleep.c +++ b/source/components/hardware/hwesleep.c @@ -130,7 +130,8 @@ AcpiHwExtendedSleep (      /* Clear wake status (WAK_STS) */ -    Status = AcpiWrite ((UINT64) ACPI_X_WAKE_STATUS, &AcpiGbl_FADT.SleepStatus); +    Status = AcpiWrite ((UINT64) ACPI_X_WAKE_STATUS, +        &AcpiGbl_FADT.SleepStatus);      if (ACPI_FAILURE (Status))      {          return_ACPI_STATUS (Status); @@ -202,7 +203,7 @@ AcpiHwExtendedWakePrep (      Status = AcpiGetSleepTypeData (ACPI_STATE_S0, -                    &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); +        &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);      if (ACPI_SUCCESS (Status))      {          SleepTypeValue = ((AcpiGbl_SleepTypeA << ACPI_X_SLEEP_TYPE_POSITION) & diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index 1458f4fed22c..c4b3b6f9c30e 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -208,9 +208,7 @@ AcpiHwClearGpe (       */      RegisterBit = AcpiHwGetGpeRegisterBit (GpeEventInfo); -    Status = AcpiHwWrite (RegisterBit, -                    &GpeRegisterInfo->StatusAddress); - +    Status = AcpiHwWrite (RegisterBit, &GpeRegisterInfo->StatusAddress);      return (Status);  } @@ -251,7 +249,7 @@ AcpiHwGetGpeStatus (      /* GPE currently handled? */      if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) != -            ACPI_GPE_DISPATCH_NONE) +        ACPI_GPE_DISPATCH_NONE)      {          LocalEventStatus |= ACPI_EVENT_FLAG_HAS_HANDLER;      } @@ -333,8 +331,8 @@ AcpiHwGpeEnableWrite (      GpeRegisterInfo->EnableMask = EnableMask; -    Status = AcpiHwWrite (EnableMask, &GpeRegisterInfo->EnableAddress); +    Status = AcpiHwWrite (EnableMask, &GpeRegisterInfo->EnableAddress);      return (Status);  } @@ -459,7 +457,7 @@ AcpiHwEnableRuntimeGpeBlock (          /* Enable all "runtime" GPEs in this register */          Status = AcpiHwGpeEnableWrite (GpeRegisterInfo->EnableForRun, -                    GpeRegisterInfo); +            GpeRegisterInfo);          if (ACPI_FAILURE (Status))          {              return (Status); @@ -506,7 +504,7 @@ AcpiHwEnableWakeupGpeBlock (           * remaining ones.           */          Status = AcpiHwGpeEnableWrite (GpeRegisterInfo->EnableForWake, -                    GpeRegisterInfo); +            GpeRegisterInfo);          if (ACPI_FAILURE (Status))          {              return (Status); diff --git a/source/components/hardware/hwregs.c b/source/components/hardware/hwregs.c index 60e3fef8b4a7..d7ef3ca0a9e2 100644 --- a/source/components/hardware/hwregs.c +++ b/source/components/hardware/hwregs.c @@ -68,6 +68,7 @@ AcpiHwWriteMultiple (  #endif /* !ACPI_REDUCED_HARDWARE */ +  /******************************************************************************   *   * FUNCTION:    AcpiHwValidateRegister @@ -196,14 +197,14 @@ AcpiHwRead (      if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)      {          Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS) -                    Address, &Value64, Reg->BitWidth); +            Address, &Value64, Reg->BitWidth);          *Value = (UINT32) Value64;      }      else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */      {          Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) -                    Address, Value, Reg->BitWidth); +            Address, Value, Reg->BitWidth);      }      ACPI_DEBUG_PRINT ((ACPI_DB_IO, @@ -257,12 +258,12 @@ AcpiHwWrite (      if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)      {          Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS) -                    Address, (UINT64) Value, Reg->BitWidth); +            Address, (UINT64) Value, Reg->BitWidth);      }      else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */      {          Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) -                    Address, Value, Reg->BitWidth); +            Address, Value, Reg->BitWidth);      }      ACPI_DEBUG_PRINT ((ACPI_DB_IO, @@ -307,7 +308,7 @@ AcpiHwClearAcpiStatus (      /* Clear the fixed events in PM1 A/B */      Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS, -                ACPI_BITMASK_ALL_FIXED_STATUS); +        ACPI_BITMASK_ALL_FIXED_STATUS);      AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags); @@ -426,22 +427,22 @@ AcpiHwRegisterRead (      case ACPI_REGISTER_PM1_STATUS:           /* PM1 A/B: 16-bit access each */          Status = AcpiHwReadMultiple (&Value, -                    &AcpiGbl_XPm1aStatus, -                    &AcpiGbl_XPm1bStatus); +            &AcpiGbl_XPm1aStatus, +            &AcpiGbl_XPm1bStatus);          break;      case ACPI_REGISTER_PM1_ENABLE:           /* PM1 A/B: 16-bit access each */          Status = AcpiHwReadMultiple (&Value, -                    &AcpiGbl_XPm1aEnable, -                    &AcpiGbl_XPm1bEnable); +            &AcpiGbl_XPm1aEnable, +            &AcpiGbl_XPm1bEnable);          break;      case ACPI_REGISTER_PM1_CONTROL:          /* PM1 A/B: 16-bit access each */          Status = AcpiHwReadMultiple (&Value, -                    &AcpiGbl_FADT.XPm1aControlBlock, -                    &AcpiGbl_FADT.XPm1bControlBlock); +            &AcpiGbl_FADT.XPm1aControlBlock, +            &AcpiGbl_FADT.XPm1bControlBlock);          /*           * Zero the write-only bits. From the ACPI specification, "Hardware @@ -537,15 +538,15 @@ AcpiHwRegisterWrite (          Value &= ~ACPI_PM1_STATUS_PRESERVED_BITS;          Status = AcpiHwWriteMultiple (Value, -                    &AcpiGbl_XPm1aStatus, -                    &AcpiGbl_XPm1bStatus); +            &AcpiGbl_XPm1aStatus, +            &AcpiGbl_XPm1bStatus);          break;      case ACPI_REGISTER_PM1_ENABLE:           /* PM1 A/B: 16-bit access each */          Status = AcpiHwWriteMultiple (Value, -                    &AcpiGbl_XPm1aEnable, -                    &AcpiGbl_XPm1bEnable); +            &AcpiGbl_XPm1aEnable, +            &AcpiGbl_XPm1bEnable);          break;      case ACPI_REGISTER_PM1_CONTROL:          /* PM1 A/B: 16-bit access each */ @@ -554,8 +555,8 @@ AcpiHwRegisterWrite (           * Note: This includes SCI_EN, we never want to change this bit           */          Status = AcpiHwReadMultiple (&ReadValue, -                    &AcpiGbl_FADT.XPm1aControlBlock, -                    &AcpiGbl_FADT.XPm1bControlBlock); +            &AcpiGbl_FADT.XPm1aControlBlock, +            &AcpiGbl_FADT.XPm1bControlBlock);          if (ACPI_FAILURE (Status))          {              goto Exit; @@ -568,8 +569,8 @@ AcpiHwRegisterWrite (          /* Now we can write the data */          Status = AcpiHwWriteMultiple (Value, -                    &AcpiGbl_FADT.XPm1aControlBlock, -                    &AcpiGbl_FADT.XPm1bControlBlock); +            &AcpiGbl_FADT.XPm1aControlBlock, +            &AcpiGbl_FADT.XPm1bControlBlock);          break;      case ACPI_REGISTER_PM2_CONTROL:          /* 8-bit access */ diff --git a/source/components/hardware/hwsleep.c b/source/components/hardware/hwsleep.c index f56110e04c2a..9517ad3a380b 100644 --- a/source/components/hardware/hwsleep.c +++ b/source/components/hardware/hwsleep.c @@ -83,7 +83,8 @@ AcpiHwLegacySleep (      /* Clear wake status */ -    Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS); +    Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, +        ACPI_CLEAR_STATUS);      if (ACPI_FAILURE (Status))      {          return_ACPI_STATUS (Status); @@ -117,7 +118,7 @@ AcpiHwLegacySleep (      /* Get current value of PM1A control */      Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL, -                &Pm1aControl); +        &Pm1aControl);      if (ACPI_FAILURE (Status))      {          return_ACPI_STATUS (Status); @@ -128,7 +129,7 @@ AcpiHwLegacySleep (      /* Clear the SLP_EN and SLP_TYP fields */      Pm1aControl &= ~(SleepTypeRegInfo->AccessBitMask | -                     SleepEnableRegInfo->AccessBitMask); +         SleepEnableRegInfo->AccessBitMask);      Pm1bControl = Pm1aControl;      /* Insert the SLP_TYP bits */ @@ -182,7 +183,7 @@ AcpiHwLegacySleep (          AcpiOsStall (10 * ACPI_USEC_PER_SEC);          Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_CONTROL, -                    SleepEnableRegInfo->AccessBitMask); +            SleepEnableRegInfo->AccessBitMask);          if (ACPI_FAILURE (Status))          {              return_ACPI_STATUS (Status); @@ -238,7 +239,7 @@ AcpiHwLegacyWakePrep (       * by some machines.       */      Status = AcpiGetSleepTypeData (ACPI_STATE_S0, -                    &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); +        &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);      if (ACPI_SUCCESS (Status))      {          SleepTypeRegInfo = @@ -249,7 +250,7 @@ AcpiHwLegacyWakePrep (          /* Get current value of PM1A control */          Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL, -                    &Pm1aControl); +            &Pm1aControl);          if (ACPI_SUCCESS (Status))          {              /* Clear the SLP_EN and SLP_TYP fields */ @@ -334,7 +335,8 @@ AcpiHwLegacyWake (       * and use it to determine whether the system is rebooting or       * resuming. Clear WAK_STS for compatibility.       */ -    (void) AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS); +    (void) AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, +        ACPI_CLEAR_STATUS);      AcpiGbl_SystemAwakeAndRunning = TRUE;      /* Enable power button */ diff --git a/source/components/hardware/hwxface.c b/source/components/hardware/hwxface.c index 7a8b5a2a91cd..ab6a3277860b 100644 --- a/source/components/hardware/hwxface.c +++ b/source/components/hardware/hwxface.c @@ -169,7 +169,7 @@ AcpiRead (      if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)      {          Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS) -                    Address, ReturnValue, Reg->BitWidth); +            Address, ReturnValue, Reg->BitWidth);          if (ACPI_FAILURE (Status))          {              return (Status); @@ -187,7 +187,7 @@ AcpiRead (          }          Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) -                    Address, &ValueLo, Width); +            Address, &ValueLo, Width);          if (ACPI_FAILURE (Status))          {              return (Status); @@ -198,7 +198,7 @@ AcpiRead (              /* Read the top 32 bits */              Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) -                        (Address + 4), &ValueHi, 32); +                (Address + 4), &ValueHi, 32);              if (ACPI_FAILURE (Status))              {                  return (Status); @@ -263,7 +263,7 @@ AcpiWrite (      if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)      {          Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS) -                    Address, Value, Reg->BitWidth); +            Address, Value, Reg->BitWidth);          if (ACPI_FAILURE (Status))          {              return (Status); @@ -278,7 +278,7 @@ AcpiWrite (          }          Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) -                    Address, ACPI_LODWORD (Value), Width); +            Address, ACPI_LODWORD (Value), Width);          if (ACPI_FAILURE (Status))          {              return (Status); @@ -287,7 +287,7 @@ AcpiWrite (          if (Reg->BitWidth == 64)          {              Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) -                        (Address + 4), ACPI_HIDWORD (Value), 32); +                (Address + 4), ACPI_HIDWORD (Value), 32);              if (ACPI_FAILURE (Status))              {                  return (Status); @@ -358,7 +358,7 @@ AcpiReadBitRegister (      /* Read the entire parent register */      Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister, -                &RegisterValue); +        &RegisterValue);      if (ACPI_FAILURE (Status))      {          return_ACPI_STATUS (Status); @@ -367,7 +367,7 @@ AcpiReadBitRegister (      /* Normalize the value that was read, mask off other bits */      Value = ((RegisterValue & BitRegInfo->AccessBitMask) -                >> BitRegInfo->BitPosition); +        >> BitRegInfo->BitPosition);      ACPI_DEBUG_PRINT ((ACPI_DB_IO,          "BitReg %X, ParentReg %X, Actual %8.8X, ReturnValue %8.8X\n", @@ -439,7 +439,7 @@ AcpiWriteBitRegister (           * interested in           */          Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister, -                    &RegisterValue); +            &RegisterValue);          if (ACPI_FAILURE (Status))          {              goto UnlockAndExit; @@ -453,7 +453,7 @@ AcpiWriteBitRegister (              BitRegInfo->AccessBitMask, Value);          Status = AcpiHwRegisterWrite (BitRegInfo->ParentRegister, -                    RegisterValue); +            RegisterValue);      }      else      { @@ -473,7 +473,7 @@ AcpiWriteBitRegister (          if (RegisterValue)          {              Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS, -                        RegisterValue); +                RegisterValue);          }      } @@ -565,12 +565,20 @@ AcpiGetSleepTypeData (       * Evaluate the \_Sx namespace object containing the register values       * for this state       */ -    Info->RelativePathname = ACPI_CAST_PTR ( -        char, AcpiGbl_SleepStateNames[SleepState]); +    Info->RelativePathname = ACPI_CAST_PTR (char, +        AcpiGbl_SleepStateNames[SleepState]); +      Status = AcpiNsEvaluate (Info);      if (ACPI_FAILURE (Status))      { -        goto Cleanup; +        if (Status == AE_NOT_FOUND) +        { +            /* The _Sx states are optional, ignore NOT_FOUND */ + +            goto FinalCleanup; +        } + +        goto WarningCleanup;      }      /* Must have a return object */ @@ -580,7 +588,7 @@ AcpiGetSleepTypeData (          ACPI_ERROR ((AE_INFO, "No Sleep State object returned from [%s]",              Info->RelativePathname));          Status = AE_AML_NO_RETURN_VALUE; -        goto Cleanup; +        goto WarningCleanup;      }      /* Return object must be of type Package */ @@ -589,7 +597,7 @@ AcpiGetSleepTypeData (      {          ACPI_ERROR ((AE_INFO, "Sleep State return object is not a Package"));          Status = AE_AML_OPERAND_TYPE; -        goto Cleanup1; +        goto ReturnValueCleanup;      }      /* @@ -636,16 +644,18 @@ AcpiGetSleepTypeData (          break;      } -Cleanup1: +ReturnValueCleanup:      AcpiUtRemoveReference (Info->ReturnObject); -Cleanup: +WarningCleanup:      if (ACPI_FAILURE (Status))      {          ACPI_EXCEPTION ((AE_INFO, Status, -            "While evaluating Sleep State [%s]", Info->RelativePathname)); +            "While evaluating Sleep State [%s]", +            Info->RelativePathname));      } +FinalCleanup:      ACPI_FREE (Info);      return_ACPI_STATUS (Status);  } diff --git a/source/components/hardware/hwxfsleep.c b/source/components/hardware/hwxfsleep.c index 892c4a092d23..15eaef419979 100644 --- a/source/components/hardware/hwxfsleep.c +++ b/source/components/hardware/hwxfsleep.c @@ -172,7 +172,7 @@ AcpiSetFirmwareWakingVector (      if (AcpiGbl_FACS)      {          (void) AcpiHwSetFirmwareWakingVector (AcpiGbl_FACS, -                    PhysicalAddress, PhysicalAddress64); +            PhysicalAddress, PhysicalAddress64);      }      return_ACPI_STATUS (AE_OK); @@ -239,7 +239,7 @@ AcpiEnterSleepStateS4bios (      ACPI_FLUSH_CPU_CACHE ();      Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, -                (UINT32) AcpiGbl_FADT.S4BiosRequest, 8); +        (UINT32) AcpiGbl_FADT.S4BiosRequest, 8);      do {          AcpiOsStall (ACPI_USEC_PER_MSEC); @@ -248,6 +248,7 @@ AcpiEnterSleepStateS4bios (          {              return_ACPI_STATUS (Status);          } +      } while (!InValue);      return_ACPI_STATUS (AE_OK); @@ -343,7 +344,7 @@ AcpiEnterSleepStatePrep (      Status = AcpiGetSleepTypeData (SleepState, -                    &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); +        &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);      if (ACPI_FAILURE (Status))      {          return_ACPI_STATUS (Status); | 
