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>
This commit is contained in:
Dave Stevenson
2018-09-24 18:26:02 +01:00
committed by Dom Cobley
parent 85ff298df2
commit d1bfdde817

View File

@@ -420,11 +420,19 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
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 specific data */
memset(&m.u.buffer_from_host.buffer_header_type_specific, 0,