iommu/qcom: Use devm_pm_runtime_enable() in qcom_iommu_device_probe()

Switch from pm_runtime_enable() to devm_pm_runtime_enable() so that
the matching pm_runtime_disable() is handled automatically via devres,
both on probe failure and on device removal.

This removes the err_pm_disable error label from the probe function and
the explicit pm_runtime_disable() call from qcom_iommu_device_remove().

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
Mukesh Ojha 2026-07-17 20:16:04 +05:30 committed by Will Deacon
parent 1f33b8208a
commit bf69e515b1

View File

@ -836,20 +836,22 @@ static int qcom_iommu_device_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, qcom_iommu);
pm_runtime_enable(dev);
ret = devm_pm_runtime_enable(dev);
if (ret)
return ret;
/* register context bank devices, which are child nodes: */
ret = devm_of_platform_populate(dev);
if (ret) {
dev_err(dev, "Failed to populate iommu contexts\n");
goto err_pm_disable;
return ret;
}
ret = iommu_device_sysfs_add(&qcom_iommu->iommu, dev, NULL,
dev_name(dev));
if (ret) {
dev_err(dev, "Failed to register iommu in sysfs\n");
goto err_pm_disable;
return ret;
}
ret = iommu_device_register(&qcom_iommu->iommu, &qcom_iommu_ops, dev);
@ -868,8 +870,6 @@ static int qcom_iommu_device_probe(struct platform_device *pdev)
err_sysfs_remove:
iommu_device_sysfs_remove(&qcom_iommu->iommu);
err_pm_disable:
pm_runtime_disable(dev);
return ret;
}