[PATCH v2 00/13] drm/tegra: Fix IOVA space on Tegra186 and later
Thierry Reding
thierry.reding at gmail.com
Thu Jan 24 18:02:41 UTC 2019
From: Thierry Reding <treding at nvidia.com>
Tegra186 and later are different from earlier generations in that they
use an ARM SMMU rather than the Tegra SMMU. The ARM SMMU driver behaves
slightly differently in that the geometry for IOMMU domains is set only
after a device was attached to it. This is to make sure that the SMMU
instance that the domain belongs to is known, because each instance can
have a different input address space (i.e. geometry).
Work around this by moving all IOVA allocations to a point where the
geometry of the domain is properly initialized.
This second version of the series addresses all review comments and adds
a number of patches that will actually allow host1x to work with an SMMU
enabled on Tegra186. The patches also add programming required to
address the full 40 bits of address space.
This supersedes the following patch:
https://patchwork.kernel.org/patch/10775579/
Thierry
Thierry Reding (13):
gpu: host1x: Set up stream ID table
gpu: host1x: Program the channel stream ID
gpu: host1x: Support 40-bit addressing
gpu: host1x: Use direct DMA with IOMMU API usage
gpu: host1x: Restrict IOVA space to DMA mask
gpu: host1x: Supports 40-bit addressing on Tegra186
drm/tegra: Store parent pointer in Tegra DRM clients
drm/tegra: vic: Load firmware on demand
drm/tegra: Setup shared IOMMU domain after initialization
drm/tegra: Restrict IOVA space to DMA mask
drm/tegra: vic: Do not clear driver data
drm/tegra: vic: Support stream ID register programming
arm64: tegra: Enable SMMU for VIC on Tegra186
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 1 +
drivers/gpu/drm/tegra/drm.c | 57 +++++++++-------
drivers/gpu/drm/tegra/drm.h | 1 +
drivers/gpu/drm/tegra/vic.c | 75 ++++++++++++++++-----
drivers/gpu/drm/tegra/vic.h | 9 +++
drivers/gpu/host1x/cdma.c | 11 ++-
drivers/gpu/host1x/dev.c | 49 ++++++++++++--
drivers/gpu/host1x/dev.h | 8 +++
drivers/gpu/host1x/hw/cdma_hw.c | 13 +++-
drivers/gpu/host1x/hw/channel_hw.c | 40 +++++++++--
drivers/gpu/host1x/hw/host1x06_hardware.h | 6 ++
drivers/gpu/host1x/hw/host1x07_hardware.h | 6 ++
drivers/gpu/host1x/hw/hw_host1x06_channel.h | 11 +++
drivers/gpu/host1x/hw/hw_host1x07_channel.h | 11 +++
14 files changed, 241 insertions(+), 57 deletions(-)
create mode 100644 drivers/gpu/host1x/hw/hw_host1x06_channel.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x07_channel.h
--
2.19.1
More information about the dri-devel
mailing list