diff options
author | Ken Huang <kenbshuang@google.com> | 2022-12-08 00:38:47 +0800 |
---|---|---|
committer | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-12-22 01:15:38 +0000 |
commit | 51c80e5a59f73fb5d608ba9e4588a7093779442c (patch) | |
tree | bf626cc52e8238dca577be96af97e84ce7729fa5 | |
parent | 190bd94c1f25067b73ead73b017b22c3e4161dad (diff) | |
download | display-51c80e5a59f73fb5d608ba9e4588a7093779442c.tar.gz |
drm: samsung: add more dpu event log
Add event log for itmon, sysmmu fault, and dpp protection.
Bug: 260514681
Test: dump event log
Change-Id: I2b989e340a561c1fe8f7858ecb7be8d03a7ad056
Signed-off-by: Ken Huang <kenbshuang@google.com>
-rw-r--r-- | samsung/exynos_drm_debug.c | 9 | ||||
-rw-r--r-- | samsung/exynos_drm_decon.c | 1 | ||||
-rw-r--r-- | samsung/exynos_drm_decon.h | 3 |
3 files changed, 11 insertions, 2 deletions
diff --git a/samsung/exynos_drm_debug.c b/samsung/exynos_drm_debug.c index 0c51934..6d09122 100644 --- a/samsung/exynos_drm_debug.c +++ b/samsung/exynos_drm_debug.c @@ -237,6 +237,7 @@ void DPU_EVENT_LOG(enum dpu_event_type type, int index, void *priv) dpp = (struct dpp_device *)priv; log->data.win.win_idx = dpp->win_id; log->data.win.plane_idx = dpp->id; + log->data.win.secure = dpp->protection; break; case DPU_EVT_REQ_CRTC_INFO_OLD: case DPU_EVT_REQ_CRTC_INFO_NEW: @@ -577,6 +578,8 @@ static const char *get_event_name(enum dpu_event_type type) "DIMMING_START", "DIMMING_END", "CGC_FRAMEDONE", + "ITMON_ERROR", + "SYSMMU_FAULT", }; if (type >= DPU_EVT_MAX) @@ -826,9 +829,10 @@ static void dpu_event_log_print(const struct decon_device *decon, struct drm_pri case DPU_EVT_PLANE_UPDATE: case DPU_EVT_PLANE_DISABLE: scnprintf(buf + len, sizeof(buf) - len, - "\tCH:%d, WIN:%d", + "\tCH:%d, WIN:%d, %s", log->data.win.plane_idx, - log->data.win.win_idx); + log->data.win.win_idx, + log->data.win.secure ? "SECURE" : ""); break; case DPU_EVT_REQ_CRTC_INFO_OLD: case DPU_EVT_REQ_CRTC_INFO_NEW: @@ -1935,6 +1939,7 @@ int dpu_itmon_notifier(struct notifier_block *nb, unsigned long act, void *data) /* port is master and dest is target */ if (dpu_itmon_check(decon, itmon_data->port, "itmon,port") || dpu_itmon_check(decon, itmon_data->dest, "itmon,dest")) { + DPU_EVENT_LOG(DPU_EVT_ITMON_ERROR, decon->id, NULL); pr_info("%s: port: %s, dest: %s\n", __func__, itmon_data->port, itmon_data->dest); diff --git a/samsung/exynos_drm_decon.c b/samsung/exynos_drm_decon.c index 48cc79a..badcb8a 100644 --- a/samsung/exynos_drm_decon.c +++ b/samsung/exynos_drm_decon.c @@ -1474,6 +1474,7 @@ static int dpu_sysmmu_fault_handler(struct iommu_fault *fault, void *data) if (!decon) return 0; + DPU_EVENT_LOG(DPU_EVT_SYSMMU_FAULT, decon->id, NULL); decon_warn(decon, "%s +\n", __func__); decon_dump_all(decon, DPU_EVT_CONDITION_DEFAULT, false); diff --git a/samsung/exynos_drm_decon.h b/samsung/exynos_drm_decon.h index 779ea4b..5f1f37b 100644 --- a/samsung/exynos_drm_decon.h +++ b/samsung/exynos_drm_decon.h @@ -269,6 +269,8 @@ enum dpu_event_type { DPU_EVT_DIMMING_END, DPU_EVT_CGC_FRAMEDONE, + DPU_EVT_ITMON_ERROR, + DPU_EVT_SYSMMU_FAULT, DPU_EVT_MAX, /* End of EVENT */ }; @@ -300,6 +302,7 @@ struct dpu_log_dpp { struct dpu_log_win { u32 win_idx; u32 plane_idx; + bool secure; }; struct dpu_log_rsc_occupancy { |