Re: [Resend PATCH 2/5] ACPI/Resource: Add address translation support

From: Lan Tianyu
Date: Wed Oct 16 2013 - 23:21:29 EST


On 2013å10æ17æ 07:05, Bjorn Helgaas wrote:
> On Fri, Oct 11, 2013 at 08:18:58PM +0800, tianyu.lan@xxxxxxxxx wrote:
>> From: Lan Tianyu <tianyu.lan@xxxxxxxxx>
>>
>> According ACPI 5.0 spec Section 19.1.8
>
> This section reference is wrong. Table 5-133 (on page 243) does
> point to Section 19.1.8, but that section is only the ASL grammar
> description and doesn't have any useful information about what
> _TRA means.
>
> A more useful reference (and the source of the quote below) is
> Section 6.4.3.5.1.
>
>> "For bridges, translate addresses across the bridge, this 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."
>
> You didn't quote this correctly. Here's a copy/paste from the spec:
>
> For bridges that translate addresses across the bridge, this 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.
>
>> This patch is to add address translation offset to the start/end
>> of struct resource in the acpi_dev_resource_address_space().
>> Further more, non-bridge device's translation_offset should 0.
>> So this change will affect other devices.
>>
>> Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx>
>
> I like the patch, though :) With the above corrections,

Hi Bjorn:
Thanks for review. I will correct them.

>
> Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
>
>> ---
>> drivers/acpi/resource.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
>> index 929f416..84bc3db 100644
>> --- a/drivers/acpi/resource.c
>> +++ b/drivers/acpi/resource.c
>> @@ -192,8 +192,8 @@ bool acpi_dev_resource_address_space(struct acpi_resource *ares,
>> if (ACPI_FAILURE(status))
>> return true;
>>
>> - res->start = addr.minimum;
>> - res->end = addr.maximum;
>> + res->start = addr.minimum + addr.translation_offset;
>> + res->end = addr.maximum + addr.translation_offset;
>> window = addr.producer_consumer == ACPI_PRODUCER;
>>
>> switch(addr.resource_type) {
>> --
>> 1.8.2.1
>>


--
Best regards
Tianyu Lan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/