summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/Osd
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-07-13 02:45:44 +0000
committerjkim <jkim@FreeBSD.org>2010-07-13 02:45:44 +0000
commit68aeab54dbde67ab913a309793ccc9c609031fb5 (patch)
tree93a7ff3cd194e6615ca4327ddff883fde60cc902 /sys/dev/acpica/Osd
parent14d1adbf2cd042d11e45222d96178157b0a09766 (diff)
downloadFreeBSD-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.c9
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 */
OpenPOWER on IntegriCloud