linux/drivers/gpu/host1x
Jason Gunthorpe cb83f4b965 gpu: host1x: Do not assume that a NULL domain means no DMA IOMMU
Previously with tegra-smmu, even with CONFIG_IOMMU_DMA, the default domain
could have been left as NULL. The NULL domain is specially recognized by
host1x_iommu_attach() as meaning it is not the DMA domain and
should be replaced with the special shared domain.

This happened prior to the below commit because tegra-smmu was using the
NULL domain to mean IDENTITY.

Now that the domain is properly labled the test in DRM doesn't see NULL.
Check for IDENTITY as well to enable the special domains.

This is the same issue and basic fix as seen in
commit fae6e669cd ("drm/tegra: Do not assume that a NULL domain means no
DMA IOMMU").

Fixes: c8cc2655cc ("iommu/tegra-smmu: Implement an IDENTITY domain")
Reported-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Closes: https://lore.kernel.org/all/c6a6f114-3acd-4d56-a13b-b88978e927dc@tecnico.ulisboa.pt/
Tested-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/0-v1-10dcc8ce3869+3a7-host1x_identity_jgg@nvidia.com
2025-03-19 19:05:40 +01:00
..
hw gpu: host1x: Add MLOCK recovery for rest of engines 2024-08-29 20:14:29 +02:00
bus.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
bus.h gpu: host1x: bus: make host1x_bus_type const 2024-02-13 19:10:57 +01:00
cdma.c gpu: host1x: remove redundant assignment to variable space 2024-02-16 11:51:46 +01:00
cdma.h gpu: host1x: Implement job tracking using DMA fences 2023-01-26 15:55:38 +01:00
channel.c gpu: host1x: Stop CDMA before suspending 2023-10-11 22:52:44 +02:00
channel.h gpu: host1x: Stop CDMA before suspending 2023-10-11 22:52:44 +02:00
context_bus.c gpu: host1x: Make host1x_context_device_bus_type constant 2024-08-29 20:14:29 +02:00
context.c gpu: host1x: Set up device DMA parameters 2024-09-25 21:21:23 +02:00
context.h gpu: host1x: Add context device management code 2022-07-08 16:27:52 +02:00
debug.c gpu: host1x: Rewrite syncpoint interrupt handling 2023-01-26 15:55:38 +01:00
debug.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
dev.c gpu: host1x: Do not assume that a NULL domain means no DMA IOMMU 2025-03-19 19:05:40 +01:00
dev.h gpu: host1x: Fix _writel function declarations 2024-08-29 20:14:29 +02:00
fence.c gpu: host1x: External timeout/cancellation for fences 2023-01-26 15:55:38 +01:00
fence.h gpu: host1x: External timeout/cancellation for fences 2023-01-26 15:55:38 +01:00
intr.c gpu: host1x: Fix a use of uninitialized mutex 2025-02-07 15:57:50 +01:00
intr.h gpu: host1x: Request syncpoint IRQs only during probe 2024-08-28 17:28:48 +02:00
job.c gpu: host1x: Implement job tracking using DMA fences 2023-01-26 15:55:38 +01:00
job.h drm/tegra: Implement correct DMA-BUF semantics 2021-12-16 14:07:06 +01:00
Kconfig drm/tegra: Allow compile test on !ARM v2 2023-04-04 18:04:43 +02:00
Makefile gpu: host1x: Tegra234 device data and headers 2022-07-08 16:27:52 +02:00
mipi.c gpu: host1x: mipi: Benefit from devm_clk_get_prepared() 2024-05-27 10:13:55 +02:00
syncpt.c gpu: host1x: Don't rely on dma_fence_wait_timeout return value 2023-04-04 14:24:24 +02:00
syncpt.h gpu: host1x: Rewrite syncpoint interrupt handling 2023-01-26 15:55:38 +01:00