summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/resource.c
diff options
context:
space:
mode:
authorJiang Liu <jiang.liu@linux.intel.com>2015-02-01 21:42:54 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-02-03 16:27:19 -0500
commit8515f9368161730655b64ddaf8b11a3d20049610 (patch)
treeee4ffd035dfd860964c4adbaaa05d432478b8e4d /drivers/acpi/resource.c
parentfcb29bbcd5404494eb46ad24908a4843b5a32060 (diff)
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>
Diffstat (limited to 'drivers/acpi/resource.c')
-rw-r--r--drivers/acpi/resource.c4
1 files changed, 2 insertions, 2 deletions
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)
90 switch (ares->type) { 90 switch (ares->type) {
91 case ACPI_RESOURCE_TYPE_MEMORY24: 91 case ACPI_RESOURCE_TYPE_MEMORY24:
92 memory24 = &ares->data.memory24; 92 memory24 = &ares->data.memory24;
93 acpi_dev_get_memresource(res, memory24->minimum, 93 acpi_dev_get_memresource(res, memory24->minimum << 8,
94 memory24->address_length, 94 memory24->address_length << 8,
95 memory24->write_protect); 95 memory24->write_protect);
96 break; 96 break;
97 case ACPI_RESOURCE_TYPE_MEMORY32: 97 case ACPI_RESOURCE_TYPE_MEMORY32: