* [PATCH 01/10] drm/tegra: dc: Use unsigned int for register offsets
@ 2017-08-15 13:41 Thierry Reding
2017-08-15 13:41 ` [PATCH 02/10] drm/tegra: dpaux: " Thierry Reding
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding; +Cc: linux-tegra, dri-devel, Mikko Perttunen
From: Thierry Reding <treding@nvidia.com>
Register offsets are usually fairly small numbers, so an unsigned int is
more than enough to represent them.
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
drivers/gpu/drm/tegra/dc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/tegra/dc.h b/drivers/gpu/drm/tegra/dc.h
index 3b42754c5b7a..63461eb769f0 100644
--- a/drivers/gpu/drm/tegra/dc.h
+++ b/drivers/gpu/drm/tegra/dc.h
@@ -70,12 +70,12 @@ static inline struct tegra_dc *to_tegra_dc(struct drm_crtc *crtc)
}
static inline void tegra_dc_writel(struct tegra_dc *dc, u32 value,
- unsigned long offset)
+ unsigned int offset)
{
writel(value, dc->regs + (offset << 2));
}
-static inline u32 tegra_dc_readl(struct tegra_dc *dc, unsigned long offset)
+static inline u32 tegra_dc_readl(struct tegra_dc *dc, unsigned int offset)
{
return readl(dc->regs + (offset << 2));
}
--
2.13.3
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 02/10] drm/tegra: dpaux: Use unsigned int for register offsets
2017-08-15 13:41 [PATCH 01/10] drm/tegra: dc: Use unsigned int for register offsets Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
2017-08-15 13:41 ` [PATCH 03/10] drm/tegra: dsi: " Thierry Reding
` (2 subsequent siblings)
3 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding; +Cc: linux-tegra, dri-devel, Mikko Perttunen
From: Thierry Reding <treding@nvidia.com>
Register offsets are usually fairly small numbers, so an unsigned int is
more than enough to represent them.
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
drivers/gpu/drm/tegra/dpaux.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/tegra/dpaux.c b/drivers/gpu/drm/tegra/dpaux.c
index 9d4629021fb2..793cb4ad99c4 100644
--- a/drivers/gpu/drm/tegra/dpaux.c
+++ b/drivers/gpu/drm/tegra/dpaux.c
@@ -65,13 +65,13 @@ static inline struct tegra_dpaux *work_to_dpaux(struct work_struct *work)
}
static inline u32 tegra_dpaux_readl(struct tegra_dpaux *dpaux,
- unsigned long offset)
+ unsigned int offset)
{
return readl(dpaux->regs + (offset << 2));
}
static inline void tegra_dpaux_writel(struct tegra_dpaux *dpaux,
- u32 value, unsigned long offset)
+ u32 value, unsigned int offset)
{
writel(value, dpaux->regs + (offset << 2));
}
--
2.13.3
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 03/10] drm/tegra: dsi: Use unsigned int for register offsets
2017-08-15 13:41 [PATCH 01/10] drm/tegra: dc: Use unsigned int for register offsets Thierry Reding
2017-08-15 13:41 ` [PATCH 02/10] drm/tegra: dpaux: " Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
2017-08-15 13:41 ` [PATCH 04/10] drm/tegra: hdmi: " Thierry Reding
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
3 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding; +Cc: linux-tegra, dri-devel, Mikko Perttunen
From: Thierry Reding <treding@nvidia.com>
Register offsets are usually fairly small numbers, so an unsigned int is
more than enough to represent them.
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
drivers/gpu/drm/tegra/dsi.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index e4b5aedfdbd4..37a921cb676c 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -105,15 +105,15 @@ static struct tegra_dsi_state *tegra_dsi_get_state(struct tegra_dsi *dsi)
return to_dsi_state(dsi->output.connector.state);
}
-static inline u32 tegra_dsi_readl(struct tegra_dsi *dsi, unsigned long reg)
+static inline u32 tegra_dsi_readl(struct tegra_dsi *dsi, unsigned int offset)
{
- return readl(dsi->regs + (reg << 2));
+ return readl(dsi->regs + (offset << 2));
}
static inline void tegra_dsi_writel(struct tegra_dsi *dsi, u32 value,
- unsigned long reg)
+ unsigned int offset)
{
- writel(value, dsi->regs + (reg << 2));
+ writel(value, dsi->regs + (offset << 2));
}
static int tegra_dsi_show_regs(struct seq_file *s, void *data)
--
2.13.3
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 04/10] drm/tegra: hdmi: Use unsigned int for register offsets
2017-08-15 13:41 [PATCH 01/10] drm/tegra: dc: Use unsigned int for register offsets Thierry Reding
2017-08-15 13:41 ` [PATCH 02/10] drm/tegra: dpaux: " Thierry Reding
2017-08-15 13:41 ` [PATCH 03/10] drm/tegra: dsi: " Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
3 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding; +Cc: linux-tegra, dri-devel, Mikko Perttunen
From: Thierry Reding <treding@nvidia.com>
Register offsets are usually fairly small numbers, so an unsigned int is
more than enough to represent them.
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
drivers/gpu/drm/tegra/hdmi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index a621b0da4092..aa7525619f3e 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -100,13 +100,13 @@ enum {
};
static inline u32 tegra_hdmi_readl(struct tegra_hdmi *hdmi,
- unsigned long offset)
+ unsigned int offset)
{
return readl(hdmi->regs + (offset << 2));
}
static inline void tegra_hdmi_writel(struct tegra_hdmi *hdmi, u32 value,
- unsigned long offset)
+ unsigned int offset)
{
writel(value, hdmi->regs + (offset << 2));
}
--
2.13.3
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 05/10] drm/tegra: sor: Use unsigned int for register offsets
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-08-15 13:41 ` Thierry Reding
2017-08-15 13:41 ` [PATCH 06/10] drm/tegra: dc: Trace register accesses Thierry Reding
` (4 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding
Cc: Mikko Perttunen, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-tegra-u79uwXL29TY76Z2rM5mHXA
From: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Register offsets are usually fairly small numbers, so an unsigned int is
more than enough to represent them.
Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
drivers/gpu/drm/tegra/sor.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 0ac845291cb4..020792eb2724 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -235,13 +235,13 @@ static inline struct tegra_sor *to_sor(struct tegra_output *output)
return container_of(output, struct tegra_sor, output);
}
-static inline u32 tegra_sor_readl(struct tegra_sor *sor, unsigned long offset)
+static inline u32 tegra_sor_readl(struct tegra_sor *sor, unsigned int offset)
{
return readl(sor->regs + (offset << 2));
}
static inline void tegra_sor_writel(struct tegra_sor *sor, u32 value,
- unsigned long offset)
+ unsigned int offset)
{
writel(value, sor->regs + (offset << 2));
}
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 06/10] drm/tegra: dc: Trace register accesses
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-08-15 13:41 ` [PATCH 05/10] drm/tegra: sor: " Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
[not found] ` <20170815134114.17547-6-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-08-15 13:41 ` [PATCH 07/10] drm/tegra: hdmi: Trace register accesses Thierry Reding
` (3 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding
Cc: Mikko Perttunen, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-tegra-u79uwXL29TY76Z2rM5mHXA
From: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Add tracepoint events for display controller register accesses.
Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
drivers/gpu/drm/tegra/Makefile | 2 ++
drivers/gpu/drm/tegra/dc.h | 8 +++++++-
drivers/gpu/drm/tegra/trace.c | 2 ++
drivers/gpu/drm/tegra/trace.h | 40 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 51 insertions(+), 1 deletion(-)
create mode 100644 drivers/gpu/drm/tegra/trace.c
create mode 100644 drivers/gpu/drm/tegra/trace.h
diff --git a/drivers/gpu/drm/tegra/Makefile b/drivers/gpu/drm/tegra/Makefile
index d472006159b7..258c3fde3ea4 100644
--- a/drivers/gpu/drm/tegra/Makefile
+++ b/drivers/gpu/drm/tegra/Makefile
@@ -24,4 +24,6 @@ tegra-drm-$(CONFIG_ARCH_TEGRA_186_SOC) += \
parker/dsi.o \
parker/sor.o
+tegra-drm-y += trace.o
+
obj-$(CONFIG_DRM_TEGRA) += tegra-drm.o
diff --git a/drivers/gpu/drm/tegra/dc.h b/drivers/gpu/drm/tegra/dc.h
index 63461eb769f0..ed61e35971f8 100644
--- a/drivers/gpu/drm/tegra/dc.h
+++ b/drivers/gpu/drm/tegra/dc.h
@@ -15,6 +15,7 @@
#include <drm/drm_crtc.h>
#include "drm.h"
+#include "trace.h"
struct tegra_dc_soc_info;
struct tegra_output;
@@ -72,12 +73,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,
unsigned int offset)
{
+ trace_dc_writel(dc->dev, offset, value);
writel(value, dc->regs + (offset << 2));
}
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 {
diff --git a/drivers/gpu/drm/tegra/trace.c b/drivers/gpu/drm/tegra/trace.c
new file mode 100644
index 000000000000..006f65c72a34
--- /dev/null
+++ b/drivers/gpu/drm/tegra/trace.c
@@ -0,0 +1,2 @@
+#define CREATE_TRACE_POINTS
+#include "trace.h"
diff --git a/drivers/gpu/drm/tegra/trace.h b/drivers/gpu/drm/tegra/trace.h
new file mode 100644
index 000000000000..b32d90c967e8
--- /dev/null
+++ b/drivers/gpu/drm/tegra/trace.h
@@ -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>
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 07/10] drm/tegra: hdmi: Trace register accesses
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-08-15 13:41 ` [PATCH 05/10] drm/tegra: sor: " Thierry Reding
2017-08-15 13:41 ` [PATCH 06/10] drm/tegra: dc: Trace register accesses Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
2017-08-15 13:41 ` [PATCH 08/10] drm/tegra: dsi: " Thierry Reding
` (2 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding
Cc: Mikko Perttunen, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-tegra-u79uwXL29TY76Z2rM5mHXA
From: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Add tracepoint events for HDMI controller register accesses.
Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
drivers/gpu/drm/tegra/hdmi.c | 8 +++++++-
drivers/gpu/drm/tegra/trace.h | 7 +++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
index aa7525619f3e..5b9d83b71943 100644
--- a/drivers/gpu/drm/tegra/hdmi.c
+++ b/drivers/gpu/drm/tegra/hdmi.c
@@ -24,6 +24,7 @@
#include "hdmi.h"
#include "drm.h"
#include "dc.h"
+#include "trace.h"
#define HDMI_ELD_BUFFER_SIZE 96
@@ -102,12 +103,17 @@ enum {
static inline u32 tegra_hdmi_readl(struct tegra_hdmi *hdmi,
unsigned int offset)
{
- return readl(hdmi->regs + (offset << 2));
+ u32 value = readl(hdmi->regs + (offset << 2));
+
+ trace_hdmi_readl(hdmi->dev, offset, value);
+
+ return value;
}
static inline void tegra_hdmi_writel(struct tegra_hdmi *hdmi, u32 value,
unsigned int offset)
{
+ trace_hdmi_writel(hdmi->dev, offset, value);
writel(value, hdmi->regs + (offset << 2));
}
diff --git a/drivers/gpu/drm/tegra/trace.h b/drivers/gpu/drm/tegra/trace.h
index b32d90c967e8..e5c2e431c101 100644
--- a/drivers/gpu/drm/tegra/trace.h
+++ b/drivers/gpu/drm/tegra/trace.h
@@ -31,6 +31,13 @@ DEFINE_EVENT(register_access, dc_readl,
TP_PROTO(struct device *dev, unsigned int offset, u32 value),
TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, hdmi_writel,
+ TP_PROTO(struct device *dev, unsigned int offset, u32 value),
+ TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, hdmi_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 */
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 08/10] drm/tegra: dsi: Trace register accesses
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
` (2 preceding siblings ...)
2017-08-15 13:41 ` [PATCH 07/10] drm/tegra: hdmi: Trace register accesses Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
2017-08-15 13:41 ` [PATCH 09/10] drm/tegra: dpaux: " Thierry Reding
2017-08-15 13:41 ` [PATCH 10/10] drm/tegra: sor: " Thierry Reding
5 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding
Cc: Mikko Perttunen, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-tegra-u79uwXL29TY76Z2rM5mHXA
From: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Add tracepoint events for DSI controller register accesses.
Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
drivers/gpu/drm/tegra/dsi.c | 8 +++++++-
drivers/gpu/drm/tegra/trace.h | 7 +++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 37a921cb676c..046649ec9441 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -28,6 +28,7 @@
#include "drm.h"
#include "dsi.h"
#include "mipi-phy.h"
+#include "trace.h"
struct tegra_dsi_state {
struct drm_connector_state base;
@@ -107,12 +108,17 @@ static struct tegra_dsi_state *tegra_dsi_get_state(struct tegra_dsi *dsi)
static inline u32 tegra_dsi_readl(struct tegra_dsi *dsi, unsigned int offset)
{
- return readl(dsi->regs + (offset << 2));
+ u32 value = readl(dsi->regs + (offset << 2));
+
+ trace_dsi_readl(dsi->dev, offset, value);
+
+ return value;
}
static inline void tegra_dsi_writel(struct tegra_dsi *dsi, u32 value,
unsigned int offset)
{
+ trace_dsi_writel(dsi->dev, offset, value);
writel(value, dsi->regs + (offset << 2));
}
diff --git a/drivers/gpu/drm/tegra/trace.h b/drivers/gpu/drm/tegra/trace.h
index e5c2e431c101..dd0176ff81eb 100644
--- a/drivers/gpu/drm/tegra/trace.h
+++ b/drivers/gpu/drm/tegra/trace.h
@@ -38,6 +38,13 @@ DEFINE_EVENT(register_access, hdmi_readl,
TP_PROTO(struct device *dev, unsigned int offset, u32 value),
TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, dsi_writel,
+ TP_PROTO(struct device *dev, unsigned int offset, u32 value),
+ TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, dsi_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 */
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 09/10] drm/tegra: dpaux: Trace register accesses
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
` (3 preceding siblings ...)
2017-08-15 13:41 ` [PATCH 08/10] drm/tegra: dsi: " Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
2017-08-15 13:41 ` [PATCH 10/10] drm/tegra: sor: " Thierry Reding
5 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding
Cc: Mikko Perttunen, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-tegra-u79uwXL29TY76Z2rM5mHXA
From: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Add tracepoint events for DPAUX controller register accesses.
Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
drivers/gpu/drm/tegra/dpaux.c | 8 +++++++-
drivers/gpu/drm/tegra/trace.h | 7 +++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/dpaux.c b/drivers/gpu/drm/tegra/dpaux.c
index 793cb4ad99c4..d476ab5006bb 100644
--- a/drivers/gpu/drm/tegra/dpaux.c
+++ b/drivers/gpu/drm/tegra/dpaux.c
@@ -25,6 +25,7 @@
#include "dpaux.h"
#include "drm.h"
+#include "trace.h"
static DEFINE_MUTEX(dpaux_lock);
static LIST_HEAD(dpaux_list);
@@ -67,12 +68,17 @@ static inline struct tegra_dpaux *work_to_dpaux(struct work_struct *work)
static inline u32 tegra_dpaux_readl(struct tegra_dpaux *dpaux,
unsigned int offset)
{
- return readl(dpaux->regs + (offset << 2));
+ u32 value = readl(dpaux->regs + (offset << 2));
+
+ trace_dpaux_readl(dpaux->dev, offset, value);
+
+ return value;
}
static inline void tegra_dpaux_writel(struct tegra_dpaux *dpaux,
u32 value, unsigned int offset)
{
+ trace_dpaux_writel(dpaux->dev, offset, value);
writel(value, dpaux->regs + (offset << 2));
}
diff --git a/drivers/gpu/drm/tegra/trace.h b/drivers/gpu/drm/tegra/trace.h
index dd0176ff81eb..e497a0258ee4 100644
--- a/drivers/gpu/drm/tegra/trace.h
+++ b/drivers/gpu/drm/tegra/trace.h
@@ -45,6 +45,13 @@ DEFINE_EVENT(register_access, dsi_readl,
TP_PROTO(struct device *dev, unsigned int offset, u32 value),
TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, dpaux_writel,
+ TP_PROTO(struct device *dev, unsigned int offset, u32 value),
+ TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, dpaux_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 */
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 10/10] drm/tegra: sor: Trace register accesses
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
` (4 preceding siblings ...)
2017-08-15 13:41 ` [PATCH 09/10] drm/tegra: dpaux: " Thierry Reding
@ 2017-08-15 13:41 ` Thierry Reding
5 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-15 13:41 UTC (permalink / raw
To: Thierry Reding
Cc: Mikko Perttunen, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
linux-tegra-u79uwXL29TY76Z2rM5mHXA
From: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Add tracepoint events for SOR controller register accesses.
Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
drivers/gpu/drm/tegra/sor.c | 8 +++++++-
drivers/gpu/drm/tegra/trace.h | 7 +++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 020792eb2724..04b3a50deab6 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -27,6 +27,7 @@
#include "dc.h"
#include "drm.h"
#include "sor.h"
+#include "trace.h"
#define SOR_REKEY 0x38
@@ -237,12 +238,17 @@ static inline struct tegra_sor *to_sor(struct tegra_output *output)
static inline u32 tegra_sor_readl(struct tegra_sor *sor, unsigned int offset)
{
- return readl(sor->regs + (offset << 2));
+ u32 value = readl(sor->regs + (offset << 2));
+
+ trace_sor_readl(sor->dev, offset, value);
+
+ return value;
}
static inline void tegra_sor_writel(struct tegra_sor *sor, u32 value,
unsigned int offset)
{
+ trace_sor_writel(sor->dev, offset, value);
writel(value, sor->regs + (offset << 2));
}
diff --git a/drivers/gpu/drm/tegra/trace.h b/drivers/gpu/drm/tegra/trace.h
index e497a0258ee4..e9b7cdad5c4c 100644
--- a/drivers/gpu/drm/tegra/trace.h
+++ b/drivers/gpu/drm/tegra/trace.h
@@ -52,6 +52,13 @@ DEFINE_EVENT(register_access, dpaux_readl,
TP_PROTO(struct device *dev, unsigned int offset, u32 value),
TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, sor_writel,
+ TP_PROTO(struct device *dev, unsigned int offset, u32 value),
+ TP_ARGS(dev, offset, value));
+DEFINE_EVENT(register_access, sor_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 */
--
2.13.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [v2] timers: Fix excessive granularity of new timers after a nohz idle
[not found] ` <20170815134114.17547-6-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-08-23 8:38 ` jeffy
[not found] ` <599D3EF6.9030000-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
0 siblings, 1 reply; 12+ messages in thread
From: jeffy @ 2017-08-23 8:38 UTC (permalink / raw
To: Thierry Reding
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Mikko Perttunen
Hi Thierry,
i hit a compile error with this patch:
CC drivers/gpu/drm/tegra/trace.o
In file included from drivers/gpu/drm/tegra/trace.h:68:0,
from drivers/gpu/drm/tegra/trace.c:2:
./include/trace/define_trace.h:88:43: fatal error: ./trace.h: No such
file or directory
compilation terminated.
scripts/Makefile.build:311: recipe for target
'drivers/gpu/drm/tegra/trace.o' failed
On 08/22/2017 04:43 PM, Nicholas Piggin wrote:
> +++ b/drivers/gpu/drm/tegra/Makefile
> @@ -24,4 +24,6 @@ tegra-drm-$(CONFIG_ARCH_TEGRA_186_SOC) += \
> parker/dsi.o \
> parker/sor.o
>
> +tegra-drm-y += trace.o
> +
maybe we need this:
+++ b/drivers/gpu/drm/tegra/Makefile
@@ -19,4 +19,6 @@ tegra-drm-y := \
tegra-drm-y += trace.o
+CFLAGS_trace.o := -I$(src)
+
obj-$(CONFIG_DRM_TEGRA) += tegra-drm.o
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [v2] timers: Fix excessive granularity of new timers after a nohz idle
[not found] ` <599D3EF6.9030000-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
@ 2017-08-24 8:36 ` Thierry Reding
0 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2017-08-24 8:36 UTC (permalink / raw
To: jeffy
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Mikko Perttunen
[-- Attachment #1: Type: text/plain, Size: 1696 bytes --]
On Wed, Aug 23, 2017 at 04:38:14PM +0800, jeffy wrote:
> Hi Thierry,
>
> i hit a compile error with this patch:
>
> CC drivers/gpu/drm/tegra/trace.o
> In file included from drivers/gpu/drm/tegra/trace.h:68:0,
> from drivers/gpu/drm/tegra/trace.c:2:
> ./include/trace/define_trace.h:88:43: fatal error: ./trace.h: No such file
> or directory
> compilation terminated.
> scripts/Makefile.build:311: recipe for target
> 'drivers/gpu/drm/tegra/trace.o' failed
>
>
> On 08/22/2017 04:43 PM, Nicholas Piggin wrote:
> > +++ b/drivers/gpu/drm/tegra/Makefile
> > @@ -24,4 +24,6 @@ tegra-drm-$(CONFIG_ARCH_TEGRA_186_SOC) += \
> > parker/dsi.o \
> > parker/sor.o
> >
> > +tegra-drm-y += trace.o
> > +
>
> maybe we need this:
>
> +++ b/drivers/gpu/drm/tegra/Makefile
> @@ -19,4 +19,6 @@ tegra-drm-y := \
>
> tegra-drm-y += trace.o
>
> +CFLAGS_trace.o := -I$(src)
> +
> obj-$(CONFIG_DRM_TEGRA) += tegra-drm.o
Dmitry had also reported this earlier and I think the right fix is this,
which is now in today's linux-next:
commit 702800b5d6f45b18db6b6d6b1057af6fd1c75e20
Author: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Date: Wed Aug 23 19:13:26 2017 +0200
drm/tegra: trace: Fix path to include
The TRACE_INCLUDE_FILE macro needs to specify the path relative to the
define_trace.h header rather than relative to the file defining it.
Reported-by: Dmitry Osipenko <digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Tested-by: Dmitry Osipenko <digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-08-24 8:36 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-15 13:41 [PATCH 01/10] drm/tegra: dc: Use unsigned int for register offsets Thierry Reding
2017-08-15 13:41 ` [PATCH 02/10] drm/tegra: dpaux: " Thierry Reding
2017-08-15 13:41 ` [PATCH 03/10] drm/tegra: dsi: " Thierry Reding
2017-08-15 13:41 ` [PATCH 04/10] drm/tegra: hdmi: " Thierry Reding
[not found] ` <20170815134114.17547-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-08-15 13:41 ` [PATCH 05/10] drm/tegra: sor: " Thierry Reding
2017-08-15 13:41 ` [PATCH 06/10] drm/tegra: dc: Trace register accesses Thierry Reding
[not found] ` <20170815134114.17547-6-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-08-23 8:38 ` [v2] timers: Fix excessive granularity of new timers after a nohz idle jeffy
[not found] ` <599D3EF6.9030000-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2017-08-24 8:36 ` Thierry Reding
2017-08-15 13:41 ` [PATCH 07/10] drm/tegra: hdmi: Trace register accesses Thierry Reding
2017-08-15 13:41 ` [PATCH 08/10] drm/tegra: dsi: " Thierry Reding
2017-08-15 13:41 ` [PATCH 09/10] drm/tegra: dpaux: " Thierry Reding
2017-08-15 13:41 ` [PATCH 10/10] drm/tegra: sor: " Thierry Reding
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).