Commit 2f8c7f2e authored by Heiko Stuebner's avatar Heiko Stuebner Committed by Joerg Roedel

iommu/rockchip: Make clock handling optional

iommu clocks are optional, so the driver should not fail if they are not
present. Instead just set the number of clocks to 0, which the clk-blk APIs
can handle just fine.

Fixes: f2e3a5f5 ("iommu/rockchip: Control clocks needed to access the IOMMU")
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
Tested-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 94c793ac
...@@ -1175,8 +1175,15 @@ static int rk_iommu_probe(struct platform_device *pdev) ...@@ -1175,8 +1175,15 @@ static int rk_iommu_probe(struct platform_device *pdev)
for (i = 0; i < iommu->num_clocks; ++i) for (i = 0; i < iommu->num_clocks; ++i)
iommu->clocks[i].id = rk_iommu_clocks[i]; iommu->clocks[i].id = rk_iommu_clocks[i];
/*
* iommu clocks should be present for all new devices and devicetrees
* but there are older devicetrees without clocks out in the wild.
* So clocks as optional for the time being.
*/
err = devm_clk_bulk_get(iommu->dev, iommu->num_clocks, iommu->clocks); err = devm_clk_bulk_get(iommu->dev, iommu->num_clocks, iommu->clocks);
if (err) if (err == -ENOENT)
iommu->num_clocks = 0;
else if (err)
return err; return err;
err = clk_bulk_prepare(iommu->num_clocks, iommu->clocks); err = clk_bulk_prepare(iommu->num_clocks, iommu->clocks);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment