Thread (3 messages) 3 messages, 2 authors, 2012-02-28

[question] v4l read() operation

From: Dave Hylands <hidden>
Date: 2012-02-25 23:14:37
Also in: linux-media

Hi Ezequiel

2012/2/25 Ezequiel Garc?a [off-list ref]:
Hi,

If I register a video device with this fops:

static const struct v4l2_file_operations v4l2_fops = {
? ? ? ?.owner ? ? ?= THIS_MODULE,
? ? ? ?.open ? ? ? ?= xxx_open,
? ? ? ?.unlocked_ioctl = xxx_unlocked_ioctl,
? ? ? ?.poll ? ? ? ? ? = xxx_poll,
? ? ? ?.mmap ? ? ?= xxx_mmap,
};

then if I "cat" the device

$ cat /dev/video0

Who is supporting read() ?

I thought it could be v4l2_read(),
however this function seems to return EINVAL:

static ssize_t v4l2_read(struct file *filp, char __user *buf,
? ? ? ? ? ? ? ?size_t sz, loff_t *off)
{
? ? ? ?struct video_device *vdev = video_devdata(filp);
? ? ? ?int ret = -ENODEV;

? ? ? ?if (!vdev->fops->read)
? ? ? ? ? ? ? ?return -EINVAL;
? ? ? ?if (vdev->lock && mutex_lock_interruptible(vdev->lock))
? ? ? ? ? ? ? ?return -ERESTARTSYS;
? ? ? ?if (video_is_registered(vdev))
? ? ? ? ? ? ? ?ret = vdev->fops->read(filp, buf, sz, off);
? ? ? ?if (vdev->lock)
? ? ? ? ? ? ? ?mutex_unlock(vdev->lock);
? ? ? ?return ret;
}
I'm not all that familiar with v4l, but based on what you've posted,
you need to populate the read routine in your v4l2_fops structure to
support read.

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.davehylands.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help