On Wed 27 June 2012 11:59:06 Laurent Pinchart wrote: > Hi Hans, > > Thanks for the patch. > > On Friday 22 June 2012 14:21:26 Hans Verkuil wrote: > > From: Hans Verkuil <hans.verkuil@xxxxxxxxx> > > > > Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> > > --- > > drivers/media/video/v4l2-dev.c | 25 ++++++++++++++++++++++++- > > 1 file changed, 24 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/media/video/v4l2-dev.c b/drivers/media/video/v4l2-dev.c > > index 1b34360..b51bee9 100644 > > --- a/drivers/media/video/v4l2-dev.c > > +++ b/drivers/media/video/v4l2-dev.c > > @@ -305,6 +305,9 @@ static ssize_t v4l2_read(struct file *filp, char __user > > *buf, ret = vdev->fops->read(filp, buf, sz, off); > > if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags)) > > mutex_unlock(vdev->lock); > > + if (vdev->debug) > > + printk(KERN_DEBUG "%s: read: %zd (%d)\n", > > + video_device_node_name(vdev), sz, ret); > > Would it make sense to introduce a v4l_dbg macro ? BTW, what was the outcome > of the pr_ vs. dev_ tests ? When using e.g. dev_info you would get 'video4linux video0' as prefix, which is a mouthful. So I decided against using it. I've thought about adding a v4l_dbg macro, but I decided against it. This use of KERN_DEBUG is quite unusual: usually any _dbg macro is either compiled away if DEBUG isn't defined, uses dynamic printk, or uses a debug variable somewhere. In this case you don't want any of those, you really want to print a message unconditionally to the log at log level KERN_DEBUG. Regards, Hans > > > return ret; > > } > > > > @@ -323,6 +326,9 @@ static ssize_t v4l2_write(struct file *filp, const char > > __user *buf, ret = vdev->fops->write(filp, buf, sz, off); > > if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags)) > > mutex_unlock(vdev->lock); > > + if (vdev->debug) > > + printk(KERN_DEBUG "%s: write: %zd (%d)\n", > > + video_device_node_name(vdev), sz, ret); > > return ret; > > } > > > > @@ -339,6 +345,9 @@ static unsigned int v4l2_poll(struct file *filp, struct > > poll_table_struct *poll) ret = vdev->fops->poll(filp, poll); > > if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags)) > > mutex_unlock(vdev->lock); > > + if (vdev->debug) > > + printk(KERN_DEBUG "%s: poll: %08x\n", > > + video_device_node_name(vdev), ret); > > return ret; > > } > > > > @@ -403,12 +412,17 @@ static unsigned long v4l2_get_unmapped_area(struct > > file *filp, unsigned long flags) > > { > > struct video_device *vdev = video_devdata(filp); > > + int ret; > > > > if (!vdev->fops->get_unmapped_area) > > return -ENOSYS; > > if (!video_is_registered(vdev)) > > return -ENODEV; > > - return vdev->fops->get_unmapped_area(filp, addr, len, pgoff, flags); > > + ret = vdev->fops->get_unmapped_area(filp, addr, len, pgoff, flags); > > + if (vdev->debug) > > + printk(KERN_DEBUG "%s: get_unmapped_area (%d)\n", > > + video_device_node_name(vdev), ret); > > + return ret; > > } > > #endif > > > > @@ -426,6 +440,9 @@ static int v4l2_mmap(struct file *filp, struct > > vm_area_struct *vm) ret = vdev->fops->mmap(filp, vm); > > if (test_bit(V4L2_FL_LOCK_ALL_FOPS, &vdev->flags)) > > mutex_unlock(vdev->lock); > > + if (vdev->debug) > > + printk(KERN_DEBUG "%s: mmap (%d)\n", > > + video_device_node_name(vdev), ret); > > return ret; > > } > > > > @@ -464,6 +481,9 @@ err: > > /* decrease the refcount in case of an error */ > > if (ret) > > video_put(vdev); > > + if (vdev->debug) > > + printk(KERN_DEBUG "%s: open (%d)\n", > > + video_device_node_name(vdev), ret); > > return ret; > > } > > > > @@ -483,6 +503,9 @@ static int v4l2_release(struct inode *inode, struct file > > *filp) /* decrease the refcount unconditionally since the release() > > return value is ignored. */ > > video_put(vdev); > > + if (vdev->debug) > > + printk(KERN_DEBUG "%s: release\n", > > + video_device_node_name(vdev)); > > return ret; > > } > -- 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