On Fri, Mar 12, 2021 at 06:54:39PM +0300, Dmitry Osipenko wrote: > The tegra_smmu_probe_device() handles only the first IOMMU device-tree > phandle, skipping the rest. Devices like 3D module on Tegra30 have > multiple IOMMU phandles, one for each h/w block, and thus, only one > IOMMU phandle is added to fwspec for the 3D module, breaking GPU. > Previously this problem was masked by tegra_smmu_attach_dev() which > didn't use the fwspec, but parsed the DT by itself. The previous commit > to tegra-smmu driver partially reverted changes that caused problems for > T124 and now we have tegra_smmu_attach_dev() that uses the fwspec and > the old-buggy variant of tegra_smmu_probe_device() which skips secondary > IOMMUs. > > Make tegra_smmu_probe_device() not to skip the secondary IOMMUs. This > fixes a partially attached IOMMU of the 3D module on Tegra30 and now GPU > works properly once again. > > Fixes: 765a9d1d02b2 ("iommu/tegra-smmu: Fix mc errors on tegra124-nyan") > Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> Tested-by: Nicolin Chen <nicoleotsuka@xxxxxxxxx>