On Wed, Mar 10, 2021 at 11:22:57PM +0300, Dmitry Osipenko wrote: > 10.03.2021 22:13, Dmitry Osipenko пишет: > > I found that this patch introduced a serious regression on Tegra30 using > > today's linux-next. Tegra30 has two 3d h/w blocks connected in SLI and > > only one of the blocks is now attached to IOMMU domain, meaning that GPU > > is unusable now. All 3d, 2d and display devices share the same "DRM" > > group on Tegra30. > > > > Nicolin, please let me know if have any suggestions. I may take a closer > > look a day later, for now I'll just revert this patch locally. Thanks in > > advance. > > > > Actually, this was easy to fix: > > diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c > index 97eb62f667d2..639d5ceab60b 100644 > --- a/drivers/iommu/tegra-smmu.c > +++ b/drivers/iommu/tegra-smmu.c > @@ -853,8 +853,6 @@ static struct iommu_device > *tegra_smmu_probe_device(struct device *dev) > > if (err < 0) > return ERR_PTR(err); > - > - break; Hmm..I don't understand why this "break" causes problems on Tegra30. The older versions that used _find()+configure() had it also, e.g.: https://elixir.bootlin.com/linux/v5.9.16/source/drivers/iommu/tegra-smmu.c#L760 Dmitry, do you have any idea?