diff mbox

[RFC,1/7] drm/armada: add tracing support

Message ID CAKMK7uGi6jUjRYg+g0+pZA45w6VsJhMGYtTjZhy-hxh8aJ3_MA@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Dec. 6, 2016, 12:22 p.m. UTC
Hi Russell

I need the below fixup to make this build for me:


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
<rmk+kernel@armlinux.org.uk> wrote:
> Add tracing support to the Armada video overlay and interrupt code.
>
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
> ---
>  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 <drm/armada_drm.h>
>  #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 000000000000..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 000000000000..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 <linux/tracepoint.h>
> +#include <drm/drmP.h>
> +
> +#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",
> +               __entry->plane, __entry->crtc, __entry->fb)
> +);
> +
> +TRACE_EVENT(armada_ovl_plane_work,
> +       TP_PROTO(struct drm_crtc *crtc, struct drm_plane *plane),
> +       TP_ARGS(crtc, plane),
> +       TP_STRUCT__entry(
> +               __field(struct drm_plane *, plane)
> +               __field(struct drm_crtc *, crtc)
> +       ),
> +       TP_fast_assign(
> +               __entry->plane = plane;
> +               __entry->crtc = crtc;
> +       ),
> +       TP_printk("plane %p crtc %p",
> +               __entry->plane, __entry->crtc)
> +);
> +
> +#endif
> +
> +/* This part must be outside protection */
> +#undef TRACE_INCLUDE_PATH
> +#define TRACE_INCLUDE_PATH .
> +#include <trace/define_trace.h>
> --
> 2.7.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

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)