• Eugen Hristev's avatar
    media: atmel: atmel-isc-base: expose white balance as v4l2 controls · 4e52889f
    Eugen Hristev authored
    This exposes the white balance configuration of the ISC as v4l2 controls
    into userspace.
    There are 8 controls available:
    4 gain controls, sliders, for each of the BAYER components: R, B, GR, GB.
    These gains are multipliers for each component, in format unsigned 0:4:9
    with a default value of 512 (1.0 multiplier).
    4 offset controls, sliders, for each of the BAYER components: R, B, GR, GB.
    These offsets are added/substracted from each component, in format signed
    1:12:0 with a default value of 0 (+/- 0)
    
    To expose this to userspace, added 8 custom controls, in an auto cluster.
    
    To summarize the functionality:
    The auto cluster switch is the auto white balance control, and it works
    like this:
    AWB == 1: autowhitebalance is on, the do_white_balance button is inactive,
    the gains/offsets are inactive, but volatile and readable.
    Thus, the results of the whitebalance algorithm are available to userspace
    to read at any time.
    AWB == 0: autowhitebalance is off, cluster is in manual mode, user can
    configure the gain/offsets directly. More than that, if the
    do_white_balance button is pressed, the driver will perform
    one-time-adjustment, (preferably with color checker card) and the userspace
    can read again the new values.
    
    With this feature, the userspace can save the coefficients and reinstall
    them for example after reboot or reprobing the driver.
    
    [hverkuil: fix checkpatch warning]
    [hverkuil: minor spacing adjustments in the functionality description]
    Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    4e52889f
atmel-isc-base.c 63.9 KB