mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
Fix CERT STR07-C coverity defects for cdi_mgr.c tegra_rtcpu.h Jira CAMERASW-30850 Change-Id: I86c4cec8cdda2a1f16d5ca7ea7fbeed3a0318ad1 Signed-off-by: ryanli <ryanli@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3282774 Reviewed-by: Semi Malinen <smalinen@nvidia.com> GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com> Reviewed-by: Ankur Pawar <ankurp@nvidia.com> Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
688 lines
18 KiB
C
688 lines
18 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
*/
|
|
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM tegra_rtcpu
|
|
|
|
#if !defined(_TRACE_TEGRA_RTCPU_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_TEGRA_RTCPU_H
|
|
|
|
#include <linux/tracepoint.h>
|
|
#include <linux/string.h>
|
|
#include <soc/tegra/camrtc-trace.h>
|
|
|
|
/*
|
|
* Classes
|
|
*/
|
|
|
|
DECLARE_EVENT_CLASS(rtcpu__noarg,
|
|
TP_PROTO(u64 tstamp),
|
|
TP_ARGS(tstamp),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
),
|
|
TP_printk("tstamp:%llu", __entry->tstamp)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(rtcpu__arg1,
|
|
TP_PROTO(u64 tstamp, u32 data1),
|
|
TP_ARGS(tstamp, data1),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, data1)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->data1 = data1;
|
|
),
|
|
TP_printk("tstamp:%llu, data:%u", __entry->tstamp,
|
|
__entry->data1)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(rtcpu__dump,
|
|
TP_PROTO(u64 tstamp, u32 id, u32 len, void *data),
|
|
TP_ARGS(tstamp, id, len, data),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, id)
|
|
__field(u32, len)
|
|
__dynamic_array(__u8, data, len)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->id = id;
|
|
__entry->len = len;
|
|
memcpy(__get_dynamic_array(data), data, len);
|
|
),
|
|
TP_printk("tstamp:%llu id:0x%08x len:%u data:%s",
|
|
__entry->tstamp, __entry->id, __entry->len,
|
|
__print_hex(__get_dynamic_array(data), __entry->len))
|
|
);
|
|
|
|
/*
|
|
* Unknown events
|
|
*/
|
|
|
|
DEFINE_EVENT(rtcpu__dump, rtcpu_unknown,
|
|
TP_PROTO(u64 tstamp, u32 id, u32 len, void *data),
|
|
TP_ARGS(tstamp, id, len, data)
|
|
);
|
|
|
|
/*
|
|
* Non ARRAY event types
|
|
*/
|
|
|
|
TRACE_EVENT(rtcpu_armv7_exception,
|
|
TP_PROTO(u64 tstamp, u32 type),
|
|
TP_ARGS(tstamp, type),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, type)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->type = type;
|
|
),
|
|
TP_printk("tstamp:%llu type:%u", __entry->tstamp, __entry->type)
|
|
);
|
|
|
|
TRACE_EVENT(rtcpu_start,
|
|
TP_PROTO(u64 tstamp),
|
|
TP_ARGS(tstamp),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
),
|
|
TP_printk("tstamp:%llu", __entry->tstamp)
|
|
);
|
|
|
|
#ifndef TEGRA_RTCPU_TRACE_STRING_SIZE
|
|
#define TEGRA_RTCPU_TRACE_STRING_SIZE 48
|
|
#endif
|
|
|
|
TRACE_EVENT(rtcpu_string,
|
|
TP_PROTO(u64 tstamp, u32 id, u32 len, const char *data),
|
|
TP_ARGS(tstamp, id, len, data),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, id)
|
|
__field(u32, len)
|
|
__array(char, data, TEGRA_RTCPU_TRACE_STRING_SIZE)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->id = id;
|
|
__entry->len = len;
|
|
(void)strscpy(__entry->data, data, sizeof(__entry->data));
|
|
),
|
|
TP_printk("tstamp:%llu id:0x%08x str:\"%.*s\"",
|
|
__entry->tstamp, __entry->id,
|
|
(int)(sizeof(__entry->data)), __entry->data)
|
|
);
|
|
|
|
DEFINE_EVENT(rtcpu__dump, rtcpu_bulk,
|
|
TP_PROTO(u64 tstamp, u32 id, u32 len, void *data),
|
|
TP_ARGS(tstamp, id, len, data)
|
|
);
|
|
|
|
/*
|
|
* Base events
|
|
*/
|
|
|
|
DEFINE_EVENT(rtcpu__noarg, rtcpu_target_init,
|
|
TP_PROTO(u64 tstamp),
|
|
TP_ARGS(tstamp)
|
|
);
|
|
|
|
DEFINE_EVENT(rtcpu__noarg, rtcpu_start_scheduler,
|
|
TP_PROTO(u64 tstamp),
|
|
TP_ARGS(tstamp)
|
|
);
|
|
|
|
/*
|
|
* Debug interface
|
|
*/
|
|
|
|
DEFINE_EVENT(rtcpu__arg1, rtcpu_dbg_unknown,
|
|
TP_PROTO(u64 tstamp, u32 data1),
|
|
TP_ARGS(tstamp, data1)
|
|
);
|
|
|
|
DEFINE_EVENT(rtcpu__arg1, rtcpu_dbg_enter,
|
|
TP_PROTO(u64 tstamp, u32 req_type),
|
|
TP_ARGS(tstamp, req_type)
|
|
);
|
|
|
|
DEFINE_EVENT(rtcpu__noarg, rtcpu_dbg_exit,
|
|
TP_PROTO(u64 tstamp),
|
|
TP_ARGS(tstamp)
|
|
);
|
|
|
|
TRACE_EVENT(rtcpu_dbg_set_loglevel,
|
|
TP_PROTO(u64 tstamp, u32 old_level, u32 new_level),
|
|
TP_ARGS(tstamp, old_level, new_level),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, old_level)
|
|
__field(u32, new_level)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->old_level = old_level;
|
|
__entry->new_level = new_level;
|
|
),
|
|
TP_printk("tstamp:%llu old:%u new:%u", __entry->tstamp,
|
|
__entry->old_level, __entry->new_level)
|
|
);
|
|
|
|
/*
|
|
* Perf events
|
|
*/
|
|
DECLARE_EVENT_CLASS(rtcpu__perf,
|
|
TP_PROTO(u64 tstamp, const struct camrtc_trace_perf_counter_data *perf),
|
|
TP_ARGS(tstamp, perf),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field_struct(struct camrtc_trace_perf_counter_data, perf)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
if (perf)
|
|
__entry->perf = *perf;
|
|
else
|
|
memset(&__entry->perf, 0, sizeof(*perf));
|
|
),
|
|
TP_printk("ts:%llu name:%.*s cc:%llu e%u:%u e%u:%u e%u:%u",
|
|
__entry->tstamp, (int)sizeof(__entry->perf.name),
|
|
__entry->perf.name, __entry->perf.cycles,
|
|
__entry->perf.events[0], __entry->perf.counters[0],
|
|
__entry->perf.events[1], __entry->perf.counters[1],
|
|
__entry->perf.events[2], __entry->perf.counters[2])
|
|
);
|
|
|
|
DEFINE_EVENT(rtcpu__perf, rtcpu_perf_counters,
|
|
TP_PROTO(u64 tstamp, const struct camrtc_trace_perf_counter_data *perf),
|
|
TP_ARGS(tstamp, perf)
|
|
);
|
|
|
|
DEFINE_EVENT(rtcpu__perf, rtcpu_perf_reset,
|
|
TP_PROTO(u64 tstamp, const struct camrtc_trace_perf_counter_data *perf),
|
|
TP_ARGS(tstamp, perf)
|
|
);
|
|
|
|
|
|
/*
|
|
* VI Notify events
|
|
*/
|
|
|
|
extern const char * const g_trace_vinotify_tag_strs[];
|
|
extern const unsigned int g_trace_vinotify_tag_str_count;
|
|
|
|
TRACE_EVENT(rtcpu_vinotify_event_ts64,
|
|
TP_PROTO(u64 tstamp, u8 tag, u32 ch_frame, u64 vi_tstamp, u32 data),
|
|
TP_ARGS(tstamp, tag, ch_frame, vi_tstamp, data),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u8, tag)
|
|
__field(u32, ch_frame)
|
|
__field(u64, vi_tstamp)
|
|
__field(u32, data)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->tag = tag;
|
|
__entry->ch_frame = ch_frame;
|
|
__entry->vi_tstamp = vi_tstamp;
|
|
__entry->data = data;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu tag:%s channel:0x%02x frame:%u vi_tstamp:%llu data:0x%08x",
|
|
__entry->tstamp,
|
|
(__entry->tag < g_trace_vinotify_tag_str_count) ?
|
|
g_trace_vinotify_tag_strs[__entry->tag] :
|
|
__print_hex(&__entry->tag, 1),
|
|
(__entry->ch_frame >> 8) & 0xff,
|
|
(__entry->ch_frame >> 16) & 0xffff,
|
|
__entry->vi_tstamp, __entry->data)
|
|
);
|
|
|
|
TRACE_EVENT(rtcpu_vinotify_event,
|
|
TP_PROTO(u64 tstamp, u32 channel_id, u32 unit,
|
|
u32 tag, u32 vi_ts_hi, u32 vi_ts_lo, u32 ext_data, u32 data),
|
|
TP_ARGS(tstamp, channel_id, unit, tag, vi_ts_hi, vi_ts_lo, ext_data, data),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, channel_id)
|
|
__field(u32, unit)
|
|
__field(u8, tag_tag)
|
|
__field(u8, tag_channel)
|
|
__field(u16, tag_frame)
|
|
__field(u64, vi_ts)
|
|
__field(u64, data)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->channel_id = channel_id;
|
|
__entry->unit = unit;
|
|
__entry->tag_tag = tag & 0xff;
|
|
__entry->tag_channel = (tag >> 8) & 0xff;
|
|
__entry->tag_frame = (tag >> 16) & 0xffff;
|
|
__entry->vi_ts = ((u64)vi_ts_hi << 32) | vi_ts_lo;
|
|
__entry->data = ((u64)ext_data << 32) | data;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu cch:%d vi:%u tag:%s channel:0x%02x frame:%u "
|
|
"vi_tstamp:%llu data:0x%016llx",
|
|
__entry->tstamp,
|
|
__entry->channel_id,
|
|
__entry->unit,
|
|
(((__entry->tag_tag >> 1) < g_trace_vinotify_tag_str_count) &&
|
|
((__entry->tag_tag >> 1) >= 0)) ?
|
|
g_trace_vinotify_tag_strs[__entry->tag_tag >> 1] :
|
|
__print_hex(&__entry->tag_tag, 1),
|
|
__entry->tag_channel, __entry->tag_frame,
|
|
__entry->vi_ts, __entry->data)
|
|
);
|
|
|
|
TRACE_EVENT(rtcpu_vinotify_error,
|
|
TP_PROTO(u64 tstamp, u32 channel_id, u32 unit,
|
|
u32 tag, u32 vi_ts_hi, u32 vi_ts_lo, u32 ext_data, u32 data),
|
|
TP_ARGS(tstamp, channel_id, unit, tag, vi_ts_hi, vi_ts_lo, ext_data, data),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, channel_id)
|
|
__field(u32, unit)
|
|
__field(u8, tag_tag)
|
|
__field(u8, tag_channel)
|
|
__field(u16, tag_frame)
|
|
__field(u64, vi_ts)
|
|
__field(u64, data)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->channel_id = channel_id;
|
|
__entry->unit = unit;
|
|
__entry->tag_tag = tag & 0xff;
|
|
__entry->tag_channel = (tag >> 8) & 0xff;
|
|
__entry->tag_frame = (tag >> 16) & 0xffff;
|
|
__entry->vi_ts = ((u64)vi_ts_hi << 32) | vi_ts_lo;
|
|
__entry->data = ((u64)ext_data << 32) | data;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu cch:%d vi:%u tag:%s channel:0x%02x frame:%u "
|
|
"vi_tstamp:%llu data:0x%016llx",
|
|
__entry->tstamp,
|
|
__entry->channel_id,
|
|
__entry->unit,
|
|
((__entry->tag_tag >> 1) < g_trace_vinotify_tag_str_count) ?
|
|
g_trace_vinotify_tag_strs[__entry->tag_tag >> 1] :
|
|
__print_hex(&__entry->tag_tag, 1),
|
|
__entry->tag_channel, __entry->tag_frame,
|
|
__entry->vi_ts, __entry->data)
|
|
);
|
|
|
|
/*
|
|
* VI events
|
|
*/
|
|
|
|
TRACE_EVENT(vi_frame_begin,
|
|
TP_PROTO(u64 tstamp, u32 channel_id, u32 syncpt_id,
|
|
u32 syncpt_thresh, u32 class_id),
|
|
TP_ARGS(tstamp, channel_id, syncpt_id, syncpt_thresh, class_id),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, channel_id)
|
|
__field(u32, syncpt_id)
|
|
__field(u32, syncpt_thresh)
|
|
__field(u32, class_id)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->channel_id = channel_id;
|
|
__entry->syncpt_id = syncpt_id;
|
|
__entry->syncpt_thresh = syncpt_thresh;
|
|
__entry->class_id = class_id;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu cch:%d syncpt_id:%u syncpt_thresh:%u class_id:%u",
|
|
__entry->tstamp,
|
|
__entry->channel_id,
|
|
__entry->syncpt_id,
|
|
__entry->syncpt_thresh,
|
|
__entry->class_id)
|
|
);
|
|
|
|
TRACE_EVENT(vi_frame_end,
|
|
TP_PROTO(u64 tstamp, u32 channel_id, u32 syncpt_id,
|
|
u32 syncpt_thresh, u32 class_id),
|
|
TP_ARGS(tstamp, channel_id, syncpt_id, syncpt_thresh, class_id),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, channel_id)
|
|
__field(u32, syncpt_id)
|
|
__field(u32, syncpt_thresh)
|
|
__field(u32, class_id)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->channel_id = channel_id;
|
|
__entry->syncpt_id = syncpt_id;
|
|
__entry->syncpt_thresh = syncpt_thresh;
|
|
__entry->class_id = class_id;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu cch:%d syncpt_id:%u syncpt_thresh:%u class_id:%u",
|
|
__entry->tstamp,
|
|
__entry->channel_id,
|
|
__entry->syncpt_id,
|
|
__entry->syncpt_thresh,
|
|
__entry->class_id)
|
|
);
|
|
|
|
/*
|
|
* NVCSI events
|
|
*/
|
|
|
|
extern const char * const g_trace_nvcsi_intr_class_strs[];
|
|
extern const unsigned int g_trace_nvcsi_intr_class_str_count;
|
|
|
|
extern const char * const g_trace_nvcsi_intr_type_strs[];
|
|
extern const unsigned int g_trace_nvcsi_intr_type_str_count;
|
|
|
|
TRACE_EVENT(rtcpu_nvcsi_intr,
|
|
TP_PROTO(u64 tstamp, u8 intr_class, u8 intr_type, u32 index,
|
|
u32 status),
|
|
TP_ARGS(tstamp, intr_class, intr_type, index, status),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u8, intr_class)
|
|
__field(u8, intr_type)
|
|
__field(u32, index)
|
|
__field(u32, status)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->intr_class = intr_class;
|
|
__entry->intr_type = intr_type;
|
|
__entry->index = index;
|
|
__entry->status = status;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu class:%s type:%s phy:%u cil:%u st:%u vc:%u status:0x%08x",
|
|
__entry->tstamp,
|
|
(__entry->intr_class < g_trace_nvcsi_intr_class_str_count) ?
|
|
g_trace_nvcsi_intr_class_strs[__entry->intr_class] :
|
|
__print_hex(&__entry->intr_class, 1),
|
|
(__entry->intr_type < g_trace_nvcsi_intr_type_str_count) ?
|
|
g_trace_nvcsi_intr_type_strs[__entry->intr_type] :
|
|
__print_hex(&__entry->intr_type, 1),
|
|
(__entry->index >> 24) & 0xff,
|
|
(__entry->index >> 16) & 0xff,
|
|
(__entry->index >> 8) & 0xff,
|
|
__entry->index & 0xff,
|
|
__entry->status)
|
|
);
|
|
|
|
/*
|
|
* ISP events
|
|
*/
|
|
|
|
TRACE_EVENT(rtcpu_isp_falcon,
|
|
TP_PROTO(u8 tag, u8 ch, u8 seq, u64 tstamp, u32 isp_unit_id, u32 data, u32 ext_data),
|
|
TP_ARGS(tag, ch, seq, tstamp, isp_unit_id, data, ext_data),
|
|
TP_STRUCT__entry(
|
|
__field(u8, tag)
|
|
__field(u8, ch)
|
|
__field(u8, seq)
|
|
__field(u64, tstamp)
|
|
__field(u32, isp_unit_id)
|
|
__field(u32, data)
|
|
__field(u32, ext_data)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tag = tag;
|
|
__entry->ch = ch;
|
|
__entry->seq = seq;
|
|
__entry->tstamp = tstamp;
|
|
__entry->isp_unit_id = isp_unit_id;
|
|
__entry->data = data;
|
|
__entry->ext_data = ext_data;
|
|
),
|
|
TP_printk(
|
|
"tag:0x%x tstamp:%llu ch:%u isp:%u seq:%u data:0x%08x ext_data:0x%08x",
|
|
__entry->tag, __entry->tstamp, __entry->ch, __entry->isp_unit_id, __entry->seq,
|
|
__entry->data, __entry->ext_data
|
|
)
|
|
);
|
|
|
|
extern const char * const g_trace_isp_falcon_task_strs[];
|
|
extern const unsigned int g_trace_isp_falcon_task_str_count;
|
|
|
|
TRACE_EVENT(rtcpu_isp_falcon_task_start,
|
|
TP_PROTO(u8 ch, u64 tstamp, u32 isp_unit_id, u32 task),
|
|
TP_ARGS(ch, tstamp, isp_unit_id, task),
|
|
TP_STRUCT__entry(
|
|
__field(u8, ch)
|
|
__field(u64, tstamp)
|
|
__field(u32, isp_unit_id)
|
|
__field(u32, task)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->ch = ch;
|
|
__entry->tstamp = tstamp;
|
|
__entry->isp_unit_id = isp_unit_id;
|
|
__entry->task = task;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu ch:%u isp:%u task:%s",
|
|
__entry->tstamp, __entry->ch, __entry->isp_unit_id,
|
|
(__entry->task < g_trace_isp_falcon_task_str_count) ?
|
|
g_trace_isp_falcon_task_strs[__entry->task] :
|
|
"UNKNOWN"
|
|
)
|
|
);
|
|
|
|
TRACE_EVENT(rtcpu_isp_falcon_task_end,
|
|
TP_PROTO(u64 tstamp, u32 isp_unit_id, u32 task),
|
|
TP_ARGS(tstamp, isp_unit_id, task),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, isp_unit_id)
|
|
__field(u32, task)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->isp_unit_id = isp_unit_id;
|
|
__entry->task = task;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu isp:%u task:%s",
|
|
__entry->tstamp, __entry->isp_unit_id,
|
|
(__entry->task < g_trace_isp_falcon_task_str_count) ?
|
|
g_trace_isp_falcon_task_strs[__entry->task] :
|
|
"UNKNOWN"
|
|
)
|
|
);
|
|
|
|
|
|
TRACE_EVENT(rtcpu_isp_falcon_tile_start,
|
|
TP_PROTO(
|
|
u8 ch, u8 seq, u64 tstamp, u32 isp_unit_id,
|
|
u8 tile_x, u8 tile_y,
|
|
u16 tile_w, u16 tile_h),
|
|
TP_ARGS(ch, seq, tstamp, isp_unit_id, tile_x, tile_y, tile_w, tile_h),
|
|
TP_STRUCT__entry(
|
|
__field(u8, ch)
|
|
__field(u8, seq)
|
|
__field(u64, tstamp)
|
|
__field(u32, isp_unit_id)
|
|
__field(u8, tile_x)
|
|
__field(u8, tile_y)
|
|
__field(u16, tile_w)
|
|
__field(u16, tile_h)
|
|
|
|
),
|
|
TP_fast_assign(
|
|
__entry->ch = ch;
|
|
__entry->seq = seq;
|
|
__entry->tstamp = tstamp;
|
|
__entry->isp_unit_id = isp_unit_id;
|
|
__entry->tile_x = tile_x;
|
|
__entry->tile_y = tile_y;
|
|
__entry->tile_w = tile_w;
|
|
__entry->tile_h = tile_h;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu ch:%u isp:%u seq:%u tile_x:%u tile_y:%u tile_w:%u tile_h:%u",
|
|
__entry->tstamp, __entry->ch, __entry->isp_unit_id, __entry->seq,
|
|
__entry->tile_x, __entry->tile_y,
|
|
__entry->tile_w, __entry->tile_h
|
|
)
|
|
);
|
|
|
|
TRACE_EVENT(rtcpu_isp_falcon_tile_end,
|
|
TP_PROTO(u8 ch, u8 seq, u64 tstamp, u32 isp_unit_id, u8 tile_x, u8 tile_y),
|
|
TP_ARGS(ch, seq, tstamp, isp_unit_id, tile_x, tile_y),
|
|
TP_STRUCT__entry(
|
|
__field(u8, ch)
|
|
__field(u8, seq)
|
|
__field(u64, tstamp)
|
|
__field(u32, isp_unit_id)
|
|
__field(u8, tile_x)
|
|
__field(u8, tile_y)
|
|
|
|
),
|
|
TP_fast_assign(
|
|
__entry->ch = ch;
|
|
__entry->seq = seq;
|
|
__entry->tstamp = tstamp;
|
|
__entry->isp_unit_id = isp_unit_id;
|
|
__entry->tile_x = tile_x;
|
|
__entry->tile_y = tile_y;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu ch:%u isp:%u seq:%u tile_x:%u tile_y:%u",
|
|
__entry->tstamp, __entry->ch, __entry->isp_unit_id, __entry->seq,
|
|
__entry->tile_x, __entry->tile_y
|
|
)
|
|
);
|
|
|
|
TRACE_EVENT(isp_task_begin,
|
|
TP_PROTO(u64 tstamp, u32 channel_id, u32 syncpt_id,
|
|
u32 syncpt_thresh, u32 class_id),
|
|
TP_ARGS(tstamp, channel_id, syncpt_id, syncpt_thresh, class_id),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, channel_id)
|
|
__field(u32, syncpt_id)
|
|
__field(u32, syncpt_thresh)
|
|
__field(u32, class_id)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->channel_id = channel_id;
|
|
__entry->syncpt_id = syncpt_id;
|
|
__entry->syncpt_thresh = syncpt_thresh;
|
|
__entry->class_id = class_id;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu cch:%d syncpt_id:%u syncpt_thresh:%u class_id:%u",
|
|
__entry->tstamp,
|
|
__entry->channel_id,
|
|
__entry->syncpt_id,
|
|
__entry->syncpt_thresh,
|
|
__entry->class_id)
|
|
);
|
|
|
|
TRACE_EVENT(isp_task_end,
|
|
TP_PROTO(u64 tstamp, u32 channel_id, u32 syncpt_id,
|
|
u32 syncpt_thresh, u32 class_id),
|
|
TP_ARGS(tstamp, channel_id, syncpt_id, syncpt_thresh, class_id),
|
|
TP_STRUCT__entry(
|
|
__field(u64, tstamp)
|
|
__field(u32, channel_id)
|
|
__field(u32, syncpt_id)
|
|
__field(u32, syncpt_thresh)
|
|
__field(u32, class_id)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->tstamp = tstamp;
|
|
__entry->channel_id = channel_id;
|
|
__entry->syncpt_id = syncpt_id;
|
|
__entry->syncpt_thresh = syncpt_thresh;
|
|
__entry->class_id = class_id;
|
|
),
|
|
TP_printk(
|
|
"tstamp:%llu cch:%d syncpt_id:%u syncpt_thresh:%u class_id:%u",
|
|
__entry->tstamp,
|
|
__entry->channel_id,
|
|
__entry->syncpt_id,
|
|
__entry->syncpt_thresh,
|
|
__entry->class_id)
|
|
);
|
|
|
|
TRACE_EVENT(task_fence,
|
|
TP_PROTO(u32 kind, u32 class_id, u32 task_syncpt_id, u32 task_syncpt_thresh,
|
|
u32 type, u32 syncpt_id, u32 syncpt_thresh, u32 sync_fd, u32 semaphore_handle,
|
|
u32 semaphore_offset, u32 semaphore_value, u64 semaphore_unique_id),
|
|
TP_ARGS(kind, class_id, task_syncpt_id, task_syncpt_thresh,
|
|
type, syncpt_id, syncpt_thresh, sync_fd, semaphore_handle,
|
|
semaphore_offset, semaphore_value, semaphore_unique_id),
|
|
TP_STRUCT__entry(
|
|
__field(u32, kind)
|
|
__field(u32, class_id)
|
|
__field(u32, task_syncpt_id)
|
|
__field(u32, task_syncpt_thresh)
|
|
__field(u32, type)
|
|
__field(u32, syncpt_id)
|
|
__field(u32, syncpt_thresh)
|
|
__field(u32, sync_fd)
|
|
__field(u32, semaphore_handle)
|
|
__field(u32, semaphore_offset)
|
|
__field(u32, semaphore_value)
|
|
__field(u64, semaphore_unique_id)
|
|
),
|
|
TP_fast_assign(
|
|
__entry->kind = kind;
|
|
__entry->class_id = class_id;
|
|
__entry->task_syncpt_id = task_syncpt_id;
|
|
__entry->task_syncpt_thresh = task_syncpt_thresh;
|
|
__entry->type = type;
|
|
__entry->syncpt_id = syncpt_id;
|
|
__entry->syncpt_thresh = syncpt_thresh;
|
|
__entry->sync_fd = sync_fd;
|
|
__entry->semaphore_handle = semaphore_handle;
|
|
__entry->semaphore_offset = semaphore_offset;
|
|
__entry->semaphore_value = semaphore_value;
|
|
__entry->semaphore_unique_id = semaphore_unique_id;
|
|
),
|
|
TP_printk(
|
|
"kind:0x%x class_id:0x%x task_syncpt_id:%u task_syncpt_thresh:%u type:%u "
|
|
"syncpt_id:%u syncpt_thresh:%u sync_fd:%u semaphore_handle:%u "
|
|
"semaphore_offset:%u semaphore_value:%u semaphore_unique_id:%llu",
|
|
__entry->kind,
|
|
__entry->class_id,
|
|
__entry->task_syncpt_id,
|
|
__entry->task_syncpt_thresh,
|
|
__entry->type,
|
|
__entry->syncpt_id,
|
|
__entry->syncpt_thresh,
|
|
__entry->sync_fd,
|
|
__entry->semaphore_handle,
|
|
__entry->semaphore_offset,
|
|
__entry->semaphore_value,
|
|
__entry->semaphore_unique_id)
|
|
);
|
|
|
|
|
|
#endif /* _TRACE_TEGRA_RTCPU_H */
|
|
|
|
#include <trace/define_trace.h>
|