Message ID | 20240306081038.212412-6-umang.jain@ideasonboard.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | media: imx335: 2/4 lane ops and improvements | expand |
Quoting Umang Jain (2024-03-06 08:10:38) > The sensor gain (both analog and digital) are controlled by a > single gain value where: > - 0dB to 30dB correspond to analog gain > - 30.3dB to 72dB correspond to digital gain > (with 0.3dB step) > > Hence, limit the analogue gain value to 100. > For digital gain, support can be added later if needed. > > Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> I think this makes the behaviour more consistent with expectations from userspace for the ANALOGUE_GAIN. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > --- > drivers/media/i2c/imx335.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/i2c/imx335.c b/drivers/media/i2c/imx335.c > index c00e0c2be3f3..701bd5318b45 100644 > --- a/drivers/media/i2c/imx335.c > +++ b/drivers/media/i2c/imx335.c > @@ -45,7 +45,7 @@ > /* Analog gain control */ > #define IMX335_REG_AGAIN CCI_REG8(0x30e8) > #define IMX335_AGAIN_MIN 0 > -#define IMX335_AGAIN_MAX 240 > +#define IMX335_AGAIN_MAX 100 > #define IMX335_AGAIN_STEP 1 > #define IMX335_AGAIN_DEFAULT 0 > > @@ -1169,6 +1169,14 @@ static int imx335_init_controls(struct imx335 *imx335) > IMX335_EXPOSURE_STEP, > IMX335_EXPOSURE_DEFAULT); > > + /* > + * The sensor has an analog gain and a digital gain, both controlled > + * through a single gain value, expressed in 0.3dB increments. Values > + * from 0.0dB (0) to 30.0dB (100) apply analog gain only, higher values > + * up to 72.0dB (240) add further digital gain. Limit the range to > + * analog gain only, support for digital gain can be added separately > + * if needed. > + */ > imx335->again_ctrl = v4l2_ctrl_new_std(ctrl_hdlr, > &imx335_ctrl_ops, > V4L2_CID_ANALOGUE_GAIN, > -- > 2.43.0 >
diff --git a/drivers/media/i2c/imx335.c b/drivers/media/i2c/imx335.c index c00e0c2be3f3..701bd5318b45 100644 --- a/drivers/media/i2c/imx335.c +++ b/drivers/media/i2c/imx335.c @@ -45,7 +45,7 @@ /* Analog gain control */ #define IMX335_REG_AGAIN CCI_REG8(0x30e8) #define IMX335_AGAIN_MIN 0 -#define IMX335_AGAIN_MAX 240 +#define IMX335_AGAIN_MAX 100 #define IMX335_AGAIN_STEP 1 #define IMX335_AGAIN_DEFAULT 0 @@ -1169,6 +1169,14 @@ static int imx335_init_controls(struct imx335 *imx335) IMX335_EXPOSURE_STEP, IMX335_EXPOSURE_DEFAULT); + /* + * The sensor has an analog gain and a digital gain, both controlled + * through a single gain value, expressed in 0.3dB increments. Values + * from 0.0dB (0) to 30.0dB (100) apply analog gain only, higher values + * up to 72.0dB (240) add further digital gain. Limit the range to + * analog gain only, support for digital gain can be added separately + * if needed. + */ imx335->again_ctrl = v4l2_ctrl_new_std(ctrl_hdlr, &imx335_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
The sensor gain (both analog and digital) are controlled by a single gain value where: - 0dB to 30dB correspond to analog gain - 30.3dB to 72dB correspond to digital gain (with 0.3dB step) Hence, limit the analogue gain value to 100. For digital gain, support can be added later if needed. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> --- drivers/media/i2c/imx335.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)