summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/resource.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2015-02-02 03:42:52 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-02-03 22:27:19 +0100
commit72e26b0d487fc494f40aa61e10a0757791e62e36 (patch)
treeda73aa6333c8b1eda30e35f33839c6ed7f8d735b /drivers/acpi/resource.c
parentACPI: Unify the parsing of address_space and ext_address_space (diff)
downloadlinux-72e26b0d487fc494f40aa61e10a0757791e62e36.tar.xz
linux-72e26b0d487fc494f40aa61e10a0757791e62e36.zip
ACPI: Move the window flag logic to the combined parser
Normal memory and io resources have window always set to false. Move the flag logic to the unified address space parser. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 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.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 99903d196024..15d17937c431 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -53,7 +53,7 @@ static bool acpi_dev_resource_len_valid(u64 start, u64 end, u64 len, bool io)
}
static void acpi_dev_memresource_flags(struct resource *res, u64 len,
- u8 write_protect, bool window)
+ u8 write_protect)
{
res->flags = IORESOURCE_MEM;
@@ -62,9 +62,6 @@ static void acpi_dev_memresource_flags(struct resource *res, u64 len,
if (write_protect == ACPI_READ_WRITE_MEMORY)
res->flags |= IORESOURCE_MEM_WRITEABLE;
-
- if (window)
- res->flags |= IORESOURCE_WINDOW;
}
static void acpi_dev_get_memresource(struct resource *res, u64 start, u64 len,
@@ -72,7 +69,7 @@ static void acpi_dev_get_memresource(struct resource *res, u64 start, u64 len,
{
res->start = start;
res->end = start + len - 1;
- acpi_dev_memresource_flags(res, len, write_protect, false);
+ acpi_dev_memresource_flags(res, len, write_protect);
}
/**
@@ -118,7 +115,7 @@ bool acpi_dev_resource_memory(struct acpi_resource *ares, struct resource *res)
EXPORT_SYMBOL_GPL(acpi_dev_resource_memory);
static void acpi_dev_ioresource_flags(struct resource *res, u64 len,
- u8 io_decode, bool window)
+ u8 io_decode)
{
res->flags = IORESOURCE_IO;
@@ -130,9 +127,6 @@ static void acpi_dev_ioresource_flags(struct resource *res, u64 len,
if (io_decode == ACPI_DECODE_16)
res->flags |= IORESOURCE_IO_16BIT_ADDR;
-
- if (window)
- res->flags |= IORESOURCE_WINDOW;
}
static void acpi_dev_get_ioresource(struct resource *res, u64 start, u64 len,
@@ -140,7 +134,7 @@ static void acpi_dev_get_ioresource(struct resource *res, u64 start, u64 len,
{
res->start = start;
res->end = start + len - 1;
- acpi_dev_ioresource_flags(res, len, io_decode, false);
+ acpi_dev_ioresource_flags(res, len, io_decode);
}
/**
@@ -183,7 +177,6 @@ static bool acpi_decode_space(struct resource *res,
struct acpi_address64_attribute *attr)
{
u8 iodec = attr->granularity == 0xfff ? ACPI_DECODE_10 : ACPI_DECODE_16;
- bool window = addr->producer_consumer == ACPI_PRODUCER;
bool wp = addr->info.mem.write_protect;
u64 len = attr->address_length;
@@ -192,10 +185,10 @@ static bool acpi_decode_space(struct resource *res,
switch (addr->resource_type) {
case ACPI_MEMORY_RANGE:
- acpi_dev_memresource_flags(res, len, wp, window);
+ acpi_dev_memresource_flags(res, len, wp);
break;
case ACPI_IO_RANGE:
- acpi_dev_ioresource_flags(res, len, iodec, window);
+ acpi_dev_ioresource_flags(res, len, iodec);
break;
case ACPI_BUS_NUMBER_RANGE:
res->flags = IORESOURCE_BUS;
@@ -204,6 +197,9 @@ static bool acpi_decode_space(struct resource *res,
return false;
}
+ if (addr->producer_consumer == ACPI_PRODUCER)
+ res->flags |= IORESOURCE_WINDOW;
+
return !(res->flags & IORESOURCE_DISABLED);
}