diff options
author | njl <njl@FreeBSD.org> | 2003-11-22 00:48:08 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2003-11-22 00:48:08 +0000 |
commit | 75a8ab1efd9c3919ca3e70304a850b5774766e95 (patch) | |
tree | 52f3911078c3fe49b0f00d79d34e3253267bc19e /sys | |
parent | 2c3c1553db8b14d671579b63b34ef741d4e21a58 (diff) | |
download | FreeBSD-src-75a8ab1efd9c3919ca3e70304a850b5774766e95.zip FreeBSD-src-75a8ab1efd9c3919ca3e70304a850b5774766e95.tar.gz |
Commit rev 1.1.1.20 to HEAD. This file was off the vendor branch and thus
the changes need to be made to HEAD.
Approved by: re (previously)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/contrib/dev/acpica/exfldio.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/sys/contrib/dev/acpica/exfldio.c b/sys/contrib/dev/acpica/exfldio.c index 1eda818..9994218 100644 --- a/sys/contrib/dev/acpica/exfldio.c +++ b/sys/contrib/dev/acpica/exfldio.c @@ -441,10 +441,10 @@ AcpiExFieldDatumIo ( /* * The four types of fields are: * - * BufferFields - Read/write from/to a Buffer - * RegionFields - Read/write from/to a Operation Region. - * BankFields - Write to a Bank Register, then read/write from/to an OpRegion - * IndexFields - Write to an Index Register, then read/write from/to a Data Register + * BufferField - Read/write from/to a Buffer + * RegionField - Read/write from/to a Operation Region. + * BankField - Write to a Bank Register, then read/write from/to an OpRegion + * IndexField - Write to an Index Register, then read/write from/to a Data Register */ switch (ACPI_GET_OBJECT_TYPE (ObjDesc)) { @@ -542,27 +542,37 @@ AcpiExFieldDatumIo ( /* Write the index value to the IndexRegister (itself a RegionField) */ + FieldDatumByteOffset += ObjDesc->IndexField.Value; + + ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, + "Write to Index Register: Value %8.8X\n", + FieldDatumByteOffset)); + Status = AcpiExInsertIntoField (ObjDesc->IndexField.IndexObj, - &ObjDesc->IndexField.Value, - sizeof (ObjDesc->IndexField.Value)); + &FieldDatumByteOffset, + sizeof (FieldDatumByteOffset)); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); } + ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, + "I/O to Data Register: ValuePtr %p\n", + Value)); + if (ReadWrite == ACPI_READ) { /* Read the datum from the DataRegister */ Status = AcpiExExtractFromField (ObjDesc->IndexField.DataObj, - Value, ObjDesc->CommonField.AccessByteWidth); + Value, sizeof (ACPI_INTEGER)); } else { - /* Write the datum to the Data register */ + /* Write the datum to the DataRegister */ Status = AcpiExInsertIntoField (ObjDesc->IndexField.DataObj, - Value, ObjDesc->CommonField.AccessByteWidth); + Value, sizeof (ACPI_INTEGER)); } break; |