mirror of
https://github.com/acpica/acpica/
synced 2025-03-06 14:21:47 +03:00
cleanup; update comments
date 2005.03.29.18.19.00; author rmoore1; state Exp;
This commit is contained in:
parent
c1d8c7d158
commit
85c6bb5951
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Module Name: hwregs - Read/write access functions for the various ACPI
|
||||
* control and status registers.
|
||||
* $Revision: 1.166 $
|
||||
* $Revision: 1.169 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -162,8 +162,9 @@ AcpiHwClearAcpiStatus (
|
||||
}
|
||||
}
|
||||
|
||||
Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1_STATUS,
|
||||
ACPI_BITMASK_ALL_FIXED_STATUS);
|
||||
Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
|
||||
ACPI_REGISTER_PM1_STATUS,
|
||||
ACPI_BITMASK_ALL_FIXED_STATUS);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto UnlockAndExit;
|
||||
@ -223,18 +224,16 @@ AcpiGetSleepTypeData (
|
||||
ACPI_FUNCTION_TRACE ("AcpiGetSleepTypeData");
|
||||
|
||||
|
||||
/*
|
||||
* Validate parameters
|
||||
*/
|
||||
/* Validate parameters */
|
||||
|
||||
if ((SleepState > ACPI_S_STATES_MAX) ||
|
||||
!SleepTypeA || !SleepTypeB)
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* Evaluate the namespace object containing the values for this state
|
||||
*/
|
||||
/* Evaluate the namespace object containing the values for this state */
|
||||
|
||||
Info.Parameters = NULL;
|
||||
Info.ReturnObject = NULL;
|
||||
SleepStateName = (char *) AcpiGbl_SleepStateNames[SleepState];
|
||||
@ -242,7 +241,8 @@ AcpiGetSleepTypeData (
|
||||
Status = AcpiNsEvaluateByName (SleepStateName, &Info);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s while evaluating SleepState [%s]\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
"%s while evaluating SleepState [%s]\n",
|
||||
AcpiFormatException (Status), SleepStateName));
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -265,31 +265,41 @@ AcpiGetSleepTypeData (
|
||||
Status = AE_AML_OPERAND_TYPE;
|
||||
}
|
||||
|
||||
/* The package must have at least two elements */
|
||||
|
||||
/*
|
||||
* The package must have at least two elements. NOTE (March 2005): This
|
||||
* goes against the current ACPI spec which defines this object as a
|
||||
* package with one encoded DWORD element. However, existing practice
|
||||
* by BIOS vendors seems to be to have 2 or more elements, at least
|
||||
* one per sleep type (A/B).
|
||||
*/
|
||||
else if (Info.ReturnObject->Package.Count < 2)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Sleep State return package does not have at least two elements\n"));
|
||||
ACPI_REPORT_ERROR ((
|
||||
"Sleep State return package does not have at least two elements\n"));
|
||||
Status = AE_AML_NO_OPERAND;
|
||||
}
|
||||
|
||||
/* The first two elements must both be of type Integer */
|
||||
|
||||
else if ((ACPI_GET_OBJECT_TYPE (Info.ReturnObject->Package.Elements[0]) != ACPI_TYPE_INTEGER) ||
|
||||
(ACPI_GET_OBJECT_TYPE (Info.ReturnObject->Package.Elements[1]) != ACPI_TYPE_INTEGER))
|
||||
else if ((ACPI_GET_OBJECT_TYPE (Info.ReturnObject->Package.Elements[0])
|
||||
!= ACPI_TYPE_INTEGER) ||
|
||||
(ACPI_GET_OBJECT_TYPE (Info.ReturnObject->Package.Elements[1])
|
||||
!= ACPI_TYPE_INTEGER))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Sleep State return package elements are not both Integers (%s, %s)\n",
|
||||
ACPI_REPORT_ERROR ((
|
||||
"Sleep State return package elements are not both Integers (%s, %s)\n",
|
||||
AcpiUtGetObjectTypeName (Info.ReturnObject->Package.Elements[0]),
|
||||
AcpiUtGetObjectTypeName (Info.ReturnObject->Package.Elements[1])));
|
||||
Status = AE_AML_OPERAND_TYPE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Valid _Sx_ package size, type, and value
|
||||
*/
|
||||
*SleepTypeA = (UINT8) (Info.ReturnObject->Package.Elements[0])->Integer.Value;
|
||||
*SleepTypeB = (UINT8) (Info.ReturnObject->Package.Elements[1])->Integer.Value;
|
||||
/* Valid _Sx_ package size, type, and value */
|
||||
|
||||
*SleepTypeA = (UINT8)
|
||||
(Info.ReturnObject->Package.Elements[0])->Integer.Value;
|
||||
*SleepTypeB = (UINT8)
|
||||
(Info.ReturnObject->Package.Elements[1])->Integer.Value;
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
@ -312,9 +322,9 @@ AcpiGetSleepTypeData (
|
||||
*
|
||||
* PARAMETERS: RegisterId - Index of ACPI Register to access
|
||||
*
|
||||
* RETURN: The bit mask to be used when accessing the register
|
||||
* RETURN: The bitmask to be used when accessing the register
|
||||
*
|
||||
* DESCRIPTION: Map RegisterId into a register bit mask.
|
||||
* DESCRIPTION: Map RegisterId into a register bitmask.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -458,7 +468,7 @@ AcpiSetRegister (
|
||||
/* Always do a register read first so we can insert the new bits */
|
||||
|
||||
Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
|
||||
BitRegInfo->ParentRegister, &RegisterValue);
|
||||
BitRegInfo->ParentRegister, &RegisterValue);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto UnlockAndExit;
|
||||
@ -498,7 +508,7 @@ AcpiSetRegister (
|
||||
BitRegInfo->AccessBitMask, Value);
|
||||
|
||||
Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
|
||||
ACPI_REGISTER_PM1_ENABLE, (UINT16) RegisterValue);
|
||||
ACPI_REGISTER_PM1_ENABLE, (UINT16) RegisterValue);
|
||||
break;
|
||||
|
||||
|
||||
@ -515,7 +525,7 @@ AcpiSetRegister (
|
||||
BitRegInfo->AccessBitMask, Value);
|
||||
|
||||
Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
|
||||
ACPI_REGISTER_PM1_CONTROL, (UINT16) RegisterValue);
|
||||
ACPI_REGISTER_PM1_CONTROL, (UINT16) RegisterValue);
|
||||
break;
|
||||
|
||||
|
||||
@ -530,17 +540,19 @@ AcpiSetRegister (
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "PM2 control: Read %X from %8.8X%8.8X\n",
|
||||
RegisterValue,
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (AcpiGbl_FADT->XPm2CntBlk.Address))));
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (
|
||||
AcpiGbl_FADT->XPm2CntBlk.Address))));
|
||||
|
||||
ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
|
||||
BitRegInfo->AccessBitMask, Value);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %4.4X to %8.8X%8.8X\n",
|
||||
RegisterValue,
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (AcpiGbl_FADT->XPm2CntBlk.Address))));
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (
|
||||
AcpiGbl_FADT->XPm2CntBlk.Address))));
|
||||
|
||||
Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
|
||||
ACPI_REGISTER_PM2_CONTROL, (UINT8) (RegisterValue));
|
||||
ACPI_REGISTER_PM2_CONTROL, (UINT8) (RegisterValue));
|
||||
break;
|
||||
|
||||
|
||||
@ -558,7 +570,9 @@ UnlockAndExit:
|
||||
|
||||
/* Normalize the value that was read */
|
||||
|
||||
ACPI_DEBUG_EXEC (RegisterValue = ((RegisterValue & BitRegInfo->AccessBitMask) >> BitRegInfo->BitPosition));
|
||||
ACPI_DEBUG_EXEC (RegisterValue =
|
||||
((RegisterValue & BitRegInfo->AccessBitMask) >>
|
||||
BitRegInfo->BitPosition));
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Set bits: %8.8X actual %8.8X register %X\n",
|
||||
Value, RegisterValue, BitRegInfo->ParentRegister));
|
||||
@ -572,7 +586,7 @@ UnlockAndExit:
|
||||
*
|
||||
* PARAMETERS: UseLock - Mutex hw access
|
||||
* RegisterId - RegisterID + Offset
|
||||
* ReturnValue - Value that was read from the register
|
||||
* ReturnValue - Where the register value is returned
|
||||
*
|
||||
* RETURN: Status and the value read.
|
||||
*
|
||||
@ -666,7 +680,8 @@ AcpiHwRegisterRead (
|
||||
break;
|
||||
|
||||
default:
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unknown Register ID: %X\n", RegisterId));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unknown Register ID: %X\n",
|
||||
RegisterId));
|
||||
Status = AE_BAD_PARAMETER;
|
||||
break;
|
||||
}
|
||||
@ -884,10 +899,11 @@ AcpiHwLowLevelRead (
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Read: %8.8X width %2d from %8.8X%8.8X (%s)\n",
|
||||
*Value, Width,
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (Address)),
|
||||
AcpiUtGetRegionName (Reg->AddressSpaceId)));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO,
|
||||
"Read: %8.8X width %2d from %8.8X%8.8X (%s)\n",
|
||||
*Value, Width,
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (Address)),
|
||||
AcpiUtGetRegionName (Reg->AddressSpaceId)));
|
||||
|
||||
return (Status);
|
||||
}
|
||||
@ -965,10 +981,11 @@ AcpiHwLowLevelWrite (
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Wrote: %8.8X width %2d to %8.8X%8.8X (%s)\n",
|
||||
Value, Width,
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (Address)),
|
||||
AcpiUtGetRegionName (Reg->AddressSpaceId)));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO,
|
||||
"Wrote: %8.8X width %2d to %8.8X%8.8X (%s)\n",
|
||||
Value, Width,
|
||||
ACPI_FORMAT_UINT64 (ACPI_GET_ADDRESS (Address)),
|
||||
AcpiUtGetRegionName (Reg->AddressSpaceId)));
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user