Commit 72e26b0d authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Rafael J. Wysocki

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: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarJiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent eb76d55e
...@@ -53,7 +53,7 @@ static bool acpi_dev_resource_len_valid(u64 start, u64 end, u64 len, bool io) ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment