diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0270-staging-vc04_services-Support-sending-data-to-MMAL-p.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0270-staging-vc04_services-Support-sending-data-to-MMAL-p.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0270-staging-vc04_services-Support-sending-data-to-MMAL-p.patch b/target/linux/brcm2708/patches-4.19/950-0270-staging-vc04_services-Support-sending-data-to-MMAL-p.patch new file mode 100644 index 0000000000..c1e5dd3792 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0270-staging-vc04_services-Support-sending-data-to-MMAL-p.patch @@ -0,0 +1,42 @@ +From c117bd7886d4d4079f33fb27b07ddd9add7310ee Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.org> +Date: Mon, 24 Sep 2018 18:26:02 +0100 +Subject: [PATCH 270/725] staging: vc04_services: Support sending data to MMAL + ports + +Add the ability to send data to ports. This only supports +zero copy mode as the required bulk transfer setup calls +are not done. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> +--- + .../vc04_services/vchiq-mmal/mmal-vchiq.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c ++++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +@@ -428,11 +428,19 @@ buffer_from_host(struct vchiq_mmal_insta + m.u.buffer_from_host.buffer_header.data = + (u32)(unsigned long)buf->buffer; + m.u.buffer_from_host.buffer_header.alloc_size = buf->buffer_size; +- m.u.buffer_from_host.buffer_header.length = 0; /* nothing used yet */ +- m.u.buffer_from_host.buffer_header.offset = 0; /* no offset */ +- m.u.buffer_from_host.buffer_header.flags = 0; /* no flags */ +- m.u.buffer_from_host.buffer_header.pts = MMAL_TIME_UNKNOWN; +- m.u.buffer_from_host.buffer_header.dts = MMAL_TIME_UNKNOWN; ++ if (port->type == MMAL_PORT_TYPE_OUTPUT) { ++ m.u.buffer_from_host.buffer_header.length = 0; ++ m.u.buffer_from_host.buffer_header.offset = 0; ++ m.u.buffer_from_host.buffer_header.flags = 0; ++ m.u.buffer_from_host.buffer_header.pts = MMAL_TIME_UNKNOWN; ++ m.u.buffer_from_host.buffer_header.dts = MMAL_TIME_UNKNOWN; ++ } else { ++ m.u.buffer_from_host.buffer_header.length = buf->length; ++ m.u.buffer_from_host.buffer_header.offset = 0; ++ m.u.buffer_from_host.buffer_header.flags = buf->mmal_flags; ++ m.u.buffer_from_host.buffer_header.pts = buf->pts; ++ m.u.buffer_from_host.buffer_header.dts = buf->dts; ++ } + + /* clear buffer type sepecific data */ + memset(&m.u.buffer_from_host.buffer_header_type_specific, 0, |