.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * Driver for the mt9m111 sensor |
---|
3 | 4 | * |
---|
.. | .. |
---|
9 | 10 | * Copyright (c) 2006 Willem Duinker |
---|
10 | 11 | * v4l2 interface modeled after the V4L2 driver |
---|
11 | 12 | * for SN9C10x PC Camera Controllers |
---|
12 | | - * |
---|
13 | | - * This program is free software; you can redistribute it and/or |
---|
14 | | - * modify it under the terms of the GNU General Public License as |
---|
15 | | - * published by the Free Software Foundation, version 2. |
---|
16 | | - * |
---|
17 | 13 | */ |
---|
18 | 14 | |
---|
19 | 15 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
---|
.. | .. |
---|
199 | 195 | int mt9m111_probe(struct sd *sd) |
---|
200 | 196 | { |
---|
201 | 197 | u8 data[2] = {0x00, 0x00}; |
---|
202 | | - int i; |
---|
| 198 | + int i, err; |
---|
203 | 199 | struct gspca_dev *gspca_dev = (struct gspca_dev *)sd; |
---|
204 | 200 | |
---|
205 | 201 | if (force_sensor) { |
---|
.. | .. |
---|
217 | 213 | /* Do the preinit */ |
---|
218 | 214 | for (i = 0; i < ARRAY_SIZE(preinit_mt9m111); i++) { |
---|
219 | 215 | if (preinit_mt9m111[i][0] == BRIDGE) { |
---|
220 | | - m5602_write_bridge(sd, |
---|
221 | | - preinit_mt9m111[i][1], |
---|
222 | | - preinit_mt9m111[i][2]); |
---|
| 216 | + err = m5602_write_bridge(sd, |
---|
| 217 | + preinit_mt9m111[i][1], |
---|
| 218 | + preinit_mt9m111[i][2]); |
---|
223 | 219 | } else { |
---|
224 | 220 | data[0] = preinit_mt9m111[i][2]; |
---|
225 | 221 | data[1] = preinit_mt9m111[i][3]; |
---|
226 | | - m5602_write_sensor(sd, |
---|
227 | | - preinit_mt9m111[i][1], data, 2); |
---|
| 222 | + err = m5602_write_sensor(sd, |
---|
| 223 | + preinit_mt9m111[i][1], data, 2); |
---|
228 | 224 | } |
---|
| 225 | + if (err < 0) |
---|
| 226 | + return err; |
---|
229 | 227 | } |
---|
230 | 228 | |
---|
231 | 229 | if (m5602_read_sensor(sd, MT9M111_SC_CHIPVER, data, 2)) |
---|