OSDN Git Service

media: atmel: atmel-isc-base: allow wb ctrls to be changed when isc is not configured
authorEugen Hristev <eugen.hristev@microchip.com>
Thu, 16 Jun 2022 14:42:59 +0000 (15:42 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 27 Jun 2022 08:12:40 +0000 (09:12 +0100)
When attempting to change the white balance (WB) ctrls before starting
streaming, e.g.:

 # v4l2-ctl -L

User Controls
..
            blue_component_gain 0x009819c1 (int)    : min=0 max=8191 step=1 default=512 value=512 flags=slider
..
 # v4l2-ctl --set-ctrl=blue_component_gain=500
 # v4l2-ctl -L
..
            blue_component_gain 0x009819c1 (int)    : min=0 max=8191 step=1 default=512 value=500 flags=slider
..

These will not be written to the internal data struct and will not be
written to the WB hardware module.
Thus, after starting streaming, they will be reset to default:

 # v4l2-ctl -L
..
            blue_component_gain 0x009819c1 (int)    : min=0 max=8191 step=1 default=512 value=512 flags=slider
..

It does not make much sense to not be able to configure the WB controls
at all times. Even if the sensor would not be RAW Bayer (and in this case the
WB module is unavailable), the user could configure the ISC itself, as the
ISC should not care about the sensor format.
Thus, when WB module is available (if the sensor changes format e.g.) it will
be already configured as be user's desires.
In consequence, remove the check in isc_s_awb_ctrl that will return if ISC
does not know the sensor format.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/atmel/atmel-isc-base.c

index 0d7d280..9e5317a 100644 (file)
@@ -1531,10 +1531,6 @@ static int isc_s_awb_ctrl(struct v4l2_ctrl *ctrl)
                else
                        ctrls->awb = ISC_WB_NONE;
 
-               /* we did not configure ISC yet */
-               if (!isc->config.sd_format)
-                       break;
-
                /* configure the controls with new values from v4l2 */
                if (ctrl->cluster[ISC_CTRL_R_GAIN]->is_new)
                        ctrls->gain[ISC_HIS_CFG_MODE_R] = isc->r_gain_ctrl->val;