]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
slimbus: qcom-ngd-ctrl: Balance pm_runtime enablement for NGD
authorBjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Sat, 30 May 2026 20:44:20 +0000 (21:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Jun 2026 15:19:51 +0000 (17:19 +0200)
The pm_runtime_enable() and pm_runtime_use_autosuspend() calls are
supposed to be balanced on exit, add these calls.

Fixes: 917809e2280b ("slimbus: ngd: Add qcom SLIMBus NGD driver")
Cc: stable@vger.kernel.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Signed-off-by: Srinivas Kandagatla <srini@kernel.org>
Link: https://patch.msgid.link/20260530204421.116824-8-srini@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/slimbus/qcom-ngd-ctrl.c

index 540a629996554813b54628e77799e7d070303490..8b207efeadbcce640e0c0338083b8508609307f6 100644 (file)
@@ -1582,8 +1582,11 @@ static int qcom_slim_ngd_probe(struct platform_device *pdev)
        pm_runtime_enable(dev);
        pm_runtime_get_noresume(dev);
        ret = qcom_slim_ngd_qmi_svc_event_init(ctrl);
-       if (ret)
+       if (ret) {
                dev_err(&pdev->dev, "QMI service registration failed:%d", ret);
+               pm_runtime_dont_use_autosuspend(dev);
+               pm_runtime_disable(dev);
+       }
 
        return ret;
 }
@@ -1696,6 +1699,7 @@ static void qcom_slim_ngd_remove(struct platform_device *pdev)
 {
        struct qcom_slim_ngd_ctrl *ctrl = platform_get_drvdata(pdev);
 
+       pm_runtime_dont_use_autosuspend(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
        qcom_slim_ngd_enable(ctrl, false);
        qcom_slim_ngd_exit_dma(ctrl);