diff --git a/drivers/media/video/gspca/ov519.c b/drivers/media/video/gspca/ov519.c index f94f41eb222e1873db8ab5f2fedd478b73438db3..541b8f0b0d3673d00c23343767956b561e569b42 100644 --- a/drivers/media/video/gspca/ov519.c +++ b/drivers/media/video/gspca/ov519.c @@ -3689,14 +3689,12 @@ static int mode_init_ov_sensor_regs(struct sd *sd) case SEN_OV7648: i2c_w_mask(sd, 0x14, qvga ? 0x20 : 0x00, 0x20); i2c_w_mask(sd, 0x28, qvga ? 0x00 : 0x20, 0x20); - /* The following 5 lines where commented out before with a - comment wondering if they did anything. This was because - the old driver did only 640x480, at 320x240 these 5 writes - *significantly* improve the image quality. */ - i2c_w(sd, 0x24, qvga ? 0x20 : 0x3a); - i2c_w(sd, 0x25, qvga ? 0x30 : 0x60); + /* Setting this undocumented bit in qvga mode removes a very + annoying vertical shaking of the image */ i2c_w_mask(sd, 0x2d, qvga ? 0x40 : 0x00, 0x40); + /* Unknown */ i2c_w_mask(sd, 0x67, qvga ? 0xf0 : 0x90, 0xf0); + /* Allow higher automatic gain (to allow higher framerates) */ i2c_w_mask(sd, 0x74, qvga ? 0x20 : 0x00, 0x20); i2c_w_mask(sd, 0x12, 0x04, 0x04); /* AWB: 1 */ break;