diff options
author | Erik Andrén <erik.andren@gmail.com> | 2009-01-21 17:43:20 +0100 |
---|---|---|
committer | Erik Andrén <erik.andren@gmail.com> | 2009-01-21 17:43:20 +0100 |
commit | 1e957c3612f0a153e549eca0319450c7b3f85517 (patch) | |
tree | e147b58d0d01123965e3a3731e7e49fb03a0b35b /linux/drivers/media/video | |
parent | 3996f1d906f6c60eda80447cc1d24e13230c2e27 (diff) | |
download | mediapointer-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.c | 27 |
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) |