drm/msm: add support to take dsi, dp and dpu snapshot
authorAbhinav Kumar <abhinavk@codeaurora.org>
Fri, 16 Apr 2021 20:57:24 +0000 (13:57 -0700)
committerRob Clark <robdclark@chromium.org>
Wed, 23 Jun 2021 14:32:13 +0000 (07:32 -0700)
Add support to take the register snapshot of dsi, dp and dpu
modules.

Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/1618606645-19695-7-git-send-email-abhinavk@codeaurora.org
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/disp/msm_disp_snapshot.h
drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c

index 11dfa57..7e075e7 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/devcoredump.h>
 #include <stdarg.h>
 #include "msm_kms.h"
+#include "dsi.h"
 
 #define MSM_DISP_SNAPSHOT_MAX_BLKS             10
 
index 024ca49..44dc682 100644 (file)
@@ -130,9 +130,25 @@ void msm_disp_snapshot_capture_state(struct msm_disp_state *disp_state)
 {
        struct msm_drm_private *priv;
        struct drm_device *drm_dev;
+       struct msm_kms *kms;
+       int i;
 
        drm_dev = disp_state->drm_dev;
        priv = drm_dev->dev_private;
+       kms = priv->kms;
+
+       if (priv->dp)
+               msm_dp_snapshot(priv->dp);
+
+       for (i = 0; i < ARRAY_SIZE(priv->dsi); i++) {
+               if (!priv->dsi[i])
+                       continue;
+
+               msm_dsi_snapshot(priv->dsi[i]);
+       }
+
+       if (kms->funcs->snapshot)
+               kms->funcs->snapshot(kms);
 
        msm_disp_capture_atomic_state(disp_state);
 }