camera/v4l2 fixes
authorRob Clark <rob@ti.com>
Tue, 31 Jan 2012 16:27:01 +0000 (10:27 -0600)
committerRob Clark <rob@ti.com>
Tue, 31 Jan 2012 16:27:01 +0000 (10:27 -0600)
cam-setup.sh
util/v4l2.c

index dc47da5146d19ba4aee5b631b5c33abb6d10b150..cd9a8d67e867bed5da0548bf0509af66a2efff9a 100755 (executable)
@@ -4,7 +4,7 @@
 /usr/bin/media-ctl -d /dev/media0 -r -l '"OMAP4 ISS CSI2a":1 -> "OMAP4 ISS CSI2a output":0 [1]'
 
 # set formats:
-/usr/bin/media-ctl -d /dev/media0 -r -f '"ov5640 3-003c":0 [UYVY 640x480]','"OMAP4 ISS CSI2a":0 [UYVY 640x480]'
+/usr/bin/media-ctl -d /dev/media0 -f '"ov5640 3-003c":0 [UYVY 640x480]','"OMAP4 ISS CSI2a":0 [UYVY 640x480]'
 
 # print setup:
 /usr/bin/media-ctl -d /dev/media0 -p
index 77249f048fac3c888f1f08c145687d69461fa679..b161448a35105b0239818f2fb10b023575a58677 100644 (file)
@@ -330,6 +330,7 @@ v4l2_reqbufs(struct v4l2 *v4l2, struct buffer **bufs, uint32_t n)
        }
 
        v4l2->nbufs = reqbuf.count;
+       v4l2->bufs = bufs;
        v4l2->v4l2bufs = calloc(v4l2->nbufs, sizeof(*v4l2->v4l2bufs));
        if (!v4l2->v4l2bufs) {
                ERROR("allocation failed");
@@ -409,6 +410,7 @@ v4l2_qbuf(struct v4l2 *v4l2, struct buffer *buf)
        MSG("QBUF: idx=%d, fd=%d", v4l2buf->index, v4l2buf->m.fd);
 
        ret = ioctl(v4l2->fd, VIDIOC_QBUF, v4l2buf);
+       v4l2buf->m.fd = omap_bo_dmabuf(buf->bo[0]);
        if (ret) {
                ERROR("VIDIOC_QBUF failed: %s (%d)", strerror(errno), ret);
        }
@@ -431,16 +433,11 @@ v4l2_dqbuf(struct v4l2 *v4l2)
                ERROR("VIDIOC_DQBUF failed: %s (%d)", strerror(errno), ret);
        }
 
-       MSG("DQBUF: idx=%d, fd=%d", v4l2buf.index, v4l2buf.m.fd);
-
        buf = v4l2->bufs[v4l2buf.index];
 
        assert(buf->nbo == 1); /* TODO add multi-planar support */
 
-       if (omap_bo_dmabuf(buf->bo[0]) != v4l2buf.m.fd) {
-               MSG("WARNING: camera gave us incorrect buffer: %d vs %d",
-                               omap_bo_dmabuf(buf->bo[0]), v4l2buf.m.fd);
-       }
+       MSG("DQBUF: idx=%d, fd=%d", v4l2buf.index, omap_bo_dmabuf(buf->bo[0]));
 
        return buf;
 }