forked from Minki/linux
media: gspca: mt9m111: Check write_bridge for timeout
In mt9m111_probe, m5602_write_bridge can timeout and return a negative error value. The fix checks for this error and passes it upstream. Signed-off-by: Aditya Pakki <pakki001@umn.edu> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
a21a0eb56b
commit
6560258500
@ -199,7 +199,7 @@ static const struct v4l2_ctrl_config mt9m111_greenbal_cfg = {
|
||||
int mt9m111_probe(struct sd *sd)
|
||||
{
|
||||
u8 data[2] = {0x00, 0x00};
|
||||
int i;
|
||||
int i, rc = 0;
|
||||
struct gspca_dev *gspca_dev = (struct gspca_dev *)sd;
|
||||
|
||||
if (force_sensor) {
|
||||
@ -217,16 +217,18 @@ int mt9m111_probe(struct sd *sd)
|
||||
/* Do the preinit */
|
||||
for (i = 0; i < ARRAY_SIZE(preinit_mt9m111); i++) {
|
||||
if (preinit_mt9m111[i][0] == BRIDGE) {
|
||||
m5602_write_bridge(sd,
|
||||
rc |= m5602_write_bridge(sd,
|
||||
preinit_mt9m111[i][1],
|
||||
preinit_mt9m111[i][2]);
|
||||
} else {
|
||||
data[0] = preinit_mt9m111[i][2];
|
||||
data[1] = preinit_mt9m111[i][3];
|
||||
m5602_write_sensor(sd,
|
||||
rc |= m5602_write_sensor(sd,
|
||||
preinit_mt9m111[i][1], data, 2);
|
||||
}
|
||||
}
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
||||
if (m5602_read_sensor(sd, MT9M111_SC_CHIPVER, data, 2))
|
||||
return -ENODEV;
|
||||
|
Loading…
Reference in New Issue
Block a user