media: i2c: imx290: Switch set_hmax to use imx290_write_buffered_reg
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Fri, 26 Jun 2020 17:11:49 +0000 (18:11 +0100)
committerpopcornmix <popcornmix@gmail.com>
Wed, 1 Jul 2020 15:34:17 +0000 (16:34 +0100)
imx290_set_hmax was using two independent writes to set up hmax,
when all other multi-register writes were using imx290_write_buffered_reg
which claims the group hold first.

Switch imx290_set_hmax to using imx290_write_buffered_reg too.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/media/i2c/imx290.c

index a6c5d9c..9431c2b 100644 (file)
@@ -568,19 +568,12 @@ static int imx290_set_hmax(struct imx290 *imx290, u32 val)
        u32 hmax = val + imx290->current_mode->width;
        int ret;
 
-       ret = imx290_write_reg(imx290, IMX290_HMAX_LOW, (hmax & 0xff));
-       if (ret) {
-               dev_err(imx290->dev, "Error setting HMAX register\n");
-               return ret;
-       }
-
-       ret = imx290_write_reg(imx290, IMX290_HMAX_HIGH, ((hmax >> 8) & 0xff));
-       if (ret) {
+       ret = imx290_write_buffered_reg(imx290, IMX290_HMAX_LOW, 2,
+                                       hmax);
+       if (ret)
                dev_err(imx290->dev, "Error setting HMAX register\n");
-               return ret;
-       }
 
-       return 0;
+       return ret;
 }
 
 static int imx290_set_vmax(struct imx290 *imx290, u32 val)