Am Donnerstag, 21. Juli 2022, 10:35:26 CEST schrieb Laurent Pinchart: > The imx290_write_buffered_reg() function wraps a register write with > register hold, to enable changing multiple registers synchronously. It > is used for the gain only, which is an 8-bit register, defeating its > purpose. > > The feature is useful, but should be implemented differently. Drop the > function for now, to prepare for a rework of register access. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/media/i2c/imx290.c | 32 +------------------------------- > 1 file changed, 1 insertion(+), 31 deletions(-) > > diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c > index 9a0c458a3af0..f280ded2dac3 100644 > --- a/drivers/media/i2c/imx290.c > +++ b/drivers/media/i2c/imx290.c > @@ -413,41 +413,11 @@ static int imx290_set_register_array(struct imx290 > *imx290, return 0; > } > > -static int imx290_write_buffered_reg(struct imx290 *imx290, u16 > address_low, - u8 nr_regs, u32 value) > -{ > - unsigned int i; > - int ret; > - > - ret = imx290_write_reg(imx290, IMX290_REGHOLD, 0x01); > - if (ret) { > - dev_err(imx290->dev, "Error setting hold register\n"); > - return ret; > - } > - > - for (i = 0; i < nr_regs; i++) { > - ret = imx290_write_reg(imx290, address_low + i, > - (u8)(value >> (i * 8))); > - if (ret) { > - dev_err(imx290->dev, "Error writing buffered registers\n"); > - return ret; > - } > - } > - > - ret = imx290_write_reg(imx290, IMX290_REGHOLD, 0x00); > - if (ret) { > - dev_err(imx290->dev, "Error setting hold register\n"); > - return ret; > - } > - > - return ret; > -} > - > static int imx290_set_gain(struct imx290 *imx290, u32 value) > { > int ret; > > - ret = imx290_write_buffered_reg(imx290, IMX290_GAIN, 1, value); > + ret = imx290_write_reg(imx290, IMX290_GAIN, value); > if (ret) > dev_err(imx290->dev, "Unable to write gain\n"); Acked-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>