The proxy power domain enable path discards the return value of
dev_pm_genpd_set_performance_state(), masking failures silently.
When the call fails the performance state is not applied, yet
firmware load proceeds without any indication of the problem.

Capture the return value and emit a warning on failure. Firmware
load continues regardless a performance state failure is non-fatal
but the warning provides a visible signal for debugging.

Signed-off-by: Mukesh Ojha <[email protected]>
---
 drivers/remoteproc/qcom_q6v5_pas.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/remoteproc/qcom_q6v5_pas.c 
b/drivers/remoteproc/qcom_q6v5_pas.c
index a005546c265d..01dc0194e130 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -167,7 +167,11 @@ static int qcom_pas_pds_enable(struct qcom_pas *pas, 
struct device **pds,
        int i;
 
        for (i = 0; i < pd_count; i++) {
-               dev_pm_genpd_set_performance_state(pds[i], INT_MAX);
+               ret = dev_pm_genpd_set_performance_state(pds[i], INT_MAX);
+               if (ret)
+                       dev_warn(pas->dev,
+                                "failed to set proxy PD %d state %u: %d\n",
+                                i, INT_MAX, ret);
                ret = pm_runtime_get_sync(pds[i]);
                if (ret < 0) {
                        pm_runtime_put_noidle(pds[i]);
-- 
2.55.0


Reply via email to