| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Broadcom BM2835 V4L2 driver |
| * |
| * Copyright © 2013 Raspberry Pi (Trading) Ltd. |
| * |
| * Authors: Vincent Sanders <vincent.sanders@collabora.co.uk> |
| * Dave Stevenson <dsteve@broadcom.com> |
| * Simon Mellor <simellor@broadcom.com> |
| * Luke Diamand <luked@broadcom.com> |
| * |
| * MMAL structures |
| * |
| */ |
| |
| #define MMAL_FOURCC(a, b, c, d) ((a) | (b << 8) | (c << 16) | (d << 24)) |
| #define MMAL_MAGIC MMAL_FOURCC('m', 'm', 'a', 'l') |
| |
| /** Special value signalling that time is not known */ |
| #define MMAL_TIME_UNKNOWN BIT_ULL(63) |
| |
| struct mmal_msg_context; |
| |
| /* mapping between v4l and mmal video modes */ |
| struct mmal_fmt { |
| char *name; |
| u32 fourcc; /* v4l2 format id */ |
| int flags; /* v4l2 flags field */ |
| u32 mmal; |
| int depth; |
| u32 mmal_component; /* MMAL component index to be used to encode */ |
| u32 ybbp; /* depth of first Y plane for planar formats */ |
| bool remove_padding; /* Does the GPU have to remove padding, |
| * or can we do hide padding via bytesperline. |
| */ |
| }; |
| |
| /* buffer for one video frame */ |
| struct mmal_buffer { |
| /* v4l buffer data -- must be first */ |
| struct vb2_v4l2_buffer vb; |
| |
| /* list of buffers available */ |
| struct list_head list; |
| |
| void *buffer; /* buffer pointer */ |
| unsigned long buffer_size; /* size of allocated buffer */ |
| |
| struct mmal_msg_context *msg_context; |
| }; |
| |
| /* */ |
| struct mmal_colourfx { |
| s32 enable; |
| u32 u; |
| u32 v; |
| }; |