Hi Hans, On Mon, Mar 31, 2014 at 8:34 PM, Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > Hi Prabhakar, > > This looks really nice! > Writing a video driver has become really easy with almost 90% of work done by v4l core itself :) > I'll do a full review on Friday, but in the meantime can you post the output OK. > of 'v4l2-compliance -s' using the latest v4l2-compliance version? I've made > some commits today, so you need to do a git pull of v4l-utils.git. > I had compilation failures for v4l2-compliance following is the patch fixing that, (I am facing some issues in cross compilation once done I'll post the o/p of it) --------------X------------X------------------- >From 14029f4ca57be5f2b0ec053d375655ca5a60f698 Mon Sep 17 00:00:00 2001 From: "Lad, Prabhakar" <prabhakar.csengg@xxxxxxxxx> Date: Mon, 31 Mar 2014 22:24:33 +0530 Subject: [PATCH] v4l-utils: v4l-compliance: fix compilation this patch fixes following build error, In file included from v4l2-compliance.h:31, from v4l2-compliance.cpp:37: ./cv4l-helpers.h:9: error: a class-key must be used when declaring a friend ./cv4l-helpers.h:9: error: friend declaration does not name a class or function ./cv4l-helpers.h: In member function 'int cv4l_buffer::querybuf(const cv4l_queue&, unsigned int)': ./cv4l-helpers.h:103: error: 'v4l_fd* cv4l_queue::fd' is protected ./cv4l-helpers.h:213: error: within this context ./cv4l-helpers.h: In member function 'int cv4l_buffer::dqbuf(const cv4l_queue&)': ./cv4l-helpers.h:103: error: 'v4l_fd* cv4l_queue::fd' is protected ./cv4l-helpers.h:221: error: within this context ./cv4l-helpers.h: In member function 'int cv4l_buffer::qbuf(const cv4l_queue&)': ./cv4l-helpers.h:103: error: 'v4l_fd* cv4l_queue::fd' is protected ./cv4l-helpers.h:229: error: within this context ./cv4l-helpers.h: In member function 'int cv4l_buffer::prepare_buf(const cv4l_queue&)': ./cv4l-helpers.h:103: error: 'v4l_fd* cv4l_queue::fd' is protected ./cv4l-helpers.h:237: error: within this context v4l2-compliance.cpp: In function 'void v4l_fd_test_init(v4l_fd*, int)': v4l2-compliance.cpp:132: error: invalid conversion from 'void* (*)(void*, size_t, int, int, int, int64_t)' to 'void* (*)(void*, size_t, int, int, int, off_t)' Signed-off-by: Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx> --- utils/v4l2-compliance/cv4l-helpers.h | 2 +- utils/v4l2-compliance/v4l2-compliance.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/v4l2-compliance/cv4l-helpers.h b/utils/v4l2-compliance/cv4l-helpers.h index 2423ef9..e2729a6 100644 --- a/utils/v4l2-compliance/cv4l-helpers.h +++ b/utils/v4l2-compliance/cv4l-helpers.h @@ -6,7 +6,7 @@ class cv4l_buffer; class cv4l_queue : v4l_queue { - friend cv4l_buffer; + friend class cv4l_buffer; public: cv4l_queue(v4l_fd *_fd, unsigned type = V4L2_BUF_TYPE_VIDEO_CAPTURE, unsigned memory = V4L2_MEMORY_MMAP) diff --git a/utils/v4l2-compliance/v4l2-compliance.h b/utils/v4l2-compliance/v4l2-compliance.h index f2f7072..b6d4dae 100644 --- a/utils/v4l2-compliance/v4l2-compliance.h +++ b/utils/v4l2-compliance/v4l2-compliance.h @@ -137,7 +137,7 @@ static inline int test_ioctl(int fd, unsigned long cmd, ...) } static inline void *test_mmap(void *start, size_t length, int prot, int flags, - int fd, int64_t offset) + int fd, off_t offset) { return wrapper ? v4l2_mmap(start, length, prot, flags, fd, offset) : mmap(start, length, prot, flags, fd, offset); -- 1.7.9.5 > I also have a small comment below: > > On 03/31/2014 04:52 PM, Lad, Prabhakar wrote: >> From: "Lad, Prabhakar" <prabhakar.csengg@xxxxxxxxx> >> >> This patch upgrades the vpif display driver with >> v4l helpers, this patch does the following, >> >> 1: initialize the vb2 queue and context at the time of probe >> and removes context at remove() callback. >> 2: uses vb2_ioctl_*() helpers. >> 3: uses vb2_fop_*() helpers. >> 4: uses SIMPLE_DEV_PM_OPS. >> 5: uses vb2_ioctl_*() helpers. >> 6: vidioc_g/s_priority is now handled by v4l core. >> 7: removed driver specific fh and now using one provided by v4l. >> 8: fixes checkpatch warnings. >> >> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx> >> --- >> drivers/media/platform/davinci/vpif_capture.c | 916 ++++++------------------- >> drivers/media/platform/davinci/vpif_capture.h | 32 +- >> 2 files changed, 229 insertions(+), 719 deletions(-) >> >> diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c >> index 8dea0b8..76c15b3 100644 >> --- a/drivers/media/platform/davinci/vpif_capture.c >> +++ b/drivers/media/platform/davinci/vpif_capture.c > > ... > >> static int vpif_buffer_init(struct vb2_buffer *vb) >> { >> - struct vpif_cap_buffer *buf = container_of(vb, >> - struct vpif_cap_buffer, vb); >> + struct vpif_cap_buffer *buf = to_vpif_buffer(vb); >> >> INIT_LIST_HEAD(&buf->list); >> >> return 0; >> } > > Is this really necessary? I think vpif_buffer_init can just be removed. > Ditto for vpif_display.c. > Yes can be dropped, will remove in next version. Thanks, --Prabhakar Lad -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html