Merge tag 'media/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - new DVB frontend drivers: ascot2e, cxd2841er, horus3a, lnbh25 - new HDMI capture driver: tc358743 - new driver for NetUP DVB new boards (netup_unidvb) - IR support for DVBSky cards (smipcie-ir) - Coda driver has gain macroblock tiling support - Renesas R-Car gains JPEG codec driver - new DVB platform driver for STi boards: c8sectpfe - added documentation for the media core kABI to device-drivers DocBook - lots of driver fixups, cleanups and improvements * tag 'media/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (297 commits) [media] c8sectpfe: Remove select on undefined LIBELF_32 [media] i2c: fix platform_no_drv_owner.cocci warnings [media] cx231xx: Use wake_up_interruptible() instead of wake_up_interruptible_nr() [media] tc358743: only queue subdev notifications if devnode is set [media] tc358743: add missing Kconfig dependency/select [media] c8sectpfe: Use %pad to print 'dma_addr_t' [media] DocBook media: Fix typo "the the" in xml files [media] tc358743: make reset gpio optional [media] tc358743: set direction of reset gpio using devm_gpiod_get [media] dvbdev: document most of the functions/data structs [media] dvb_frontend.h: document the struct dvb_frontend [media] dvb-frontend.h: document struct dtv_frontend_properties [media] dvb-frontend.h: document struct dvb_frontend_ops [media] dvb: Use DVBFE_ALGO_HW where applicable [media] dvb_frontend.h: document struct analog_demod_ops [media] dvb_frontend.h: Document struct dvb_tuner_ops [media] Docbook: Document struct analog_parameters [media] dvb_frontend.h: get rid of dvbfe_modcod [media] add documentation for struct dvb_tuner_info [media] dvb_frontend: document dvb_frontend_tune_settings ...
This commit is contained in:
@@ -93,90 +93,183 @@ SHOW_FIELD
|
||||
{ V4L2_TC_USERBITS_USERDEFINED, "USERBITS_USERDEFINED" }, \
|
||||
{ V4L2_TC_USERBITS_8BITCHARS, "USERBITS_8BITCHARS" })
|
||||
|
||||
#define V4L2_TRACE_EVENT(event_name) \
|
||||
TRACE_EVENT(event_name, \
|
||||
TP_PROTO(int minor, struct v4l2_buffer *buf), \
|
||||
\
|
||||
TP_ARGS(minor, buf), \
|
||||
\
|
||||
TP_STRUCT__entry( \
|
||||
__field(int, minor) \
|
||||
__field(u32, index) \
|
||||
__field(u32, type) \
|
||||
__field(u32, bytesused) \
|
||||
__field(u32, flags) \
|
||||
__field(u32, field) \
|
||||
__field(s64, timestamp) \
|
||||
__field(u32, timecode_type) \
|
||||
__field(u32, timecode_flags) \
|
||||
__field(u8, timecode_frames) \
|
||||
__field(u8, timecode_seconds) \
|
||||
__field(u8, timecode_minutes) \
|
||||
__field(u8, timecode_hours) \
|
||||
__field(u8, timecode_userbits0) \
|
||||
__field(u8, timecode_userbits1) \
|
||||
__field(u8, timecode_userbits2) \
|
||||
__field(u8, timecode_userbits3) \
|
||||
__field(u32, sequence) \
|
||||
), \
|
||||
\
|
||||
TP_fast_assign( \
|
||||
__entry->minor = minor; \
|
||||
__entry->index = buf->index; \
|
||||
__entry->type = buf->type; \
|
||||
__entry->bytesused = buf->bytesused; \
|
||||
__entry->flags = buf->flags; \
|
||||
__entry->field = buf->field; \
|
||||
__entry->timestamp = \
|
||||
timeval_to_ns(&buf->timestamp); \
|
||||
__entry->timecode_type = buf->timecode.type; \
|
||||
__entry->timecode_flags = buf->timecode.flags; \
|
||||
__entry->timecode_frames = \
|
||||
buf->timecode.frames; \
|
||||
__entry->timecode_seconds = \
|
||||
buf->timecode.seconds; \
|
||||
__entry->timecode_minutes = \
|
||||
buf->timecode.minutes; \
|
||||
__entry->timecode_hours = buf->timecode.hours; \
|
||||
__entry->timecode_userbits0 = \
|
||||
buf->timecode.userbits[0]; \
|
||||
__entry->timecode_userbits1 = \
|
||||
buf->timecode.userbits[1]; \
|
||||
__entry->timecode_userbits2 = \
|
||||
buf->timecode.userbits[2]; \
|
||||
__entry->timecode_userbits3 = \
|
||||
buf->timecode.userbits[3]; \
|
||||
__entry->sequence = buf->sequence; \
|
||||
), \
|
||||
\
|
||||
TP_printk("minor = %d, index = %u, type = %s, " \
|
||||
"bytesused = %u, flags = %s, " \
|
||||
"field = %s, timestamp = %llu, timecode = { " \
|
||||
"type = %s, flags = %s, frames = %u, " \
|
||||
"seconds = %u, minutes = %u, hours = %u, " \
|
||||
"userbits = { %u %u %u %u } }, " \
|
||||
"sequence = %u", __entry->minor, \
|
||||
__entry->index, show_type(__entry->type), \
|
||||
__entry->bytesused, \
|
||||
show_flags(__entry->flags), \
|
||||
show_field(__entry->field), \
|
||||
__entry->timestamp, \
|
||||
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 \
|
||||
) \
|
||||
)
|
||||
DECLARE_EVENT_CLASS(v4l2_event_class,
|
||||
TP_PROTO(int minor, struct v4l2_buffer *buf),
|
||||
|
||||
V4L2_TRACE_EVENT(v4l2_dqbuf);
|
||||
V4L2_TRACE_EVENT(v4l2_qbuf);
|
||||
TP_ARGS(minor, buf),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, minor)
|
||||
__field(u32, index)
|
||||
__field(u32, type)
|
||||
__field(u32, bytesused)
|
||||
__field(u32, flags)
|
||||
__field(u32, field)
|
||||
__field(s64, timestamp)
|
||||
__field(u32, timecode_type)
|
||||
__field(u32, timecode_flags)
|
||||
__field(u8, timecode_frames)
|
||||
__field(u8, timecode_seconds)
|
||||
__field(u8, timecode_minutes)
|
||||
__field(u8, timecode_hours)
|
||||
__field(u8, timecode_userbits0)
|
||||
__field(u8, timecode_userbits1)
|
||||
__field(u8, timecode_userbits2)
|
||||
__field(u8, timecode_userbits3)
|
||||
__field(u32, sequence)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->minor = minor;
|
||||
__entry->index = buf->index;
|
||||
__entry->type = buf->type;
|
||||
__entry->bytesused = buf->bytesused;
|
||||
__entry->flags = buf->flags;
|
||||
__entry->field = buf->field;
|
||||
__entry->timestamp = timeval_to_ns(&buf->timestamp);
|
||||
__entry->timecode_type = buf->timecode.type;
|
||||
__entry->timecode_flags = buf->timecode.flags;
|
||||
__entry->timecode_frames = buf->timecode.frames;
|
||||
__entry->timecode_seconds = buf->timecode.seconds;
|
||||
__entry->timecode_minutes = buf->timecode.minutes;
|
||||
__entry->timecode_hours = buf->timecode.hours;
|
||||
__entry->timecode_userbits0 = buf->timecode.userbits[0];
|
||||
__entry->timecode_userbits1 = buf->timecode.userbits[1];
|
||||
__entry->timecode_userbits2 = buf->timecode.userbits[2];
|
||||
__entry->timecode_userbits3 = buf->timecode.userbits[3];
|
||||
__entry->sequence = buf->sequence;
|
||||
),
|
||||
|
||||
TP_printk("minor = %d, index = %u, type = %s, bytesused = %u, "
|
||||
"flags = %s, field = %s, timestamp = %llu, "
|
||||
"timecode = { type = %s, flags = %s, frames = %u, "
|
||||
"seconds = %u, minutes = %u, hours = %u, "
|
||||
"userbits = { %u %u %u %u } }, sequence = %u", __entry->minor,
|
||||
__entry->index, show_type(__entry->type),
|
||||
__entry->bytesused,
|
||||
show_flags(__entry->flags),
|
||||
show_field(__entry->field),
|
||||
__entry->timestamp,
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
DEFINE_EVENT(v4l2_event_class, v4l2_dqbuf,
|
||||
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)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(vb2_event_class,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, minor)
|
||||
__field(u32, queued_count)
|
||||
__field(int, owned_by_drv_count)
|
||||
__field(u32, index)
|
||||
__field(u32, type)
|
||||
__field(u32, bytesused)
|
||||
__field(u32, flags)
|
||||
__field(u32, field)
|
||||
__field(s64, timestamp)
|
||||
__field(u32, timecode_type)
|
||||
__field(u32, timecode_flags)
|
||||
__field(u8, timecode_frames)
|
||||
__field(u8, timecode_seconds)
|
||||
__field(u8, timecode_minutes)
|
||||
__field(u8, timecode_hours)
|
||||
__field(u8, timecode_userbits0)
|
||||
__field(u8, timecode_userbits1)
|
||||
__field(u8, timecode_userbits2)
|
||||
__field(u8, timecode_userbits3)
|
||||
__field(u32, sequence)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->minor = q->owner ? q->owner->vdev->minor : -1;
|
||||
__entry->queued_count = q->queued_count;
|
||||
__entry->owned_by_drv_count =
|
||||
atomic_read(&q->owned_by_drv_count);
|
||||
__entry->index = vb->v4l2_buf.index;
|
||||
__entry->type = vb->v4l2_buf.type;
|
||||
__entry->bytesused = vb->v4l2_planes[0].bytesused;
|
||||
__entry->flags = vb->v4l2_buf.flags;
|
||||
__entry->field = vb->v4l2_buf.field;
|
||||
__entry->timestamp = timeval_to_ns(&vb->v4l2_buf.timestamp);
|
||||
__entry->timecode_type = vb->v4l2_buf.timecode.type;
|
||||
__entry->timecode_flags = vb->v4l2_buf.timecode.flags;
|
||||
__entry->timecode_frames = vb->v4l2_buf.timecode.frames;
|
||||
__entry->timecode_seconds = vb->v4l2_buf.timecode.seconds;
|
||||
__entry->timecode_minutes = vb->v4l2_buf.timecode.minutes;
|
||||
__entry->timecode_hours = vb->v4l2_buf.timecode.hours;
|
||||
__entry->timecode_userbits0 = vb->v4l2_buf.timecode.userbits[0];
|
||||
__entry->timecode_userbits1 = vb->v4l2_buf.timecode.userbits[1];
|
||||
__entry->timecode_userbits2 = vb->v4l2_buf.timecode.userbits[2];
|
||||
__entry->timecode_userbits3 = vb->v4l2_buf.timecode.userbits[3];
|
||||
__entry->sequence = vb->v4l2_buf.sequence;
|
||||
),
|
||||
|
||||
TP_printk("minor = %d, queued = %u, owned_by_drv = %d, index = %u, "
|
||||
"type = %s, bytesused = %u, flags = %s, field = %s, "
|
||||
"timestamp = %llu, timecode = { type = %s, flags = %s, "
|
||||
"frames = %u, seconds = %u, minutes = %u, hours = %u, "
|
||||
"userbits = { %u %u %u %u } }, sequence = %u", __entry->minor,
|
||||
__entry->queued_count,
|
||||
__entry->owned_by_drv_count,
|
||||
__entry->index, show_type(__entry->type),
|
||||
__entry->bytesused,
|
||||
show_flags(__entry->flags),
|
||||
show_field(__entry->field),
|
||||
__entry->timestamp,
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_buf_done,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_buf_queue,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_dqbuf,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_qbuf,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
||||
#endif /* if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) */
|
||||
|
||||
|
Reference in New Issue
Block a user