aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/gspca/m5602/m5602_mt9m111.c
diff options
context:
space:
mode:
authorAlaa Emad <alaaemadhossney.ae@gmail.com>2021-05-03 13:57:28 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-05-13 18:58:25 +0200
commite932f5b458eee63d013578ea128b9ff8ef5f5496 (patch)
tree8c89fdc3be34b9b2b4690dff2897b09483aeab77 /drivers/media/usb/gspca/m5602/m5602_mt9m111.c
parentRevert "media: gspca: mt9m111: Check write_bridge for timeout" (diff)
downloadlinux-dev-e932f5b458eee63d013578ea128b9ff8ef5f5496.tar.xz
linux-dev-e932f5b458eee63d013578ea128b9ff8ef5f5496.zip
media: gspca: mt9m111: Check write_bridge for timeout
If m5602_write_bridge times out, it will return a negative error value. So properly check for this and handle the error correctly instead of just ignoring it. Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Alaa Emad <alaaemadhossney.ae@gmail.com> Link: https://lore.kernel.org/r/20210503115736.2104747-62-gregkh@linuxfoundation.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/media/usb/gspca/m5602/m5602_mt9m111.c')
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_mt9m111.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/media/usb/gspca/m5602/m5602_mt9m111.c b/drivers/media/usb/gspca/m5602/m5602_mt9m111.c
index 50481dc928d0..bf1af6ed9131 100644
--- a/drivers/media/usb/gspca/m5602/m5602_mt9m111.c
+++ b/drivers/media/usb/gspca/m5602/m5602_mt9m111.c
@@ -195,7 +195,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, err;
struct gspca_dev *gspca_dev = (struct gspca_dev *)sd;
if (force_sensor) {
@@ -213,15 +213,17 @@ 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,
- preinit_mt9m111[i][1],
- preinit_mt9m111[i][2]);
+ err = 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,
- preinit_mt9m111[i][1], data, 2);
+ err = m5602_write_sensor(sd,
+ preinit_mt9m111[i][1], data, 2);
}
+ if (err < 0)
+ return err;
}
if (m5602_read_sensor(sd, MT9M111_SC_CHIPVER, data, 2))