upstream: [media] gspca: Support variable resolution
authorOndrej Zary <linux@rainbow-software.org>
Fri, 30 Aug 2013 20:54:24 +0000 (17:54 -0300)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:58:55 +0000 (11:58 +0900)
Add variable resolution support to gspca by allowing subdrivers to
specify try_fmt and enum_framesizes functions.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/usb/gspca/gspca.c

index 290dabc..f3a7ace 100644 (file)
@@ -1182,7 +1182,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
                goto out;
        }
        gspca_dev->curr_mode = ret;
-       gspca_dev->pixfmt = gspca_dev->cam.cam_mode[ret];
+       if (gspca_dev->sd_desc->try_fmt)
+               /* subdriver try_fmt can modify format parameters */
+               gspca_dev->pixfmt = fmt->fmt.pix;
+       else
+               gspca_dev->pixfmt = gspca_dev->cam.cam_mode[ret];
 
        ret = 0;
 out: