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>
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)