提交 1662dd64 编写于 作者: D Dmitry Osipenko 提交者: Thierry Reding

memory: tegra: Correct driver probe order

The Reset Controller should be registered in the end of probe, otherwise
Memory Controller device goes away if IRQ requesting fails and the Reset
Controller stays registered. To avoid having to unwind the MC probing in
a case of SMMU probe failure, let's simply print the error message without
failing the MC probe. This allows us to just move the Reset Controller
registering before the SMMU registration, reducing code churning. Also
let's not fail MC probe in a case of Reset Controller registration failure
as it doesn't prevent the MC driver to work.
Signed-off-by: NDmitry Osipenko <digetx@gmail.com>
Signed-off-by: NThierry Reding <treding@nvidia.com>
上级 ce397d21
...@@ -672,13 +672,6 @@ static int tegra_mc_probe(struct platform_device *pdev) ...@@ -672,13 +672,6 @@ static int tegra_mc_probe(struct platform_device *pdev)
return err; return err;
} }
err = tegra_mc_reset_setup(mc);
if (err < 0) {
dev_err(&pdev->dev, "failed to register reset controller: %d\n",
err);
return err;
}
mc->irq = platform_get_irq(pdev, 0); mc->irq = platform_get_irq(pdev, 0);
if (mc->irq < 0) { if (mc->irq < 0) {
dev_err(&pdev->dev, "interrupt not specified\n"); dev_err(&pdev->dev, "interrupt not specified\n");
...@@ -697,13 +690,16 @@ static int tegra_mc_probe(struct platform_device *pdev) ...@@ -697,13 +690,16 @@ static int tegra_mc_probe(struct platform_device *pdev)
return err; return err;
} }
err = tegra_mc_reset_setup(mc);
if (err < 0)
dev_err(&pdev->dev, "failed to register reset controller: %d\n",
err);
if (IS_ENABLED(CONFIG_TEGRA_IOMMU_SMMU)) { if (IS_ENABLED(CONFIG_TEGRA_IOMMU_SMMU)) {
mc->smmu = tegra_smmu_probe(&pdev->dev, mc->soc->smmu, mc); mc->smmu = tegra_smmu_probe(&pdev->dev, mc->soc->smmu, mc);
if (IS_ERR(mc->smmu)) { if (IS_ERR(mc->smmu))
dev_err(&pdev->dev, "failed to probe SMMU: %ld\n", dev_err(&pdev->dev, "failed to probe SMMU: %ld\n",
PTR_ERR(mc->smmu)); PTR_ERR(mc->smmu));
return PTR_ERR(mc->smmu);
}
} }
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册