remoteproc: qcom_wcnss: Fix on platforms without fallback regulators
authorMatti Lehtimäki <matti.lehtimaki@gmail.com>
Sun, 11 May 2025 23:40:15 +0000 (02:40 +0300)
committerBjorn Andersson <andersson@kernel.org>
Tue, 13 May 2025 15:34:33 +0000 (10:34 -0500)
Recent change to handle platforms with only single power domain broke
pronto-v3 which requires power domains and doesn't have fallback voltage
regulators in case power domains are missing. Add a check to verify
the number of fallback voltage regulators before using the code which
handles single power domain situation.

Fixes: 65991ea8a6d1 ("remoteproc: qcom_wcnss: Handle platforms with only single power domain")
Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com>
Tested-by: Luca Weiss <luca.weiss@fairphone.com> # sdm632-fairphone-fp3
Link: https://lore.kernel.org/r/20250511234026.94735-1-matti.lehtimaki@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/remoteproc/qcom_wcnss.c

index 775b056..2c7e519 100644 (file)
@@ -456,7 +456,8 @@ static int wcnss_init_regulators(struct qcom_wcnss *wcnss,
        if (wcnss->num_pds) {
                info += wcnss->num_pds;
                /* Handle single power domain case */
-               num_vregs += num_pd_vregs - wcnss->num_pds;
+               if (wcnss->num_pds < num_pd_vregs)
+                       num_vregs += num_pd_vregs - wcnss->num_pds;
        } else {
                num_vregs += num_pd_vregs;
        }