Merge tag 'media/v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: "Media updates, including: - Lots of improvements at the kABI documentation - Split of Videobuf2 into a common part and a V4L2 specific one - Split of the VB2 tracing events into a separate header file - s5p-mfc got support for Exynos 5433 - v4l2 fixes for 64-bits alignment when running 32 bits userspace on ARM - Added support for SDR radio transmitter at core, vivid and hackrf drivers - Some y2038 fixups - Some improvements at V4L2 colorspace support - saa7164 converted to use the V4L2 core control framework - several new boards additions, cleanups and fixups PS: There are two patches for scripts/kernel-doc that are needed by the documentation patches on Media. Jon is OK on merging those via my tree" * tag 'media/v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (146 commits) [media] c8sectpfe: Remove select on CONFIG_FW_LOADER_USER_HELPER_FALLBACK [media] DocBook media: update copyright/version numbers [media] ivtv: Convert to get_user_pages_unlocked() [media] media/v4l2-ctrls: fix setting autocluster to manual with VIDIOC_S_CTRL [media] DocBook media: Fix a typo in encoder cmd [media] DocBook: add SDR specific info to G_MODULATOR / S_MODULATOR [media] DocBook: add SDR specific info to G_TUNER / S_TUNER [media] hackrf: do not set human readable name for formats [media] hackrf: add support for transmitter [media] hackrf: switch to single function which configures everything [media] hackrf: add control for RF amplifier [media] DocBook: add modulator type field [media] v4l: add type field to v4l2_modulator struct [media] DocBook: document SDR transmitter [media] v4l2: add support for SDR transmitter [media] DocBook: document tuner RF gain control [media] v4l2: add RF gain control [media] v4l2: rename V4L2_TUNER_ADC to V4L2_TUNER_SDR [media] media/vivid-osd: fix info leak in ioctl [media] media: videobuf2: Move v4l2-specific stuff to videobuf2-v4l2 ...
Этот коммит содержится в:
@@ -5,6 +5,7 @@
|
||||
#define _TRACE_V4L2_H
|
||||
|
||||
#include <linux/tracepoint.h>
|
||||
#include <media/videobuf2-v4l2.h>
|
||||
|
||||
/* Enums require being exported to userspace, for user tool parsing */
|
||||
#undef EM
|
||||
@@ -27,6 +28,7 @@
|
||||
EM( V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, "VIDEO_CAPTURE_MPLANE" ) \
|
||||
EM( V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, "VIDEO_OUTPUT_MPLANE" ) \
|
||||
EM( V4L2_BUF_TYPE_SDR_CAPTURE, "SDR_CAPTURE" ) \
|
||||
EM( V4L2_BUF_TYPE_SDR_OUTPUT, "SDR_OUTPUT" ) \
|
||||
EMe(V4L2_BUF_TYPE_PRIVATE, "PRIVATE" )
|
||||
|
||||
SHOW_TYPE
|
||||
@@ -174,17 +176,12 @@ DEFINE_EVENT(v4l2_event_class, v4l2_qbuf,
|
||||
TP_ARGS(minor, buf)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(vb2_event_class,
|
||||
DECLARE_EVENT_CLASS(vb2_v4l2_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)
|
||||
@@ -202,38 +199,30 @@ DECLARE_EVENT_CLASS(vb2_event_class,
|
||||
),
|
||||
|
||||
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;
|
||||
struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
|
||||
struct v4l2_fh *owner = q->owner;
|
||||
|
||||
__entry->minor = owner ? owner->vdev->minor : -1;
|
||||
__entry->flags = vbuf->flags;
|
||||
__entry->field = vbuf->field;
|
||||
__entry->timestamp = timeval_to_ns(&vbuf->timestamp);
|
||||
__entry->timecode_type = vbuf->timecode.type;
|
||||
__entry->timecode_flags = vbuf->timecode.flags;
|
||||
__entry->timecode_frames = vbuf->timecode.frames;
|
||||
__entry->timecode_seconds = vbuf->timecode.seconds;
|
||||
__entry->timecode_minutes = vbuf->timecode.minutes;
|
||||
__entry->timecode_hours = vbuf->timecode.hours;
|
||||
__entry->timecode_userbits0 = vbuf->timecode.userbits[0];
|
||||
__entry->timecode_userbits1 = vbuf->timecode.userbits[1];
|
||||
__entry->timecode_userbits2 = vbuf->timecode.userbits[2];
|
||||
__entry->timecode_userbits3 = vbuf->timecode.userbits[3];
|
||||
__entry->sequence = vbuf->sequence;
|
||||
),
|
||||
|
||||
TP_printk("minor = %d, queued = %u, owned_by_drv = %d, index = %u, "
|
||||
"type = %s, bytesused = %u, flags = %s, field = %s, "
|
||||
TP_printk("minor=%d 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,
|
||||
@@ -251,22 +240,22 @@ DECLARE_EVENT_CLASS(vb2_event_class,
|
||||
)
|
||||
)
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_buf_done,
|
||||
DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_buf_done,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_buf_queue,
|
||||
DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_buf_queue,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_dqbuf,
|
||||
DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_dqbuf,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(vb2_event_class, vb2_qbuf,
|
||||
DEFINE_EVENT(vb2_v4l2_event_class, vb2_v4l2_qbuf,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb)
|
||||
);
|
||||
|
65
include/trace/events/vb2.h
Обычный файл
65
include/trace/events/vb2.h
Обычный файл
@@ -0,0 +1,65 @@
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM vb2
|
||||
|
||||
#if !defined(_TRACE_VB2_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define _TRACE_VB2_H
|
||||
|
||||
#include <linux/tracepoint.h>
|
||||
#include <media/videobuf2-core.h>
|
||||
|
||||
DECLARE_EVENT_CLASS(vb2_event_class,
|
||||
TP_PROTO(struct vb2_queue *q, struct vb2_buffer *vb),
|
||||
TP_ARGS(q, vb),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(void *, owner)
|
||||
__field(u32, queued_count)
|
||||
__field(int, owned_by_drv_count)
|
||||
__field(u32, index)
|
||||
__field(u32, type)
|
||||
__field(u32, bytesused)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->owner = q->owner;
|
||||
__entry->queued_count = q->queued_count;
|
||||
__entry->owned_by_drv_count =
|
||||
atomic_read(&q->owned_by_drv_count);
|
||||
__entry->index = vb->index;
|
||||
__entry->type = vb->type;
|
||||
__entry->bytesused = vb->planes[0].bytesused;
|
||||
),
|
||||
|
||||
TP_printk("owner = %p, queued = %u, owned_by_drv = %d, index = %u, "
|
||||
"type = %u, bytesused = %u", __entry->owner,
|
||||
__entry->queued_count,
|
||||
__entry->owned_by_drv_count,
|
||||
__entry->index, __entry->type,
|
||||
__entry->bytesused
|
||||
)
|
||||
)
|
||||
|
||||
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_VB2_H) || defined(TRACE_HEADER_MULTI_READ) */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <trace/define_trace.h>
|
Ссылка в новой задаче
Block a user