aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/zc3xx.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2012-05-06 08:28:23 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-14 08:33:44 -0400
commitfba11fed8aad86c10cde062ba0b76e8f8551f256 (patch)
tree844493efdd911cf272adade18b01344c6b136eae /drivers/media/video/gspca/zc3xx.c
parent45432d41a2eebf5daaacb81de37fbfffc0a8faa7 (diff)
[media] gspca_zc3xx: Fix setting of jpeg quality while streaming
When the user changes the JPEG quality while the camera is streaming, the driver should not only change the JPEG headers send to userspace, but also actually tell the camera to use a different quantization table. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/zc3xx.c')
-rw-r--r--drivers/media/video/gspca/zc3xx.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c
index 8f21bae46ef8..33a2aab1dca1 100644
--- a/drivers/media/video/gspca/zc3xx.c
+++ b/drivers/media/video/gspca/zc3xx.c
@@ -5923,6 +5923,8 @@ static void setquality(struct gspca_dev *gspca_dev)
5923 struct sd *sd = (struct sd *) gspca_dev; 5923 struct sd *sd = (struct sd *) gspca_dev;
5924 s8 reg07; 5924 s8 reg07;
5925 5925
5926 jpeg_set_qual(sd->jpeg_hdr, jpeg_qual[sd->reg08]);
5927
5926 reg07 = 0; 5928 reg07 = 0;
5927 switch (sd->sensor) { 5929 switch (sd->sensor) {
5928 case SENSOR_OV7620: 5930 case SENSOR_OV7620:
@@ -6886,7 +6888,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
6886 break; 6888 break;
6887 } 6889 }
6888 setquality(gspca_dev); 6890 setquality(gspca_dev);
6889 jpeg_set_qual(sd->jpeg_hdr, jpeg_qual[sd->reg08]);
6890 setlightfreq(gspca_dev); 6891 setlightfreq(gspca_dev);
6891 6892
6892 switch (sd->sensor) { 6893 switch (sd->sensor) {
@@ -7042,7 +7043,7 @@ static int sd_setquality(struct gspca_dev *gspca_dev, __s32 val)
7042 sd->reg08 = i; 7043 sd->reg08 = i;
7043 sd->ctrls[QUALITY].val = jpeg_qual[i]; 7044 sd->ctrls[QUALITY].val = jpeg_qual[i];
7044 if (gspca_dev->streaming) 7045 if (gspca_dev->streaming)
7045 jpeg_set_qual(sd->jpeg_hdr, sd->ctrls[QUALITY].val); 7046 setquality(gspca_dev);
7046 return gspca_dev->usb_err; 7047 return gspca_dev->usb_err;
7047} 7048}
7048 7049