1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Broadcom BM2835 V4L2 driver
5 * Copyright © 2013 Raspberry Pi (Trading) Ltd.
7 * Authors: Vincent Sanders @ Collabora
8 * Dave Stevenson @ Broadcom
9 * (now dave.stevenson@raspberrypi.org)
10 * Simon Mellor @ Broadcom
11 * Luke Diamand @ Broadcom
19 #define MMAL_FOURCC(a, b, c, d) ((a) | (b << 8) | (c << 16) | (d << 24))
20 #define MMAL_MAGIC MMAL_FOURCC('m', 'm', 'a', 'l')
22 /** Special value signalling that time is not known */
23 #define MMAL_TIME_UNKNOWN BIT_ULL(63)
25 struct mmal_msg_context;
27 /* mapping between v4l and mmal video modes */
30 u32 fourcc; /* v4l2 format id */
31 int flags; /* v4l2 flags field */
34 u32 mmal_component; /* MMAL component index to be used to encode */
35 u32 ybbp; /* depth of first Y plane for planar formats */
36 bool remove_padding; /* Does the GPU have to remove padding,
37 * or can we do hide padding via bytesperline.
41 /* buffer for one video frame */
43 /* v4l buffer data -- must be first */
44 struct vb2_v4l2_buffer vb;
46 /* list of buffers available */
47 struct list_head list;
49 void *buffer; /* buffer pointer */
50 unsigned long buffer_size; /* size of allocated buffer */
52 struct mmal_msg_context *msg_context;
56 struct mmal_colourfx {