diff options
Diffstat (limited to 'drivers/media/v4l2-core/v4l2-ioctl.c')
| -rw-r--r-- | drivers/media/v4l2-core/v4l2-ioctl.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c index faac2f4e0f3a..b08407225db1 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -2339,7 +2339,7 @@ static long __video_do_ioctl(struct file *file,  	const struct v4l2_ioctl_info *info;  	void *fh = file->private_data;  	struct v4l2_fh *vfh = NULL; -	int debug = vfd->debug; +	int dev_debug = vfd->dev_debug;  	long ret = -ENOTTY;  	if (ops == NULL) { @@ -2388,11 +2388,15 @@ static long __video_do_ioctl(struct file *file,  	}  done: -	if (debug) { +	if (dev_debug & (V4L2_DEV_DEBUG_IOCTL | V4L2_DEV_DEBUG_IOCTL_ARG)) { +		if (!(dev_debug & V4L2_DEV_DEBUG_STREAMING) && +		    (cmd == VIDIOC_QBUF || cmd == VIDIOC_DQBUF)) +			return ret; +  		v4l_printk_ioctl(video_device_node_name(vfd), cmd);  		if (ret < 0)  			pr_cont(": error %ld", ret); -		if (debug == V4L2_DEBUG_IOCTL) +		if (!(dev_debug & V4L2_DEV_DEBUG_IOCTL_ARG))  			pr_cont("\n");  		else if (_IOC_DIR(cmd) == _IOC_NONE)  			info->debug(arg, write_only);  |