summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhinav Kumar <abhinavk@codeaurora.org>2021-04-16 23:57:24 +0300
committerRob Clark <robdclark@chromium.org>2021-06-23 17:32:13 +0300
commitd87fe031bf3aac81d583f1ac57888691cc154dc5 (patch)
tree433141bca9cf418fb05c374638765a60af7ab1bf
parenta698b5cdfe63663dc6d5cb4c19109cd9757f8daf (diff)
downloadlinux-d87fe031bf3aac81d583f1ac57888691cc154dc5.tar.xz
drm/msm: add support to take dsi, dp and dpu snapshot
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>
-rw-r--r--drivers/gpu/drm/msm/disp/msm_disp_snapshot.h1
-rw-r--r--drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c16
2 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/disp/msm_disp_snapshot.h b/drivers/gpu/drm/msm/disp/msm_disp_snapshot.h
index 11dfa5753161..7e075e799f0a 100644
--- a/drivers/gpu/drm/msm/disp/msm_disp_snapshot.h
+++ b/drivers/gpu/drm/msm/disp/msm_disp_snapshot.h
@@ -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
diff --git a/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c b/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c
index 024ca49cb2e8..44dc68295ddb 100644
--- a/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c
+++ b/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c
@@ -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);
}