mirror of
https://github.com/torvalds/linux.git
synced 2026-10-12 21:31:03 +02:00
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:
parent
1f33b8208a
commit
bf69e515b1
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user