[PATCH RFC 1/7] drm/armada: add tracing support
Hi Russell
I need the below fixup to make this build for me:
diff --git a/drivers/gpu/drm/armada/Makefile b/drivers/gpu/drm/armada/Makefile
index a18f156c8b66..64c0b4546fb2 100644
--- a/drivers/gpu/drm/armada/Makefile
+++ b/drivers/gpu/drm/armada/Makefile
@@ -4,3 +4,5 @@ armada-y+= armada_510.o
armada-$(CONFIG_DEBUG_FS) += armada_debugfs.o
obj-$(CONFIG_DRM_ARMADA) := armada.o
+
+CFLAGS_armada_trace.o := -I$(src)
Otherwise it fails with
CC [M] drivers/gpu/drm/armada/armada_trace.o
In file included from drivers/gpu/drm/armada/armada_trace.h:66:0,
from drivers/gpu/drm/armada/armada_trace.c:3:
./include/trace/define_trace.h:88:43: fatal error: ./armada_trace.h:
No such file or directory
#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
^
I've disabeld armada for now in the drm-misc defconfigs we use to
build-test drm-misc patches (since I can't push stuff right now).
Cheers, Daniel
On Thu, Nov 17, 2016 at 1:09 AM, Russell King
wrote:
> Add tracing support to the Armada video overlay and interrupt code.
>
> Signed-off-by: Russell King
> ---
> drivers/gpu/drm/armada/Makefile | 2 +-
> drivers/gpu/drm/armada/armada_crtc.c| 3 ++
> drivers/gpu/drm/armada/armada_overlay.c | 7
> drivers/gpu/drm/armada/armada_trace.c | 4 ++
> drivers/gpu/drm/armada/armada_trace.h | 66
> +
> 5 files changed, 81 insertions(+), 1 deletion(-)
> create mode 100644 drivers/gpu/drm/armada/armada_trace.c
> create mode 100644 drivers/gpu/drm/armada/armada_trace.h
>
> diff --git a/drivers/gpu/drm/armada/Makefile b/drivers/gpu/drm/armada/Makefile
> index ffd673615772..a18f156c8b66 100644
> --- a/drivers/gpu/drm/armada/Makefile
> +++ b/drivers/gpu/drm/armada/Makefile
> @@ -1,5 +1,5 @@
> armada-y := armada_crtc.o armada_drv.o armada_fb.o armada_fbdev.o \
> - armada_gem.o armada_overlay.o
> + armada_gem.o armada_overlay.o armada_trace.o
> armada-y += armada_510.o
> armada-$(CONFIG_DEBUG_FS) += armada_debugfs.o
>
> diff --git a/drivers/gpu/drm/armada/armada_crtc.c
> b/drivers/gpu/drm/armada/armada_crtc.c
> index 2f58e9e2a59c..135ad844fbb8 100644
> --- a/drivers/gpu/drm/armada/armada_crtc.c
> +++ b/drivers/gpu/drm/armada/armada_crtc.c
> @@ -18,6 +18,7 @@
> #include "armada_fb.h"
> #include "armada_gem.h"
> #include "armada_hw.h"
> +#include "armada_trace.h"
>
> struct armada_frame_work {
> struct armada_plane_work work;
> @@ -464,6 +465,8 @@ static irqreturn_t armada_drm_irq(int irq, void *arg)
> */
> writel_relaxed(0, dcrtc->base + LCD_SPU_IRQ_ISR);
>
> + trace_armada_drm_irq(&dcrtc->crtc, stat);
> +
> /* Mask out those interrupts we haven't enabled */
> v = stat & dcrtc->irq_ena;
>
> diff --git a/drivers/gpu/drm/armada/armada_overlay.c
> b/drivers/gpu/drm/armada/armada_overlay.c
> index 1ee707ef6b8d..94af7c93276e 100644
> --- a/drivers/gpu/drm/armada/armada_overlay.c
> +++ b/drivers/gpu/drm/armada/armada_overlay.c
> @@ -15,6 +15,7 @@
> #include "armada_hw.h"
> #include
> #include "armada_ioctlP.h"
> +#include "armada_trace.h"
>
> struct armada_ovl_plane_properties {
> uint32_t colorkey_yr;
> @@ -87,6 +88,8 @@ static void armada_ovl_plane_work(struct armada_crtc *dcrtc,
> {
> struct armada_ovl_plane *dplane = container_of(plane, struct
> armada_ovl_plane, base);
>
> + trace_armada_ovl_plane_work(&dcrtc->crtc, &plane->base);
> +
> armada_drm_crtc_update_regs(dcrtc, dplane->vbl.regs);
> armada_ovl_retire_fb(dplane, NULL);
> }
> @@ -120,6 +123,10 @@ armada_ovl_plane_update(struct drm_plane *plane, struct
> drm_crtc *crtc,
> bool visible;
> int ret;
>
> + trace_armada_ovl_plane_update(plane, crtc, fb,
> +crtc_x, crtc_y, crtc_w, crtc_h,
> +src_x, src_y, src_w, src_h);
> +
> ret = drm_plane_helper_check_update(plane, crtc, fb, &src, &dest,
> &clip,
> BIT(DRM_ROTATE_0),
> 0, INT_MAX, true, false,
> &visible);
> diff --git a/drivers/gpu/drm/armada/armada_trace.c
> b/drivers/gpu/drm/armada/armada_trace.c
> new file mode 100644
> index ..068b336ba75f
> --- /dev/null
> +++ b/drivers/gpu/drm/armada/armada_trace.c
> @@ -0,0 +1,4 @@
> +#ifndef __CHECKER__
> +#define CREATE_TRACE_POINTS
> +#include "armada_trace.h"
> +#endif
> diff --git a/drivers/gpu/drm/armada/armada_trace.h
> b/drivers/gpu/drm/armada/armada_trace.h
> new file mode 100644
> index ..dc0cba70fd1a
> --- /dev/null
> +++ b/drivers/gpu/drm/armada/armada_trace.h
> @@ -0,0 +1,66 @@
> +#if !defined(ARMADA_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define ARMADA_TRACE_H
> +
> +#include
> +#include
> +
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM armada
> +#define TRACE_INCLUDE_FILE armada_trace
> +
> +
[PATCH RFC 1/7] drm/armada: add tracing support
Add tracing support to the Armada video overlay and interrupt code.
Signed-off-by: Russell King
---
drivers/gpu/drm/armada/Makefile | 2 +-
drivers/gpu/drm/armada/armada_crtc.c| 3 ++
drivers/gpu/drm/armada/armada_overlay.c | 7
drivers/gpu/drm/armada/armada_trace.c | 4 ++
drivers/gpu/drm/armada/armada_trace.h | 66 +
5 files changed, 81 insertions(+), 1 deletion(-)
create mode 100644 drivers/gpu/drm/armada/armada_trace.c
create mode 100644 drivers/gpu/drm/armada/armada_trace.h
diff --git a/drivers/gpu/drm/armada/Makefile b/drivers/gpu/drm/armada/Makefile
index ffd673615772..a18f156c8b66 100644
--- a/drivers/gpu/drm/armada/Makefile
+++ b/drivers/gpu/drm/armada/Makefile
@@ -1,5 +1,5 @@
armada-y := armada_crtc.o armada_drv.o armada_fb.o armada_fbdev.o \
- armada_gem.o armada_overlay.o
+ armada_gem.o armada_overlay.o armada_trace.o
armada-y += armada_510.o
armada-$(CONFIG_DEBUG_FS) += armada_debugfs.o
diff --git a/drivers/gpu/drm/armada/armada_crtc.c
b/drivers/gpu/drm/armada/armada_crtc.c
index 2f58e9e2a59c..135ad844fbb8 100644
--- a/drivers/gpu/drm/armada/armada_crtc.c
+++ b/drivers/gpu/drm/armada/armada_crtc.c
@@ -18,6 +18,7 @@
#include "armada_fb.h"
#include "armada_gem.h"
#include "armada_hw.h"
+#include "armada_trace.h"
struct armada_frame_work {
struct armada_plane_work work;
@@ -464,6 +465,8 @@ static irqreturn_t armada_drm_irq(int irq, void *arg)
*/
writel_relaxed(0, dcrtc->base + LCD_SPU_IRQ_ISR);
+ trace_armada_drm_irq(&dcrtc->crtc, stat);
+
/* Mask out those interrupts we haven't enabled */
v = stat & dcrtc->irq_ena;
diff --git a/drivers/gpu/drm/armada/armada_overlay.c
b/drivers/gpu/drm/armada/armada_overlay.c
index 1ee707ef6b8d..94af7c93276e 100644
--- a/drivers/gpu/drm/armada/armada_overlay.c
+++ b/drivers/gpu/drm/armada/armada_overlay.c
@@ -15,6 +15,7 @@
#include "armada_hw.h"
#include
#include "armada_ioctlP.h"
+#include "armada_trace.h"
struct armada_ovl_plane_properties {
uint32_t colorkey_yr;
@@ -87,6 +88,8 @@ static void armada_ovl_plane_work(struct armada_crtc *dcrtc,
{
struct armada_ovl_plane *dplane = container_of(plane, struct
armada_ovl_plane, base);
+ trace_armada_ovl_plane_work(&dcrtc->crtc, &plane->base);
+
armada_drm_crtc_update_regs(dcrtc, dplane->vbl.regs);
armada_ovl_retire_fb(dplane, NULL);
}
@@ -120,6 +123,10 @@ armada_ovl_plane_update(struct drm_plane *plane, struct
drm_crtc *crtc,
bool visible;
int ret;
+ trace_armada_ovl_plane_update(plane, crtc, fb,
+crtc_x, crtc_y, crtc_w, crtc_h,
+src_x, src_y, src_w, src_h);
+
ret = drm_plane_helper_check_update(plane, crtc, fb, &src, &dest, &clip,
BIT(DRM_ROTATE_0),
0, INT_MAX, true, false, &visible);
diff --git a/drivers/gpu/drm/armada/armada_trace.c
b/drivers/gpu/drm/armada/armada_trace.c
new file mode 100644
index ..068b336ba75f
--- /dev/null
+++ b/drivers/gpu/drm/armada/armada_trace.c
@@ -0,0 +1,4 @@
+#ifndef __CHECKER__
+#define CREATE_TRACE_POINTS
+#include "armada_trace.h"
+#endif
diff --git a/drivers/gpu/drm/armada/armada_trace.h
b/drivers/gpu/drm/armada/armada_trace.h
new file mode 100644
index ..dc0cba70fd1a
--- /dev/null
+++ b/drivers/gpu/drm/armada/armada_trace.h
@@ -0,0 +1,66 @@
+#if !defined(ARMADA_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define ARMADA_TRACE_H
+
+#include
+#include
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM armada
+#define TRACE_INCLUDE_FILE armada_trace
+
+TRACE_EVENT(armada_drm_irq,
+ TP_PROTO(struct drm_crtc *crtc, u32 stat),
+ TP_ARGS(crtc, stat),
+ TP_STRUCT__entry(
+ __field(struct drm_crtc *, crtc)
+ __field(u32, stat)
+ ),
+ TP_fast_assign(
+ __entry->crtc = crtc;
+ __entry->stat = stat;
+ ),
+ TP_printk("crtc %p stat 0x%08x",
+ __entry->crtc, __entry->stat)
+);
+
+TRACE_EVENT(armada_ovl_plane_update,
+ TP_PROTO(struct drm_plane *plane, struct drm_crtc *crtc,
+struct drm_framebuffer *fb,
+int crtc_x, int crtc_y, unsigned crtc_w, unsigned crtc_h,
+uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t
src_h),
+ TP_ARGS(plane, crtc, fb, crtc_x, crtc_y, crtc_w, crtc_h, src_x, src_y,
src_w, src_h),
+ TP_STRUCT__entry(
+ __field(struct drm_plane *, plane)
+ __field(struct drm_crtc *, crtc)
+ __field(struct drm_framebuffer *, fb)
+ ),
+ TP_fast_assign(
+ __entry->plane = plane;
+ __entry->crtc = crtc;
+ __entry->fb = fb;
+ ),
+ TP_printk("plane %p crtc %p fb %p",
+
