• Eugen Hristev's avatar
    media: atmel: atmel-isc: add support for DO_WHITE_BALANCE · 90a493a3
    Eugen Hristev authored
    This adds support for the 'button' control DO_WHITE_BALANCE
    This feature will enable the ISC to compute the white balance coefficients
    in a one time shot, at the user discretion.
    This can be used if a color chart/grey chart is present in front of the camera.
    The ISC will adjust the coefficients and have them fixed until next balance
    or until sensor mode is changed.
    This is particularly useful for white balance adjustment in different
    lighting scenarios, and then taking photos to similar scenery.
    The old auto white balance stays in place, where the ISC will adjust every
    4 frames to the current scenery lighting, if the scenery is approximately
    grey in average, otherwise grey world algorithm fails.
    One time white balance adjustments needs streaming to be enabled, such that
    capture is enabled and the histogram has data to work with.
    Histogram without capture does not work in this hardware module.
    
    To start the one time white balance procedure:
    v4l2-ctl --set-ctrl=do_white_balance=1
    
    This feature works only if the sensor is streaming RAW data, as the hardware
    supports a histogram only for RAW bayer components.
    
    If the auto white balance is enabled, do_white_balance does nothing.
    If the streaming is disabled, or the sensor does not output RAW data, the
    control is inactive.
    
    User controls now include the do_white_balance ctrl:
    User Controls
    
                         brightness 0x00980900 (int)    : min=-1024 max=1023 step=1 default=0 value=0 flags=slider
                           contrast 0x00980901 (int)    : min=-2048 max=2047 step=1 default=256 value=256 flags=slider
            white_balance_automatic 0x0098090c (bool)   : default=1 value=0
                   do_white_balance 0x0098090d (button) : flags=write-only, execute-on-write
                              gamma 0x00980910 (int)    : min=0 max=2 step=1 default=2 value=2 flags=slider
    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+samsung@kernel.org>
    90a493a3
atmel-isc.c 67.1 KB