aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/video/gspca/m5602/m5602_ov9650.c
diff options
context:
space:
mode:
authorErik Andrén <erik.andren@gmail.com>2008-12-21 18:07:59 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-30 09:40:02 -0200
commit082aa8937c79a02397981b7543ccc65d2bdeaf97 (patch)
tree1f8de51c39d3a9b7f927d788a673326fa5a631c2 /drivers/media/video/gspca/m5602/m5602_ov9650.c
parent3da3dce5afd267d354427042090aaf6370ebc15c (diff)
V4L/DVB (10036): m5602 - ov9650: Prepare the sensor to set multiple resolutions
Signed-off-by: Erik Andrén <erik.andren@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/m5602/m5602_ov9650.c')
-rw-r--r--drivers/media/video/gspca/m5602/m5602_ov9650.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/m5602/m5602_ov9650.c b/drivers/media/video/gspca/m5602/m5602_ov9650.c
index 96b7791b37d..fcca3adefc5 100644
--- a/drivers/media/video/gspca/m5602/m5602_ov9650.c
+++ b/drivers/media/video/gspca/m5602/m5602_ov9650.c
@@ -143,6 +143,30 @@ int ov9650_init(struct sd *sd)
return err;
}
+int ov9650_start(struct sd *sd)
+{
+ int i, err = 0;
+ struct cam *cam = &sd->gspca_dev.cam;
+
+ switch (cam->cam_mode[sd->gspca_dev.curr_mode].width)
+ {
+ default:
+ case 640:
+ PDEBUG(D_V4L2, "Configuring camera for VGA mode");
+
+ for (i = 0; i < ARRAY_SIZE(VGA_ov9650) && !err; i++) {
+ u8 data = VGA_ov9650[i][2];
+ if (VGA_ov9650[i][0] == SENSOR)
+ err = m5602_write_sensor(sd,
+ VGA_ov9650[i][1], &data, 1);
+ else
+ err = m5602_write_bridge(sd, VGA_ov9650[i][1], data);
+ }
+ break;
+ }
+ return err;
+}
+
int ov9650_power_down(struct sd *sd)
{
int i, err = 0;