From: Ondrej Zary Date: Fri, 30 Aug 2013 20:54:24 +0000 (-0300) Subject: upstream: [media] gspca: Support variable resolution X-Git-Tag: submit/tizen/20141121.110247~871 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1346e84a832a6425741572b97d4d152c044321f2;p=platform%2Fkernel%2Flinux-3.10.git upstream: [media] gspca: Support variable resolution Add variable resolution support to gspca by allowing subdrivers to specify try_fmt and enum_framesizes functions. Signed-off-by: Ondrej Zary Signed-off-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/usb/gspca/gspca.c b/drivers/media/usb/gspca/gspca.c index 290dabc..f3a7ace 100644 --- a/drivers/media/usb/gspca/gspca.c +++ b/drivers/media/usb/gspca/gspca.c @@ -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: