[media] em28xx: fill in readbuffers and fix incorrect return code
authorHans Verkuil <hans.verkuil@cisco.com>
Fri, 7 Sep 2012 09:16:03 +0000 (06:16 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 5 Jan 2013 02:52:36 +0000 (00:52 -0200)
g/s_parm should fill in readbuffers.
For non-webcams s_parm should return -ENOTTY instead of -EINVAL.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/em28xx/em28xx-video.c

index acdb434..a91a248 100644 (file)
@@ -972,6 +972,7 @@ static int vidioc_g_parm(struct file *file, void *priv,
        if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
                return -EINVAL;
 
+       p->parm.capture.readbuffers = EM28XX_MIN_BUF;
        if (dev->board.is_webcam)
                rc = v4l2_device_call_until_err(&dev->v4l2_dev, 0,
                                                video, g_parm, p);
@@ -989,11 +990,12 @@ static int vidioc_s_parm(struct file *file, void *priv,
        struct em28xx      *dev = fh->dev;
 
        if (!dev->board.is_webcam)
-               return -EINVAL;
+               return -ENOTTY;
 
        if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
                return -EINVAL;
 
+       p->parm.capture.readbuffers = EM28XX_MIN_BUF;
        return v4l2_device_call_until_err(&dev->v4l2_dev, 0, video, s_parm, p);
 }