linux/drivers/gpu/host1x
Thierry Reding 06867a362d gpu: host1x: Set DMA mask based on IOMMU setup
If the Tegra DRM clients are backed by an IOMMU, push buffers are likely
to be allocated beyond the 32-bit boundary if sufficient system memory
is available. This is problematic on earlier generations of Tegra where
host1x supports a maximum of 32 address bits for the GATHER opcode. More
recent versions of Tegra (Tegra186 and later) have a wide variant of the
GATHER opcode, which allows addressing up to 64 bits of memory.

If host1x itself is behind an IOMMU as well this doesn't matter because
the IOMMU's input address space is restricted to 32 bits on generations
without support for wide GATHER opcodes.

However, if host1x is not behind an IOMMU, it won't be able to process
push buffers beyond the 32-bit boundary on Tegra generations that don't
support wide GATHER opcodes. Restrict the DMA mask to 32 bits on these
generations prevents buffers from being allocated from beyond the 32-bit
boundary.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-10-29 15:04:35 +01:00
..
hw treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
bus.c gpu: host1x: Do not limit DMA segment size 2019-10-28 11:18:08 +01:00
bus.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
cdma.c gpu: host1x: Make host1x_cdma_wait_pushbuffer_space() static 2019-10-28 11:18:34 +01:00
cdma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
channel.c gpu: host1x: Request channels for clients, not devices 2019-10-28 11:18:33 +01:00
channel.h gpu: host1x: Request channels for clients, not devices 2019-10-28 11:18:33 +01:00
debug.c drm/tegra: Changes for v5.3-rc1 2019-06-25 12:59:43 +10:00
debug.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
dev.c gpu: host1x: Set DMA mask based on IOMMU setup 2019-10-29 15:04:35 +01:00
dev.h gpu: host1x: Set DMA mask based on IOMMU setup 2019-10-29 15:04:35 +01:00
intr.c gpu: host1x: Remove gratuitous blank line 2019-10-28 11:18:33 +01:00
intr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
job.c gpu: host1x: Support DMA mapping of buffers 2019-10-29 15:04:35 +01:00
job.h gpu: host1x: Support DMA mapping of buffers 2019-10-29 15:04:35 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile gpu: host1x: Add Tegra194 support 2018-11-29 17:11:49 +01:00
mipi.c drm/tegra: dsi: Enhance runtime power management 2016-08-24 15:58:57 +02:00
syncpt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
syncpt.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00