drm/msm/dpu: Fix error recovery after failing to enable clocks
authorJordan Crouse <jcrouse@codeaurora.org>
Tue, 7 May 2019 19:18:09 +0000 (13:18 -0600)
committerRob Clark <robdclark@chromium.org>
Tue, 18 Jun 2019 20:52:10 +0000 (13:52 -0700)
If enabling clocks fails in msm_dss_enable_clk() the code to unwind the
settings starts at 'i' which is the clock that just failed. While this
isn't harmful it does result in a number of warnings from the clock
subsystem while trying to unpreare/disable the very clock that had
just failed to prepare/enable. Skip the current failed clock during
the unwind to to avoid the extra log spew.

Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c

index 78833c2..a40a630 100644 (file)
@@ -114,9 +114,9 @@ int msm_dss_enable_clk(struct dss_clk *clk_arry, int num_clk, int enable)
                                rc = -EPERM;
                        }
 
-                       if (rc) {
-                               msm_dss_enable_clk(&clk_arry[i],
-                                       i, false);
+                       if (rc && i) {
+                               msm_dss_enable_clk(&clk_arry[i - 1],
+                                       i - 1, false);
                                break;
                        }
                }