Re: [PATCH] iommu/tegra-smmu: Fix mc errors on tegra124-nyan
From: Dmitry Osipenko <digetx@gmail.com>
Date: 2021-02-20 05:17:23
Also in:
linux-iommu, lkml
From: Dmitry Osipenko <digetx@gmail.com>
Date: 2021-02-20 05:17:23
Also in:
linux-iommu, lkml
19.02.2021 01:07, Nicolin Chen пишет:
Commit 25938c73cd79 ("iommu/tegra-smmu: Rework tegra_smmu_probe_device()")
removed certain hack in the tegra_smmu_probe() by relying on IOMMU core to
of_xlate SMMU's SID per device, so as to get rid of tegra_smmu_find() and
tegra_smmu_configure() that are typically done in the IOMMU core also.
This approach works for both existing devices that have DT nodes and other
devices (like PCI device) that don't exist in DT, on Tegra210 and Tegra3
upon testing. However, Page Fault errors are reported on tegra124-Nyan:
tegra-mc 70019000.memory-controller: display0a: read @0xfe056b40:
EMEM address decode error (SMMU translation error [--S])
tegra-mc 70019000.memory-controller: display0a: read @0xfe056b40:
Page fault (SMMU translation error [--S])
After debugging, I found that the mentioned commit changed some function
callback sequence of tegra-smmu's, resulting in enabling SMMU for display
client before display driver gets initialized. I couldn't reproduce exact
same issue on Tegra210 as Tegra124 (arm-32) differs at arch-level code.Hello Nicolin, Could you please explain in a more details what exactly makes the difference for the callback sequence?