iommu/tegra-gart: Remove tegra-gart
authorJason Gunthorpe <jgg@nvidia.com>
Wed, 13 Sep 2023 13:43:39 +0000 (10:43 -0300)
committerJoerg Roedel <jroedel@suse.de>
Mon, 25 Sep 2023 09:40:54 +0000 (11:40 +0200)
commitc462944901319cb52ec0d0382dcea64f4f6f70e8
treeeb08129ed33ff1066b01177313e5c67eaec9df55
parent8565915e75581ba540527d1d9a2b89620002a0d0
iommu/tegra-gart: Remove tegra-gart

Thierry says this is not used anymore, and doesn't think it makes sense as
an iommu driver. The HW it supports is about 10 years old now and newer HW
uses different IOMMU drivers.

As this is the only driver with a GART approach, and it doesn't really
meet the driver expectations from the IOMMU core, let's just remove it
so we don't have to think about how to make it fit in.

It has a number of identified problems:
 - The assignment of iommu_groups doesn't match the HW behavior

 - It claims to have an UNMANAGED domain but it is really an IDENTITY
   domain with a translation aperture. This is inconsistent with the core
   expectation for security sensitive operations

 - It doesn't implement a SW page table under struct iommu_domain so
   * It can't accept a map until the domain is attached
   * It forgets about all maps after the domain is detached
   * It doesn't clear the HW of maps once the domain is detached
     (made worse by having the wrong groups)

Cc: Thierry Reding <treding@nvidia.com>
Cc: Dmitry Osipenko <digetx@gmail.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/6-v8-81230027b2fa+9d-iommu_all_defdom_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
arch/arm/configs/multi_v7_defconfig
arch/arm/configs/tegra_defconfig
drivers/iommu/Kconfig
drivers/iommu/Makefile
drivers/iommu/tegra-gart.c [deleted file]
drivers/memory/tegra/mc.c
drivers/memory/tegra/tegra20.c
include/soc/tegra/mc.h