Commit 452c0fb4 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

V4L/DVB (5569): Fix: v4l1_compat should be called only if V4L1_COMPAT



Added also some explanations about V4L1 handling

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 1088b137
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -438,6 +438,12 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
	}

#ifdef CONFIG_VIDEO_V4L1_COMPAT
	/***********************************************************
	 Handles calls to the obsoleted V4L1 API
	 Due to the nature of VIDIOCGMBUF, each driver that supports
	 V4L1 should implement its own handler for this ioctl.
	 ***********************************************************/

	/* --- streaming capture ------------------------------------- */
	if (cmd == VIDIOCGMBUF) {
		struct video_mbuf *p=arg;
@@ -453,11 +459,17 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
						(unsigned long)p->offsets);
		return ret;
	}
#endif

	/********************************************************
	 All other V4L1 calls are handled by v4l1_compat module.
	 Those calls will be translated into V4L2 calls, and
	 __video_do_ioctl will be called again, with one or more
	 V4L2 ioctls.
	 ********************************************************/
	if (_IOC_TYPE(cmd)=='v')
		return v4l_compat_translate_ioctl(inode,file,cmd,arg,
						__video_do_ioctl);
#endif

	switch(cmd) {
	/* --- capabilities ------------------------------------------ */