brcm2708: update to latest patches from RPi foundation
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0238-staging-vc04_services-Support-sending-data-to-MMAL-p.patch
1 From 483bef9dcddc4bcb9f4e250d91b31361a919b7ed Mon Sep 17 00:00:00 2001
2 From: Dave Stevenson <dave.stevenson@raspberrypi.org>
3 Date: Mon, 24 Sep 2018 18:26:02 +0100
4 Subject: [PATCH] staging: vc04_services: Support sending data to MMAL
5 ports
6
7 Add the ability to send data to ports. This only supports
8 zero copy mode as the required bulk transfer setup calls
9 are not done.
10
11 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
12 ---
13 .../vc04_services/vchiq-mmal/mmal-vchiq.c | 18 +++++++++++++-----
14 1 file changed, 13 insertions(+), 5 deletions(-)
15
16 --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
17 +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
18 @@ -428,11 +428,19 @@ buffer_from_host(struct vchiq_mmal_insta
19 m.u.buffer_from_host.buffer_header.data =
20 (u32)(unsigned long)buf->buffer;
21 m.u.buffer_from_host.buffer_header.alloc_size = buf->buffer_size;
22 - m.u.buffer_from_host.buffer_header.length = 0; /* nothing used yet */
23 - m.u.buffer_from_host.buffer_header.offset = 0; /* no offset */
24 - m.u.buffer_from_host.buffer_header.flags = 0; /* no flags */
25 - m.u.buffer_from_host.buffer_header.pts = MMAL_TIME_UNKNOWN;
26 - m.u.buffer_from_host.buffer_header.dts = MMAL_TIME_UNKNOWN;
27 + if (port->type == MMAL_PORT_TYPE_OUTPUT) {
28 + m.u.buffer_from_host.buffer_header.length = 0;
29 + m.u.buffer_from_host.buffer_header.offset = 0;
30 + m.u.buffer_from_host.buffer_header.flags = 0;
31 + m.u.buffer_from_host.buffer_header.pts = MMAL_TIME_UNKNOWN;
32 + m.u.buffer_from_host.buffer_header.dts = MMAL_TIME_UNKNOWN;
33 + } else {
34 + m.u.buffer_from_host.buffer_header.length = buf->length;
35 + m.u.buffer_from_host.buffer_header.offset = 0;
36 + m.u.buffer_from_host.buffer_header.flags = buf->mmal_flags;
37 + m.u.buffer_from_host.buffer_header.pts = buf->pts;
38 + m.u.buffer_from_host.buffer_header.dts = buf->dts;
39 + }
40
41 /* clear buffer type sepecific data */
42 memset(&m.u.buffer_from_host.buffer_header_type_specific, 0,