[PATCH] gpu: host1x: Avoid trying to use GART on Tegra20
Robin Murphy
robin.murphy at arm.com
Thu Oct 20 12:42:28 UTC 2022
On 2022-10-20 13:25, Jon Hunter wrote:
> Hi Robin,
>
> On 19/10/2022 18:23, Robin Murphy wrote:
>> Since commit c7e3ca515e78 ("iommu/tegra: gart: Do not register with
>> bus") quite some time ago, the GART driver has effectively disabled
>> itself to avoid issues with the GPU driver expecting it to work in ways
>> that it doesn't. As of commit 57365a04c921 ("iommu: Move bus setup to
>> IOMMU device registration") that bodge no longer works, but really the
>> GPU driver should be responsible for its own behaviour anyway. Make the
>> workaround explicit.
>>
>> Reported-by: Jon Hunter <jonathanh at nvidia.com>
>> Suggested-by: Dmitry Osipenko <digetx at gmail.com>
>> Signed-off-by: Robin Murphy <robin.murphy at arm.com>
>> ---
>> drivers/gpu/host1x/dev.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
>> index a13fd9441edc..1cae8eea92cf 100644
>> --- a/drivers/gpu/host1x/dev.c
>> +++ b/drivers/gpu/host1x/dev.c
>> @@ -352,6 +352,10 @@ static struct iommu_domain
>> *host1x_iommu_attach(struct host1x *host)
>> if (!host1x_wants_iommu(host) || domain)
>> return domain;
>> + /* Our IOMMU usage policy doesn't currently play well with GART */
>> + if (of_machine_is_compatible("nvidia,tegra20"))
>> + return NULL;
>> +
>> host->group = iommu_group_get(host->dev);
>> if (host->group) {
>> struct iommu_domain_geometry *geometry;
>
>
> Thanks for sending. I gave this a quick test, but I still see ...
>
> [ 2.901739] tegra-gr2d 54140000.gr2d: failed to attach to domain: -19
> [ 2.908373] drm drm: failed to initialize 54140000.gr2d: -19
Urgh, of course it's the same-but-different logic in host1x_drm_probe()
that matters for that one. Am I allowed to mention how much these
drivers drive me to despair?
v2 coming soon...
Thanks,
Robin.
More information about the dri-devel
mailing list