[PATCH v7/v3 00/22] Host1x context isolation / Tegra234 support

From: Mikko Perttunen
Date: Mon Jun 27 2022 - 10:21:15 EST


From: Mikko Perttunen <mperttunen@xxxxxxxxxx>

Integrated the Host1x context isolation series (patches 1 to 8) and
Tegra234 support series (patches 9 to 22) in one email thread for
the benefit of automatic testers.

Changes from previous versions:

Context isolation:
* Improved check to ensure context devices are attached to IOMMU
* Fixed build failure when CONFIG_IOMMU_API=n as reported by bot
* Dropped Thierry's Host1x schema YAML conversion from this series
-- it was accidentally included in the previous
* Also dropped arm-smmu change for now. It can be merged later if
necessary.

Tegra234:
* Split bracketing fix in DT schema to separate patch
* Added Acked-by

Thanks,
Mikko

Mikko Perttunen (22):
dt-bindings: host1x: Add iommu-map property
gpu: host1x: Add context device management code
gpu: host1x: Program context stream ID on submission
arm64: tegra: Add Host1x context stream IDs on Tegra186+
drm/tegra: falcon: Set DMACTX field on DMA transactions
drm/tegra: nvdec: Fix TRANSCFG register offset
drm/tegra: Support context isolation
drm/tegra: Implement stream ID related callbacks on engines
dt-bindings: Add bindings for Tegra234 Host1x and VIC
dt-bindings: host1x: Fix bracketing in example
dt-bindings: Add headers for Host1x and VIC on Tegra234
arm64: tegra: Add Host1x and VIC on Tegra234
gpu: host1x: Deduplicate hardware headers
gpu: host1x: Simplify register mapping and add common aperture
gpu: host1x: Program virtualization tables
gpu: host1x: Allow reset to be missing
gpu: host1x: Program interrupt destinations on Tegra234
gpu: host1x: Tegra234 device data and headers
gpu: host1x: Rewrite job opcode sequence
gpu: host1x: Add MLOCK release code on Tegra234
gpu: host1x: Use RESTART_W to skip timed out jobs on Tegra186+
drm/tegra: vic: Add Tegra234 support

.../display/tegra/nvidia,tegra124-vic.yaml | 1 +
.../display/tegra/nvidia,tegra20-host1x.yaml | 115 +++++++++--
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 11 ++
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 11 ++
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 46 +++++
drivers/gpu/drm/tegra/drm.c | 1 +
drivers/gpu/drm/tegra/drm.h | 11 ++
drivers/gpu/drm/tegra/falcon.c | 8 +
drivers/gpu/drm/tegra/falcon.h | 1 +
drivers/gpu/drm/tegra/nvdec.c | 13 +-
drivers/gpu/drm/tegra/submit.c | 48 ++++-
drivers/gpu/drm/tegra/uapi.c | 43 ++++-
drivers/gpu/drm/tegra/vic.c | 79 +++++++-
drivers/gpu/host1x/Makefile | 6 +-
drivers/gpu/host1x/cdma.c | 19 +-
drivers/gpu/host1x/context.c | 160 ++++++++++++++++
drivers/gpu/host1x/context.h | 38 ++++
drivers/gpu/host1x/dev.c | 124 ++++++++----
drivers/gpu/host1x/dev.h | 13 ++
drivers/gpu/host1x/hw/cdma_hw.c | 34 ++++
drivers/gpu/host1x/hw/channel_hw.c | 136 +++++++++----
drivers/gpu/host1x/hw/host1x01_hardware.h | 114 +----------
drivers/gpu/host1x/hw/host1x02_hardware.h | 113 +----------
drivers/gpu/host1x/hw/host1x04_hardware.h | 113 +----------
drivers/gpu/host1x/hw/host1x05_hardware.h | 113 +----------
drivers/gpu/host1x/hw/host1x06_hardware.h | 118 +-----------
drivers/gpu/host1x/hw/host1x07_hardware.h | 118 +-----------
drivers/gpu/host1x/hw/host1x08.c | 33 ++++
drivers/gpu/host1x/hw/host1x08.h | 15 ++
drivers/gpu/host1x/hw/host1x08_hardware.h | 21 ++
drivers/gpu/host1x/hw/hw_host1x08_channel.h | 11 ++
drivers/gpu/host1x/hw/hw_host1x08_common.h | 11 ++
.../gpu/host1x/hw/hw_host1x08_hypervisor.h | 9 +
drivers/gpu/host1x/hw/hw_host1x08_uclass.h | 181 ++++++++++++++++++
drivers/gpu/host1x/hw/hw_host1x08_vm.h | 36 ++++
drivers/gpu/host1x/hw/intr_hw.c | 11 ++
drivers/gpu/host1x/hw/opcodes.h | 150 +++++++++++++++
include/dt-bindings/clock/tegra234-clock.h | 4 +
include/dt-bindings/memory/tegra234-mc.h | 5 +
.../dt-bindings/power/tegra234-powergate.h | 1 +
include/dt-bindings/reset/tegra234-reset.h | 1 +
include/linux/host1x.h | 42 ++++
42 files changed, 1357 insertions(+), 781 deletions(-)
create mode 100644 drivers/gpu/host1x/context.c
create mode 100644 drivers/gpu/host1x/context.h
create mode 100644 drivers/gpu/host1x/hw/host1x08.c
create mode 100644 drivers/gpu/host1x/hw/host1x08.h
create mode 100644 drivers/gpu/host1x/hw/host1x08_hardware.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_channel.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_common.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_hypervisor.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_uclass.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_vm.h
create mode 100644 drivers/gpu/host1x/hw/opcodes.h

--
2.36.1