diff options
| author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2012-05-04 16:49:54 +0000 |
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2012-05-04 16:49:54 +0000 |
| commit | 435bba8aa5d73ccd0b9ec7c79e28bec795904992 (patch) | |
| tree | 5c8d2be08b8e0ad06f44ecdd188641a0eca265dd /usr/src/uts/intel/io/acpica/executer/exprep.c | |
| parent | 9961023fd01212c8ab13953b1510e4d00368c995 (diff) | |
| download | illumos-joyent-435bba8aa5d73ccd0b9ec7c79e28bec795904992.tar.gz | |
OS-1149 update to latest acpica release; transition to ACPI 5.0
Diffstat (limited to 'usr/src/uts/intel/io/acpica/executer/exprep.c')
| -rw-r--r-- | usr/src/uts/intel/io/acpica/executer/exprep.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/usr/src/uts/intel/io/acpica/executer/exprep.c b/usr/src/uts/intel/io/acpica/executer/exprep.c index ee96a6a090..9ec78275bd 100644 --- a/usr/src/uts/intel/io/acpica/executer/exprep.c +++ b/usr/src/uts/intel/io/acpica/executer/exprep.c @@ -6,7 +6,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2011, Intel Corp. + * Copyright (C) 2000 - 2012, Intel Corp. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -49,6 +49,7 @@ #include "acinterp.h" #include "amlcode.h" #include "acnamesp.h" +#include "acdispat.h" #define _COMPONENT ACPI_EXECUTER @@ -484,6 +485,32 @@ AcpiExPrepFieldValue ( ObjDesc->Field.RegionObj = AcpiNsGetAttachedObject (Info->RegionNode); + /* Fields specific to GenericSerialBus fields */ + + ObjDesc->Field.AccessLength = Info->AccessLength; + + if (Info->ConnectionNode) + { + SecondDesc = Info->ConnectionNode->Object; + if (!(SecondDesc->Common.Flags & AOPOBJ_DATA_VALID)) + { + Status = AcpiDsGetBufferArguments (SecondDesc); + if (ACPI_FAILURE (Status)) + { + AcpiUtDeleteObjectDesc (ObjDesc); + return_ACPI_STATUS (Status); + } + } + + ObjDesc->Field.ResourceBuffer = SecondDesc->Buffer.Pointer; + ObjDesc->Field.ResourceLength = (UINT16) SecondDesc->Buffer.Length; + } + else if (Info->ResourceBuffer) + { + ObjDesc->Field.ResourceBuffer = Info->ResourceBuffer; + ObjDesc->Field.ResourceLength = Info->ResourceLength; + } + /* Allow full data read from EC address space */ if ((ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_EC) && |
