diff options
| author | Mukesh Ojha <mukesh.ojha@oss.qualcomm.com> | 2026-07-17 20:16:04 +0530 |
|---|---|---|
| committer | Will Deacon <will@kernel.org> | 2026-07-22 13:07:58 +0000 |
| commit | bf69e515b1802b67d91fa014c3ec1fbe217b345b (patch) | |
| tree | de0d4ec9efebb6540a41e0f0b3cfecf4bf2b2ef5 | |
| parent | 1f33b8208a1978b0c0d6ad60a47fe4bb7a235e58 (diff) | |
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>
| -rw-r--r-- | drivers/iommu/arm/arm-smmu/qcom_iommu.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/iommu/arm/arm-smmu/qcom_iommu.c b/drivers/iommu/arm/arm-smmu/qcom_iommu.c index 09f2ee6be988..71251aecc292 100644 --- a/drivers/iommu/arm/arm-smmu/qcom_iommu.c +++ b/drivers/iommu/arm/arm-smmu/qcom_iommu.c @@ -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; } |
