From 7228c578e4968d29189b5ebae7c285c2ecc5c3ff Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Wed, 9 May 2012 15:54:02 +0300 Subject: video: tegra: host: Add syncpt trace events Add trace events for updating the syncpt value from hardware, and wait check. Change-Id: If17de153ae36c0665fe0af2f405dfe42f7fcd656 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/101524 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mayuresh Kulkarni Reviewed-by: Juha Tukkinen Reviewed-by: Ken Adams --- drivers/video/tegra/host/host1x/host1x_syncpt.c | 3 ++ drivers/video/tegra/host/nvhost_syncpt.c | 8 ++++- include/trace/events/nvhost.h | 42 +++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) 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 #include +#include #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 #include #include +#include #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 */ -- cgit v1.2.3