From: Jiang Liu <jiang.liu@linux.intel.com>
Date: Mon, 2 Feb 2015 02:42:54 +0000 (+0800)
Subject: ACPI: Fix a bug in parsing ACPI Memory24 resource
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=8515f9368161730655b64ddaf8b11a3d20049610;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git

ACPI: Fix a bug in parsing ACPI Memory24 resource

According to ACPI spec 5, section 6.4.3.1 "24-Bit Memory Range Descriptor",
minimum, maximum and address_length field in struct acpi_resource_memory24
is in granularity of 256-bytes. So shift 8-bit left to get correct address.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 7ce00a63f695..5544c6d26f32 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -90,8 +90,8 @@ bool acpi_dev_resource_memory(struct acpi_resource *ares, struct resource *res)
 	switch (ares->type) {
 	case ACPI_RESOURCE_TYPE_MEMORY24:
 		memory24 = &ares->data.memory24;
-		acpi_dev_get_memresource(res, memory24->minimum,
-					 memory24->address_length,
+		acpi_dev_get_memresource(res, memory24->minimum << 8,
+					 memory24->address_length << 8,
 					 memory24->write_protect);
 		break;
 	case ACPI_RESOURCE_TYPE_MEMORY32: