On 2015/1/21 8:50, Rafael J. Wysocki wrote: > On Thursday, January 08, 2015 10:33:01 AM Jiang Liu wrote: >> Add translation_offset into the result address for bridge window >> resources to form the master side address. >> >> Currently acpi_dev_resource_{ext_}address_space() are only used for >> devices instead of bridges, so it won't break current users. Later >> it will be used to support PCI host bridge drivers. >> >> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx> >> --- >> drivers/acpi/resource.c | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) >> >> diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c >> index d3aa56674bd4..16d334a1ee25 100644 >> --- a/drivers/acpi/resource.c >> +++ b/drivers/acpi/resource.c >> @@ -203,6 +203,20 @@ static bool acpi_decode_space(struct resource *res, resource_size_t *offset, >> res->start = addr->minimum; >> res->end = addr->maximum; >> >> + /* >> + * For bridges that translate addresses across the bridge, >> + * translation_offset is the offset that must be added to the >> + * address on the secondary side to obtain the address on the >> + * primary side. Non-bridge devices must list 0 for all Address >> + * Translation offset bits. >> + */ >> + if (base->producer_consumer == ACPI_PRODUCER) { > > OK, so the assumption is that this check is never true in the current code, right? Yes. > >> + res->start += addr->translation_offset; >> + res->end += addr->translation_offset; >> + } else if (addr->translation_offset) { > > And won't this break anything even if so? I'm trying to follow the spec, how about giving a warning here instead of failure? Regards! Gerry > >> + return false; >> + } >> + >> switch(base->resource_type) { >> case ACPI_MEMORY_RANGE: >> acpi_dev_memresource_flags(res, len, wp); >> > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html