summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/video/tegra/host/host1x/host1x_syncpt.c3
-rw-r--r--drivers/video/tegra/host/nvhost_syncpt.c8
-rw-r--r--include/trace/events/nvhost.h42
3 files changed, 52 insertions, 1 deletions
diff --git a/drivers/video/tegra/host/host1x/host1x_syncpt.c b/drivers/video/tegra/host/host1x/host1x_syncpt.c
index d0de49463993..967bc6fe442c 100644
--- a/drivers/video/tegra/host/host1x/host1x_syncpt.c
+++ b/drivers/video/tegra/host/host1x/host1x_syncpt.c
@@ -20,6 +20,7 @@
#include <linux/nvhost_ioctl.h>
#include <linux/io.h>
+#include <trace/events/nvhost.h>
#include "nvhost_syncpt.h"
#include "nvhost_acm.h"
#include "dev.h"
@@ -124,6 +125,8 @@ static int t20_syncpt_wait_check(struct nvhost_syncpt *sp,
u32 override;
BUG_ON(wait->syncpt_id >= NV_HOST1X_SYNCPT_NB_PTS);
+ trace_nvhost_syncpt_wait_check(wait->mem, wait->offset,
+ wait->syncpt_id, wait->thresh);
if (nvhost_syncpt_is_expired(sp,
wait->syncpt_id, wait->thresh)) {
/*
diff --git a/drivers/video/tegra/host/nvhost_syncpt.c b/drivers/video/tegra/host/nvhost_syncpt.c
index d69883ee51b2..59788084e3c2 100644
--- a/drivers/video/tegra/host/nvhost_syncpt.c
+++ b/drivers/video/tegra/host/nvhost_syncpt.c
@@ -21,6 +21,7 @@
#include <linux/nvhost_ioctl.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
+#include <trace/events/nvhost.h>
#include "nvhost_syncpt.h"
#include "nvhost_acm.h"
#include "dev.h"
@@ -70,9 +71,14 @@ void nvhost_syncpt_save(struct nvhost_syncpt *sp)
*/
u32 nvhost_syncpt_update_min(struct nvhost_syncpt *sp, u32 id)
{
+ u32 val;
+
BUG_ON(!syncpt_op(sp).update_min);
- return syncpt_op(sp).update_min(sp, id);
+ val = syncpt_op(sp).update_min(sp, id);
+ trace_nvhost_syncpt_update_min(id, val);
+
+ return val;
}
/**
diff --git a/include/trace/events/nvhost.h b/include/trace/events/nvhost.h
index ad1885396315..4bb79e30fc19 100644
--- a/include/trace/events/nvhost.h
+++ b/include/trace/events/nvhost.h
@@ -453,6 +453,48 @@ TRACE_EVENT(nvhost_wait_cdma,
TP_printk("name=%s, event=%d", __entry->name, __entry->eventid)
);
+TRACE_EVENT(nvhost_syncpt_update_min,
+ TP_PROTO(u32 id, u32 val),
+
+ TP_ARGS(id, val),
+
+ TP_STRUCT__entry(
+ __field(u32, id)
+ __field(u32, val)
+ ),
+
+ TP_fast_assign(
+ __entry->id = id;
+ __entry->val = val;
+ ),
+
+ TP_printk("id=%d, val=%d", __entry->id, __entry->val)
+);
+
+TRACE_EVENT(nvhost_syncpt_wait_check,
+ TP_PROTO(u32 mem_id, u32 offset, u32 syncpt_id, u32 val),
+
+ TP_ARGS(mem_id, offset, syncpt_id, val),
+
+ TP_STRUCT__entry(
+ __field(u32, mem_id)
+ __field(u32, offset)
+ __field(u32, syncpt_id)
+ __field(u32, val)
+ ),
+
+ TP_fast_assign(
+ __entry->mem_id = mem_id;
+ __entry->offset = offset;
+ __entry->syncpt_id = syncpt_id;
+ __entry->val = val;
+ ),
+
+ TP_printk("mem_id=%08x, offset=%05x, id=%d, val=%d",
+ __entry->mem_id, __entry->offset,
+ __entry->syncpt_id, __entry->val)
+);
+
#endif /* _TRACE_NVHOST_H */
/* This part must be outside protection */