Re: [PATCH] iommu/tegra-smmu: Fix mc errors on tegra124-nyan

From: Nicolin Chen
Date: Wed Mar 10 2021 - 17:20:25 EST


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?