Re: [PATCH v3 1/7] media: i2c: imx290: Define standby mode values
From: Laurent Pinchart
Date: Mon Sep 02 2024 - 15:56:19 EST
Hi Benjamin,
On Mon, Sep 02, 2024 at 05:57:26PM +0200, bbara93@xxxxxxxxx wrote:
> From: Benjamin Bara <benjamin.bara@xxxxxxxxxxx>
>
> The imx290 datasheet states that the IMX290_STANDBY register has two
> values: 0 for operating and 1 for standby. Define and use them.
>
> Signed-off-by: Benjamin Bara <benjamin.bara@xxxxxxxxxxx>
> ---
> Changes since v2:
> - new, split out from the previous 1/2
> ---
> drivers/media/i2c/imx290.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
> index 4150e6e4b9a6..1c97f9650eb4 100644
> --- a/drivers/media/i2c/imx290.c
> +++ b/drivers/media/i2c/imx290.c
> @@ -29,6 +29,8 @@
> #include <media/v4l2-subdev.h>
>
> #define IMX290_STANDBY CCI_REG8(0x3000)
> +#define IMX290_STANDBY_OPERATING 0x00
> +#define IMX290_STANDBY_STANDBY BIT(0)
The convention, for single-bit fields, is to define a macro to describe
the bit, but not a macro to describe the bit not being set.
> #define IMX290_REGHOLD CCI_REG8(0x3001)
> #define IMX290_XMSTA CCI_REG8(0x3002)
> #define IMX290_ADBIT CCI_REG8(0x3005)
> @@ -1016,7 +1018,8 @@ static int imx290_start_streaming(struct imx290 *imx290,
> return ret;
> }
>
> - cci_write(imx290->regmap, IMX290_STANDBY, 0x00, &ret);
> + cci_write(imx290->regmap, IMX290_STANDBY, IMX290_STANDBY_OPERATING,
> + &ret);
I would thus rather drop this change.
>
> msleep(30);
>
> @@ -1029,7 +1032,7 @@ static int imx290_stop_streaming(struct imx290 *imx290)
> {
> int ret = 0;
>
> - cci_write(imx290->regmap, IMX290_STANDBY, 0x01, &ret);
> + cci_write(imx290->regmap, IMX290_STANDBY, IMX290_STANDBY_STANDBY, &ret);
And keep this one.
>
> msleep(30);
>
--
Regards,
Laurent Pinchart