#include "drm.h"
 #include "dsi.h"
 #include "mipi-phy.h"
+#include "trace.h"
 
 struct tegra_dsi_state {
        struct drm_connector_state base;
 
 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));
 }
 
 
        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 */