mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
drm/tegra: dc: Trace register accesses
Add tracepoint events for display controller register accesses. Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
5c5f13016d
commit
67e04d1ab1
4 changed files with 51 additions and 1 deletions
|
@ -17,4 +17,6 @@ tegra-drm-y := \
|
||||||
falcon.o \
|
falcon.o \
|
||||||
vic.o
|
vic.o
|
||||||
|
|
||||||
|
tegra-drm-y += trace.o
|
||||||
|
|
||||||
obj-$(CONFIG_DRM_TEGRA) += tegra-drm.o
|
obj-$(CONFIG_DRM_TEGRA) += tegra-drm.o
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include <drm/drm_fixed.h>
|
#include <drm/drm_fixed.h>
|
||||||
|
|
||||||
#include "gem.h"
|
#include "gem.h"
|
||||||
|
#include "trace.h"
|
||||||
|
|
||||||
struct reset_control;
|
struct reset_control;
|
||||||
|
|
||||||
|
@ -174,12 +175,17 @@ static inline struct tegra_dc *to_tegra_dc(struct drm_crtc *crtc)
|
||||||
static inline void tegra_dc_writel(struct tegra_dc *dc, u32 value,
|
static inline void tegra_dc_writel(struct tegra_dc *dc, u32 value,
|
||||||
unsigned int offset)
|
unsigned int offset)
|
||||||
{
|
{
|
||||||
|
trace_dc_writel(dc->dev, offset, value);
|
||||||
writel(value, dc->regs + (offset << 2));
|
writel(value, dc->regs + (offset << 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32 tegra_dc_readl(struct tegra_dc *dc, unsigned int offset)
|
static inline u32 tegra_dc_readl(struct tegra_dc *dc, unsigned int offset)
|
||||||
{
|
{
|
||||||
return readl(dc->regs + (offset << 2));
|
u32 value = readl(dc->regs + (offset << 2));
|
||||||
|
|
||||||
|
trace_dc_readl(dc->dev, offset, value);
|
||||||
|
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tegra_dc_window {
|
struct tegra_dc_window {
|
||||||
|
|
2
drivers/gpu/drm/tegra/trace.c
Normal file
2
drivers/gpu/drm/tegra/trace.c
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#define CREATE_TRACE_POINTS
|
||||||
|
#include "trace.h"
|
40
drivers/gpu/drm/tegra/trace.h
Normal file
40
drivers/gpu/drm/tegra/trace.h
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#undef TRACE_SYSTEM
|
||||||
|
#define TRACE_SYSTEM tegra
|
||||||
|
|
||||||
|
#if !defined(DRM_TEGRA_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||||
|
#define DRM_TEGRA_TRACE_H 1
|
||||||
|
|
||||||
|
#include <linux/device.h>
|
||||||
|
#include <linux/tracepoint.h>
|
||||||
|
|
||||||
|
DECLARE_EVENT_CLASS(register_access,
|
||||||
|
TP_PROTO(struct device *dev, unsigned int offset, u32 value),
|
||||||
|
TP_ARGS(dev, offset, value),
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__field(struct device *, dev)
|
||||||
|
__field(unsigned int, offset)
|
||||||
|
__field(u32, value)
|
||||||
|
),
|
||||||
|
TP_fast_assign(
|
||||||
|
__entry->dev = dev;
|
||||||
|
__entry->offset = offset;
|
||||||
|
__entry->value = value;
|
||||||
|
),
|
||||||
|
TP_printk("%s %04x %08x", dev_name(__entry->dev), __entry->offset,
|
||||||
|
__entry->value)
|
||||||
|
);
|
||||||
|
|
||||||
|
DEFINE_EVENT(register_access, dc_writel,
|
||||||
|
TP_PROTO(struct device *dev, unsigned int offset, u32 value),
|
||||||
|
TP_ARGS(dev, offset, value));
|
||||||
|
DEFINE_EVENT(register_access, dc_readl,
|
||||||
|
TP_PROTO(struct device *dev, unsigned int offset, u32 value),
|
||||||
|
TP_ARGS(dev, offset, value));
|
||||||
|
|
||||||
|
#endif /* DRM_TEGRA_TRACE_H */
|
||||||
|
|
||||||
|
/* This part must be outside protection */
|
||||||
|
#undef TRACE_INCLUDE_PATH
|
||||||
|
#define TRACE_INCLUDE_PATH .
|
||||||
|
#define TRACE_INCLUDE_FILE trace
|
||||||
|
#include <trace/define_trace.h>
|
Loading…
Reference in a new issue