diff options
author | Erik Andrén <erik.andren@gmail.com> | 2009-01-21 11:43:20 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-16 17:20:47 -0400 |
commit | 0364c4ca345175daa36c3c672fdecafd469e05a8 (patch) | |
tree | 84991a8ea3d518e1ca49468c7788df2013e52768 | |
parent | ea8f74b168aa4d725c6d1ab98ef4eb4f6f3f3358 (diff) |
V4L/DVB (11637): gspca - m5602-ov7660: Design init function.
Signed-off-by: Erik Andrén <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/video/gspca/m5602/m5602_ov7660.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/drivers/media/video/gspca/m5602/m5602_ov7660.c b/drivers/media/video/gspca/m5602/m5602_ov7660.c index a5953d828389..1c20a3bfaaff 100644 --- a/drivers/media/video/gspca/m5602/m5602_ov7660.c +++ b/drivers/media/video/gspca/m5602/m5602_ov7660.c | |||
@@ -85,11 +85,6 @@ int ov7660_probe(struct sd *sd) | |||
85 | return -ENODEV; | 85 | return -ENODEV; |
86 | 86 | ||
87 | sensor_found: | 87 | sensor_found: |
88 | sensor_settings = kmalloc( | ||
89 | ARRAY_SIZE(ov7660_ctrls) * sizeof(s32), GFP_KERNEL); | ||
90 | if (!sensor_settings) | ||
91 | return -ENOMEM; | ||
92 | |||
93 | sd->gspca_dev.cam.cam_mode = ov7660_modes; | 88 | sd->gspca_dev.cam.cam_mode = ov7660_modes; |
94 | sd->gspca_dev.cam.nmodes = ARRAY_SIZE(ov7660_modes); | 89 | sd->gspca_dev.cam.nmodes = ARRAY_SIZE(ov7660_modes); |
95 | sd->desc->ctrls = ov7660_ctrls; | 90 | sd->desc->ctrls = ov7660_ctrls; |
@@ -104,7 +99,27 @@ sensor_found: | |||
104 | 99 | ||
105 | int ov7660_init(struct sd *sd) | 100 | int ov7660_init(struct sd *sd) |
106 | { | 101 | { |
107 | return 0; | 102 | int i, err = 0; |
103 | |||
104 | /* Init the sensor */ | ||
105 | for (i = 0; i < ARRAY_SIZE(init_ov7660); i++) { | ||
106 | u8 data[2]; | ||
107 | |||
108 | if (init_ov7660[i][0] == BRIDGE) { | ||
109 | err = m5602_write_bridge(sd, | ||
110 | init_ov7660[i][1], | ||
111 | init_ov7660[i][2]); | ||
112 | } else { | ||
113 | data[0] = init_ov7660[i][2]; | ||
114 | err = m5602_write_sensor(sd, | ||
115 | init_ov7660[i][1], data, 1); | ||
116 | } | ||
117 | } | ||
118 | |||
119 | if (dump_sensor) | ||
120 | ov7660_dump_registers(sd); | ||
121 | |||
122 | return err; | ||
108 | } | 123 | } |
109 | 124 | ||
110 | int ov7660_start(struct sd *sd) | 125 | int ov7660_start(struct sd *sd) |