summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMyron Stowe <myron.stowe@hp.com>2010-10-22 00:23:48 +0400
committerLen Brown <len.brown@intel.com>2010-10-25 07:24:54 +0400
commitb3ba1efec2a58f4dc0647f4c0099c27d6ab92595 (patch)
treee2bf00b49397490010cd1adca34c89cdb27961da
parentf6f94e2ab1b33f0082ac22d71f66385a60d8157f (diff)
downloadlinux-b3ba1efec2a58f4dc0647f4c0099c27d6ab92595.tar.xz
ACPI: Fix ioremap size for MMIO reads and writes
The size used for I/O remapping MMIO read and write accesses has not accounted for the basis of ACPI's Generic Address Structure (GAS) 'Register Bit Width' field which is bits, not bytes. This patch adjusts the ioremap() 'size' argument accordingly. ACPI "Generic Register" reference: ACPI Specification, Revision 4.0, Section 5.2.3.1, "Generic Address Structure". Signed-off-by: Myron Stowe <myron.stowe@hp.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/acpi/osl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 65b25a303b86..58842fb9fd90 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -496,7 +496,7 @@ acpi_os_read_memory(acpi_physical_address phys_addr, u32 * value, u32 width)
u32 dummy;
void __iomem *virt_addr;
- virt_addr = ioremap(phys_addr, width);
+ virt_addr = ioremap(phys_addr, width / 8);
if (!value)
value = &dummy;
@@ -524,7 +524,7 @@ acpi_os_write_memory(acpi_physical_address phys_addr, u32 value, u32 width)
{
void __iomem *virt_addr;
- virt_addr = ioremap(phys_addr, width);
+ virt_addr = ioremap(phys_addr, width / 8);
switch (width) {
case 8: