1e6b14080257d1dccc3f1dee52ebb28b475dca85
[openwrt/staging/linusw.git] /
1 From 4e0e8f87b81ed1dfa9876e0ce4492cc8f64c935a Mon Sep 17 00:00:00 2001
2 From: Dave Stevenson <dave.stevenson@raspberrypi.com>
3 Date: Fri, 26 Jun 2020 18:11:49 +0100
4 Subject: [PATCH] media: i2c: imx290: Switch set_hmax to use
5 imx290_write_buffered_reg
6
7 imx290_set_hmax was using two independent writes to set up hmax,
8 when all other multi-register writes were using imx290_write_buffered_reg
9 which claims the group hold first.
10
11 Switch imx290_set_hmax to using imx290_write_buffered_reg too.
12
13 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
14 ---
15 drivers/media/i2c/imx290.c | 15 ++++-----------
16 1 file changed, 4 insertions(+), 11 deletions(-)
17
18 --- a/drivers/media/i2c/imx290.c
19 +++ b/drivers/media/i2c/imx290.c
20 @@ -568,19 +568,12 @@ static int imx290_set_hmax(struct imx290
21 u32 hmax = val + imx290->current_mode->width;
22 int ret;
23
24 - ret = imx290_write_reg(imx290, IMX290_HMAX_LOW, (hmax & 0xff));
25 - if (ret) {
26 + ret = imx290_write_buffered_reg(imx290, IMX290_HMAX_LOW, 2,
27 + hmax);
28 + if (ret)
29 dev_err(imx290->dev, "Error setting HMAX register\n");
30 - return ret;
31 - }
32
33 - ret = imx290_write_reg(imx290, IMX290_HMAX_HIGH, ((hmax >> 8) & 0xff));
34 - if (ret) {
35 - dev_err(imx290->dev, "Error setting HMAX register\n");
36 - return ret;
37 - }
38 -
39 - return 0;
40 + return ret;
41 }
42
43 static int imx290_set_vmax(struct imx290 *imx290, u32 val)