Skip to content

Commit 5366dca

Browse files
Andy Yanrkhuangtao
authored andcommitted
drm/rockchip: Add tracepoints
Enable: echo 1 > sys/kernel/tracing/tracing_on echo 1 > sys/kernel/tracing/events/rockchipdrm/enable echo 8192 > sys/kernel/tracing/buffer_size_kb cat /sys/kernel/tracing/trace Signed-off-by: Andy Yan <[email protected]> Change-Id: Ib3936d6093cb6dcb3a19ee5f74867be1f4befa94
1 parent 50fa63a commit 5366dca

File tree

3 files changed

+76
-6
lines changed

3 files changed

+76
-6
lines changed

drivers/gpu/drm/rockchip/rockchip_drm_drv.c

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@
4747

4848
#include "../drm_crtc_internal.h"
4949

50+
#define CREATE_TRACE_POINTS
51+
#include "rockchip_drm_trace.h"
52+
5053
#define DRIVER_NAME "rockchip"
5154
#define DRIVER_DESC "RockChip Soc DRM"
5255
#define DRIVER_DATE "20140818"
@@ -85,17 +88,23 @@ void rockchip_drm_dbg(const struct device *dev, enum rockchip_drm_debug_category
8588
struct va_format vaf;
8689
va_list args;
8790

88-
if (!rockchip_drm_debug_enabled(category))
89-
return;
90-
9191
va_start(args, format);
9292
vaf.fmt = format;
9393
vaf.va = &args;
9494

95-
if (dev)
96-
dev_printk(KERN_DEBUG, dev, "%pV", &vaf);
95+
if (rockchip_drm_debug_enabled(category)) {
96+
if (dev)
97+
dev_printk(KERN_DEBUG, dev, "%pV", &vaf);
98+
else
99+
printk(KERN_DEBUG "%pV", &vaf);
100+
}
101+
102+
if (category == VOP_DEBUG_VSYNC)
103+
trace_rockchip_drm_dbg_vsync(&vaf);
104+
else if (category == VOP_DEBUG_IOMMU_MAP)
105+
trace_rockchip_drm_dbg_iommu(&vaf);
97106
else
98-
printk(KERN_DEBUG "%pV", &vaf);
107+
trace_rockchip_drm_dbg_common(&vaf);
99108

100109
va_end(args);
101110
}

drivers/gpu/drm/rockchip/rockchip_drm_drv.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ enum rockchip_drm_debug_category {
7575
VOP_DEBUG_WB = BIT(2),
7676
VOP_DEBUG_CFG_DONE = BIT(3),
7777
VOP_DEBUG_CLK = BIT(4),
78+
VOP_DEBUG_IOMMU_MAP = BIT(5),
7879
VOP_DEBUG_VSYNC = BIT(7),
7980
VOP_DEBUG_PIXEL_SHIFT = BIT(8),
8081
};
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* SPDX-License-Identifier: GPL-2.0-only */
2+
/*
3+
* Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
4+
*
5+
*/
6+
7+
#undef TRACE_SYSTEM
8+
#define TRACE_SYSTEM rockchipdrm
9+
10+
#if !defined(_ROCKCHIP_DRM_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
11+
#define _ROCKCHIP_DRM_TRACE_H_
12+
13+
#include <linux/tracepoint.h>
14+
15+
#define ROCKCHIP_DRM_MAX_MSG_LEN 256
16+
17+
DECLARE_EVENT_CLASS(rockchipdrm_dbg,
18+
19+
TP_PROTO(struct va_format *vaf),
20+
21+
TP_ARGS(vaf),
22+
23+
TP_STRUCT__entry(
24+
__dynamic_array(char, msg, ROCKCHIP_DRM_MAX_MSG_LEN)
25+
),
26+
27+
TP_fast_assign(
28+
WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
29+
ROCKCHIP_DRM_MAX_MSG_LEN,
30+
vaf->fmt,
31+
*vaf->va) >= ROCKCHIP_DRM_MAX_MSG_LEN);
32+
),
33+
34+
TP_printk("%s", __get_str(msg))
35+
);
36+
37+
DEFINE_EVENT(rockchipdrm_dbg, rockchip_drm_dbg_common,
38+
TP_PROTO(struct va_format *vaf),
39+
TP_ARGS(vaf)
40+
);
41+
42+
DEFINE_EVENT(rockchipdrm_dbg, rockchip_drm_dbg_iommu,
43+
TP_PROTO(struct va_format *vaf),
44+
TP_ARGS(vaf)
45+
);
46+
47+
DEFINE_EVENT(rockchipdrm_dbg, rockchip_drm_dbg_vsync,
48+
TP_PROTO(struct va_format *vaf),
49+
TP_ARGS(vaf)
50+
);
51+
52+
#endif /* _ROCKCHIP_DRM_TRACE_H_ || TRACE_HEADER_MULTI_READ */
53+
54+
#undef TRACE_INCLUDE_PATH
55+
#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/rockchip
56+
#undef TRACE_INCLUDE_FILE
57+
#define TRACE_INCLUDE_FILE rockchip_drm_trace
58+
59+
/* This part must be outside protection */
60+
#include <trace/define_trace.h>

0 commit comments

Comments
 (0)