[PATCHv3 3/4] iommu/tegra: smmu: Refrain from accessing to AHB
From: Stephen Warren <hidden>
Date: 2012-05-03 17:48:29
Also in:
linux-tegra, lkml
From: Stephen Warren <hidden>
Date: 2012-05-03 17:48:29
Also in:
linux-tegra, lkml
On 05/03/2012 10:05 AM, Hiroshi DOYU wrote:
Use "tegra_ahb_enable_smmu()" to inform AHB that SMMU is ready, instead of directly aceessing AHB registers.
You need to make the Kconfig option for the SMMU either depend on or select the TEGRA_AHB option. If you don't, then if someone disables the AHB driver, the SMMU driver may still build, yet fail to link since the AHB API it calls doesn't exist.
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
@@ -398,10 +388,8 @@ static void smmu_setup_regs(struct smmu_device *smmu) smmu_flush_regs(smmu, 1); - val = ahb_read(smmu, AHB_XBAR_CTRL); - val |= AHB_XBAR_CTRL_SMMU_INIT_DONE_DONE << - AHB_XBAR_CTRL_SMMU_INIT_DONE_SHIFT; - ahb_write(smmu, val, AHB_XBAR_CTRL); + err = tegra_ahb_enable_smmu(smmu->ahb); + return err;
You can just "return tegra_ahb_..." here.
@@ -911,14 +899,16 @@ static int tegra_smmu_probe(struct platform_device *pdev)
+ smmu->ahb = of_parse_phandle(pdev->dev.of_node, "ahb", 0);
Hmm, "ahb" should probably be "nvidia,ahb". I see that neither this patch nor the next patch include binding documentation that describe this property. Can you please add documentation.