#define USE_VCHIQ_ARM
#include "interface/vchi/vchi.h"
-@@ -424,8 +427,13 @@ buffer_from_host(struct vchiq_mmal_insta
+@@ -425,8 +428,13 @@ buffer_from_host(struct vchiq_mmal_insta
/* buffer header */
m.u.buffer_from_host.buffer_header.cmd = 0;
m.u.buffer_from_host.buffer_header.alloc_size = buf->buffer_size;
if (port->type == MMAL_PORT_TYPE_OUTPUT) {
m.u.buffer_from_host.buffer_header.length = 0;
-@@ -590,6 +598,22 @@ static void buffer_to_host_cb(struct vch
+@@ -591,6 +599,22 @@ static void buffer_to_host_cb(struct vch
msg_context->u.bulk.status = msg->h.status;
} else if (msg->u.buffer_from_host.buffer_header.length == 0) {
/* empty buffer */
if (msg->u.buffer_from_host.buffer_header.flags &
-@@ -1537,6 +1561,9 @@ int vchiq_mmal_port_parameter_set(struct
+@@ -1538,6 +1562,9 @@ int vchiq_mmal_port_parameter_set(struct
mutex_unlock(&instance->vchiq_mutex);
return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_parameter_set);
-@@ -1705,6 +1732,31 @@ int vchiq_mmal_submit_buffer(struct vchi
+@@ -1706,6 +1733,31 @@ int vchiq_mmal_submit_buffer(struct vchi
unsigned long flags = 0;
int ret;
ret = buffer_from_host(instance, port, buffer);
if (ret == -EINVAL) {
/* Port is disabled. Queue for when it is enabled. */
-@@ -1738,6 +1790,16 @@ int mmal_vchi_buffer_cleanup(struct mmal
+@@ -1739,6 +1791,16 @@ int mmal_vchi_buffer_cleanup(struct mmal
release_msg_context(msg_context);
buf->msg_context = NULL;