diff options
author | jkim <jkim@FreeBSD.org> | 2010-07-13 02:45:44 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-07-13 02:45:44 +0000 |
commit | 68aeab54dbde67ab913a309793ccc9c609031fb5 (patch) | |
tree | 93a7ff3cd194e6615ca4327ddff883fde60cc902 /sys/dev/acpica/Osd | |
parent | 14d1adbf2cd042d11e45222d96178157b0a09766 (diff) | |
download | FreeBSD-src-68aeab54dbde67ab913a309793ccc9c609031fb5.zip FreeBSD-src-68aeab54dbde67ab913a309793ccc9c609031fb5.tar.gz |
According to ACPICA User Guide and Programmer Reference, the read data must
be zero extended to fill the 32-bit return value even if the bit width of
the port is less than 32.
Diffstat (limited to 'sys/dev/acpica/Osd')
-rw-r--r-- | sys/dev/acpica/Osd/OsdHardware.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/dev/acpica/Osd/OsdHardware.c b/sys/dev/acpica/Osd/OsdHardware.c index 0638802..6aa67f0 100644 --- a/sys/dev/acpica/Osd/OsdHardware.c +++ b/sys/dev/acpica/Osd/OsdHardware.c @@ -71,16 +71,13 @@ AcpiOsReadPort(ACPI_IO_ADDRESS InPort, UINT32 *Value, UINT32 Width) switch (Width) { case 8: - *(u_int8_t *)Value = bus_space_read_1(ACPI_BUS_SPACE_IO, - ACPI_BUS_HANDLE, InPort); + *Value = bus_space_read_1(ACPI_BUS_SPACE_IO, ACPI_BUS_HANDLE, InPort); break; case 16: - *(u_int16_t *)Value = bus_space_read_2(ACPI_BUS_SPACE_IO, - ACPI_BUS_HANDLE, InPort); + *Value = bus_space_read_2(ACPI_BUS_SPACE_IO, ACPI_BUS_HANDLE, InPort); break; case 32: - *(u_int32_t *)Value = bus_space_read_4(ACPI_BUS_SPACE_IO, - ACPI_BUS_HANDLE, InPort); + *Value = bus_space_read_4(ACPI_BUS_SPACE_IO, ACPI_BUS_HANDLE, InPort); break; default: /* debug trap goes here */ |