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>
This commit is contained in:
Thomas Gleixner 2015-02-02 10:42:52 +08:00 committed by Rafael J. Wysocki
parent eb76d55e66
commit 72e26b0d48

View File

@ -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, static void acpi_dev_memresource_flags(struct resource *res, u64 len,
u8 write_protect, bool window) u8 write_protect)
{ {
res->flags = IORESOURCE_MEM; 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) if (write_protect == ACPI_READ_WRITE_MEMORY)
res->flags |= IORESOURCE_MEM_WRITEABLE; res->flags |= IORESOURCE_MEM_WRITEABLE;
if (window)
res->flags |= IORESOURCE_WINDOW;
} }
static void acpi_dev_get_memresource(struct resource *res, u64 start, u64 len, 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->start = start;
res->end = start + len - 1; 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); EXPORT_SYMBOL_GPL(acpi_dev_resource_memory);
static void acpi_dev_ioresource_flags(struct resource *res, u64 len, static void acpi_dev_ioresource_flags(struct resource *res, u64 len,
u8 io_decode, bool window) u8 io_decode)
{ {
res->flags = IORESOURCE_IO; 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) if (io_decode == ACPI_DECODE_16)
res->flags |= IORESOURCE_IO_16BIT_ADDR; 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, 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->start = start;
res->end = start + len - 1; 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) struct acpi_address64_attribute *attr)
{ {
u8 iodec = attr->granularity == 0xfff ? ACPI_DECODE_10 : ACPI_DECODE_16; 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; bool wp = addr->info.mem.write_protect;
u64 len = attr->address_length; u64 len = attr->address_length;
@ -192,10 +185,10 @@ static bool acpi_decode_space(struct resource *res,
switch (addr->resource_type) { switch (addr->resource_type) {
case ACPI_MEMORY_RANGE: case ACPI_MEMORY_RANGE:
acpi_dev_memresource_flags(res, len, wp, window); acpi_dev_memresource_flags(res, len, wp);
break; break;
case ACPI_IO_RANGE: case ACPI_IO_RANGE:
acpi_dev_ioresource_flags(res, len, iodec, window); acpi_dev_ioresource_flags(res, len, iodec);
break; break;
case ACPI_BUS_NUMBER_RANGE: case ACPI_BUS_NUMBER_RANGE:
res->flags = IORESOURCE_BUS; res->flags = IORESOURCE_BUS;
@ -204,6 +197,9 @@ static bool acpi_decode_space(struct resource *res,
return false; return false;
} }
if (addr->producer_consumer == ACPI_PRODUCER)
res->flags |= IORESOURCE_WINDOW;
return !(res->flags & IORESOURCE_DISABLED); return !(res->flags & IORESOURCE_DISABLED);
} }