[PATCH] gpu: host1x: Avoid trying to use GART on Tegra20

Jon Hunter jonathanh at nvidia.com
Thu Oct 20 12:25:27 UTC 2022


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

Cheers
Jon

-- 
nvpublic


More information about the dri-devel mailing list