summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video
diff options
context:
space:
mode:
authorErik Andrén <erik.andren@gmail.com>2009-01-21 17:43:20 +0100
committerErik Andrén <erik.andren@gmail.com>2009-01-21 17:43:20 +0100
commit1e957c3612f0a153e549eca0319450c7b3f85517 (patch)
treee147b58d0d01123965e3a3731e7e49fb03a0b35b /linux/drivers/media/video
parent3996f1d906f6c60eda80447cc1d24e13230c2e27 (diff)
downloadmediapointer-dvb-s2-1e957c3612f0a153e549eca0319450c7b3f85517.tar.gz
mediapointer-dvb-s2-1e957c3612f0a153e549eca0319450c7b3f85517.tar.bz2
gspca - m5602-ov7660: Design init function.
From: Erik Andrén <erik.andren@gmail.com> Priority: normal Signed-off-by: Erik Andrén <erik.andren@gmail.com>
Diffstat (limited to 'linux/drivers/media/video')
-rw-r--r--linux/drivers/media/video/gspca/m5602/m5602_ov7660.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/linux/drivers/media/video/gspca/m5602/m5602_ov7660.c b/linux/drivers/media/video/gspca/m5602/m5602_ov7660.c
index a5953d828..1c20a3bfa 100644
--- a/linux/drivers/media/video/gspca/m5602/m5602_ov7660.c
+++ b/linux/drivers/media/video/gspca/m5602/m5602_ov7660.c
@@ -85,11 +85,6 @@ int ov7660_probe(struct sd *sd)
return -ENODEV;
sensor_found:
- sensor_settings = kmalloc(
- ARRAY_SIZE(ov7660_ctrls) * sizeof(s32), GFP_KERNEL);
- if (!sensor_settings)
- return -ENOMEM;
-
sd->gspca_dev.cam.cam_mode = ov7660_modes;
sd->gspca_dev.cam.nmodes = ARRAY_SIZE(ov7660_modes);
sd->desc->ctrls = ov7660_ctrls;
@@ -104,7 +99,27 @@ sensor_found:
int ov7660_init(struct sd *sd)
{
- return 0;
+ int i, err = 0;
+
+ /* Init the sensor */
+ for (i = 0; i < ARRAY_SIZE(init_ov7660); i++) {
+ u8 data[2];
+
+ if (init_ov7660[i][0] == BRIDGE) {
+ err = m5602_write_bridge(sd,
+ init_ov7660[i][1],
+ init_ov7660[i][2]);
+ } else {
+ data[0] = init_ov7660[i][2];
+ err = m5602_write_sensor(sd,
+ init_ov7660[i][1], data, 1);
+ }
+ }
+
+ if (dump_sensor)
+ ov7660_dump_registers(sd);
+
+ return err;
}
int ov7660_start(struct sd *sd)