]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/media/v4l2-core/videobuf2-core.c
Merge tag 'usb-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
[karo-tx-linux.git] / drivers / media / v4l2-core / videobuf2-core.c
index ff8953ae52d142e654f30548d5ddf7bf08c45690..5d016f496e0ed3530bc525cdeceaa2e606693046 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/kthread.h>
 
 #include <media/videobuf2-core.h>
+#include <media/v4l2-mc.h>
 
 #include <trace/events/vb2.h>
 
@@ -1227,6 +1228,7 @@ static int __qbuf_dmabuf(struct vb2_buffer *vb, const void *pb)
                if (planes[plane].length < vb->planes[plane].min_length) {
                        dprintk(1, "invalid dmabuf length for plane %d\n",
                                plane);
+                       dma_buf_put(dbuf);
                        ret = -EINVAL;
                        goto err;
                }
@@ -1886,6 +1888,9 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type)
         * are available.
         */
        if (q->queued_count >= q->min_buffers_needed) {
+               ret = v4l_vb2q_enable_media_source(q);
+               if (ret)
+                       return ret;
                ret = vb2_start_streaming(q);
                if (ret) {
                        __vb2_queue_cancel(q);