bcm27xx: add support for linux v5.15
[openwrt/staging/chunkeey.git] / target / linux / bcm27xx / patches-5.15 / 950-0131-staging-vc04_services-Support-sending-data-to-MMAL-p.patch
1 From ae46b4dee88f388ab0a09487718e0dad516cb5de 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 @@ -422,11 +422,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 specific data */
42 memset(&m.u.buffer_from_host.buffer_header_type_specific, 0,