Commit 85efe4e5 authored by Philipp Zabel's avatar Philipp Zabel Committed by Mauro Carvalho Chehab

[media] v4l2-dev: use event class to deduplicate v4l2 trace events

Trace events with exactly the same parameters and trace output, such as
v4l2_qbuf and v4l2_dqbuf, are supposed to use the DECLARE_EVENT_CLASS and
DEFINE_EVENT macros instead of duplicated TRACE_EVENT macro calls.
Suggested-by: default avatarSteven Rostedt <rostedt@goodmis.org>
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 6727d4fc
...@@ -93,90 +93,86 @@ SHOW_FIELD ...@@ -93,90 +93,86 @@ SHOW_FIELD
{ V4L2_TC_USERBITS_USERDEFINED, "USERBITS_USERDEFINED" }, \ { V4L2_TC_USERBITS_USERDEFINED, "USERBITS_USERDEFINED" }, \
{ V4L2_TC_USERBITS_8BITCHARS, "USERBITS_8BITCHARS" }) { V4L2_TC_USERBITS_8BITCHARS, "USERBITS_8BITCHARS" })
#define V4L2_TRACE_EVENT(event_name) \ DECLARE_EVENT_CLASS(v4l2_event_class,
TRACE_EVENT(event_name, \ TP_PROTO(int minor, struct v4l2_buffer *buf),
TP_PROTO(int minor, struct v4l2_buffer *buf), \
\ TP_ARGS(minor, buf),
TP_ARGS(minor, buf), \
\ TP_STRUCT__entry(
TP_STRUCT__entry( \ __field(int, minor)
__field(int, minor) \ __field(u32, index)
__field(u32, index) \ __field(u32, type)
__field(u32, type) \ __field(u32, bytesused)
__field(u32, bytesused) \ __field(u32, flags)
__field(u32, flags) \ __field(u32, field)
__field(u32, field) \ __field(s64, timestamp)
__field(s64, timestamp) \ __field(u32, timecode_type)
__field(u32, timecode_type) \ __field(u32, timecode_flags)
__field(u32, timecode_flags) \ __field(u8, timecode_frames)
__field(u8, timecode_frames) \ __field(u8, timecode_seconds)
__field(u8, timecode_seconds) \ __field(u8, timecode_minutes)
__field(u8, timecode_minutes) \ __field(u8, timecode_hours)
__field(u8, timecode_hours) \ __field(u8, timecode_userbits0)
__field(u8, timecode_userbits0) \ __field(u8, timecode_userbits1)
__field(u8, timecode_userbits1) \ __field(u8, timecode_userbits2)
__field(u8, timecode_userbits2) \ __field(u8, timecode_userbits3)
__field(u8, timecode_userbits3) \ __field(u32, sequence)
__field(u32, sequence) \ ),
), \
\ TP_fast_assign(
TP_fast_assign( \ __entry->minor = minor;
__entry->minor = minor; \ __entry->index = buf->index;
__entry->index = buf->index; \ __entry->type = buf->type;
__entry->type = buf->type; \ __entry->bytesused = buf->bytesused;
__entry->bytesused = buf->bytesused; \ __entry->flags = buf->flags;
__entry->flags = buf->flags; \ __entry->field = buf->field;
__entry->field = buf->field; \ __entry->timestamp = timeval_to_ns(&buf->timestamp);
__entry->timestamp = \ __entry->timecode_type = buf->timecode.type;
timeval_to_ns(&buf->timestamp); \ __entry->timecode_flags = buf->timecode.flags;
__entry->timecode_type = buf->timecode.type; \ __entry->timecode_frames = buf->timecode.frames;
__entry->timecode_flags = buf->timecode.flags; \ __entry->timecode_seconds = buf->timecode.seconds;
__entry->timecode_frames = \ __entry->timecode_minutes = buf->timecode.minutes;
buf->timecode.frames; \ __entry->timecode_hours = buf->timecode.hours;
__entry->timecode_seconds = \ __entry->timecode_userbits0 = buf->timecode.userbits[0];
buf->timecode.seconds; \ __entry->timecode_userbits1 = buf->timecode.userbits[1];
__entry->timecode_minutes = \ __entry->timecode_userbits2 = buf->timecode.userbits[2];
buf->timecode.minutes; \ __entry->timecode_userbits3 = buf->timecode.userbits[3];
__entry->timecode_hours = buf->timecode.hours; \ __entry->sequence = buf->sequence;
__entry->timecode_userbits0 = \ ),
buf->timecode.userbits[0]; \
__entry->timecode_userbits1 = \ TP_printk("minor = %d, index = %u, type = %s, bytesused = %u, "
buf->timecode.userbits[1]; \ "flags = %s, field = %s, timestamp = %llu, "
__entry->timecode_userbits2 = \ "timecode = { type = %s, flags = %s, frames = %u, "
buf->timecode.userbits[2]; \ "seconds = %u, minutes = %u, hours = %u, "
__entry->timecode_userbits3 = \ "userbits = { %u %u %u %u } }, sequence = %u", __entry->minor,
buf->timecode.userbits[3]; \ __entry->index, show_type(__entry->type),
__entry->sequence = buf->sequence; \ __entry->bytesused,
), \ show_flags(__entry->flags),
\ show_field(__entry->field),
TP_printk("minor = %d, index = %u, type = %s, " \ __entry->timestamp,
"bytesused = %u, flags = %s, " \ show_timecode_type(__entry->timecode_type),
"field = %s, timestamp = %llu, timecode = { " \ show_timecode_flags(__entry->timecode_flags),
"type = %s, flags = %s, frames = %u, " \ __entry->timecode_frames,
"seconds = %u, minutes = %u, hours = %u, " \ __entry->timecode_seconds,
"userbits = { %u %u %u %u } }, " \ __entry->timecode_minutes,
"sequence = %u", __entry->minor, \ __entry->timecode_hours,
__entry->index, show_type(__entry->type), \ __entry->timecode_userbits0,
__entry->bytesused, \ __entry->timecode_userbits1,
show_flags(__entry->flags), \ __entry->timecode_userbits2,
show_field(__entry->field), \ __entry->timecode_userbits3,
__entry->timestamp, \ __entry->sequence
show_timecode_type(__entry->timecode_type), \
show_timecode_flags(__entry->timecode_flags), \
__entry->timecode_frames, \
__entry->timecode_seconds, \
__entry->timecode_minutes, \
__entry->timecode_hours, \
__entry->timecode_userbits0, \
__entry->timecode_userbits1, \
__entry->timecode_userbits2, \
__entry->timecode_userbits3, \
__entry->sequence \
) \
) )
)
V4L2_TRACE_EVENT(v4l2_dqbuf); DEFINE_EVENT(v4l2_event_class, v4l2_dqbuf,
V4L2_TRACE_EVENT(v4l2_qbuf); TP_PROTO(int minor, struct v4l2_buffer *buf),
TP_ARGS(minor, buf)
);
DEFINE_EVENT(v4l2_event_class, v4l2_qbuf,
TP_PROTO(int minor, struct v4l2_buffer *buf),
TP_ARGS(minor, buf)
);
#endif /* if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */ #endif /* if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment