Re: [PATCH 2/2] iommu/tegra: gart: Reserve iomem resource

Stephen Warren
2012-05-21T17:14:15Z

On 05/21/2012 11:05 AM, Lucas Stach wrote:
> Am Montag, den 21.05.2012, 10:41 -0600 schrieb Stephen Warren:
>> On 05/21/2012 08:11 AM, Thierry Reding wrote:
>>> * Hiroshi DOYU wrote:
>>>> GART Register/Aperture range should be reserved.
>> ...
>>>> diff --git a/drivers/iommu/tegra-gart.c
>>>> b/drivers/iommu/tegra-gart.c
>> ...
>>>> + if (!devm_request_mem_region(dev, res_remap->start, +
>>>> resource_size(res_remap), dev_name(dev))) { + dev_err(dev,
>>>> "failed to reserve GART aperture\n"); + return -EBUSY; + } +
>>>
>>> I'm not so sure that this is a good idea. If the GART driver
>>> requests the GART aperture, then users of the GART aperture (e.g.
>>> the DRM driver) will no longer be able to use it.
>>
>> Presumably the DRM driver would be obtaining access to parts of the
>> GART aperture through the GART driver, rather than just grabbing the
>> IO region and using it for itself?
>
> With a TTM-like memory manager the DRM driver will take over the address
> space management of the GART aperture. The GART driver is only used to
> set up the mappings in the IOMMU. The DRM driver is the one that sets
> up/tears down the CPU mappings on demand, so the aperture should be
> claimed in the DRM driver.

Even if the DRM driver is managing the aperture, I still think the GART
driver should claim it. The physical address of the aperture is a
property of the GART, so only the GART's resources (and DT node) should
contain a representation of where that aperture is. The DRM driver
should call into the GART driver to find out where the aperture is, and
hence GART is able to claim it without conflict.