linux/drivers/media/platform
Eugen Hristev 4e52889f48 media: atmel: atmel-isc-base: expose white balance as v4l2 controls
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: Eugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-02-24 16:12:28 +01:00
..
am437x media: am437x: fix smatch warning 2019-11-05 10:33:36 -03:00
atmel media: atmel: atmel-isc-base: expose white balance as v4l2 controls 2020-02-24 16:12:28 +01:00
cadence media: v4l: cadence: Fix how unsued lanes are handled in 'csi2rx_start()' 2019-10-10 07:19:13 -03:00
cec-gpio drm main pull for 5.5-rc1 2019-11-27 17:45:48 -08:00
coda media: coda: avoid hardware lockups with more than 13 capture buffers 2019-12-16 10:09:12 +01:00
cros-ec-cec cros_ec: treewide: Remove 'include/linux/mfd/cros_ec.h' 2020-01-07 17:36:46 +01:00
davinci media: isif: constify copied structure 2020-02-24 15:23:24 +01:00
exynos4-is media: Fix Kconfig indentation 2020-02-24 15:19:38 +01:00
exynos-gsc media: media/platform: don't set description in ENUM_FMT 2019-07-22 14:43:59 -04:00
marvell-ccic media: marvell-ccic: mmp: add MODULE_DEVICE_TABLE 2019-07-25 06:27:14 -04:00
meson drm main pull for 5.5-rc1 2019-11-27 17:45:48 -08:00
mtk-jpeg media: mtk-jpeg: Use vb2_get_buffer 2019-06-21 16:22:02 -04:00
mtk-mdp media: platform: mtk-mdp: add missed destroy_workqueue in remove 2019-12-13 09:18:35 +01:00
mtk-vcodec media: mtk-vcodec: use v4l2_m2m_buffer where appropriate 2020-01-09 14:46:41 +01:00
mtk-vpu media: mtk-vpu: fix two smatch warnings 2019-11-08 07:25:39 +01:00
omap media updates for v5.4-rc1 2019-09-17 17:55:23 -07:00
omap3isp Linux 5.5-rc5 2020-01-08 11:13:25 +01:00
qcom media: venus: remove invalid compat_ioctl32 handler 2019-11-09 09:08:30 +01:00
rcar-vin media: rcar-vin: Limit NV12 availability to supported VIN channels only 2020-02-24 15:21:20 +01:00
rockchip/rga media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
s3c-camif media: s3c-camif: make array 'registers' static const, makes object smaller 2019-10-01 16:43:49 -03:00
s5p-cec cec: add cec_adapter to cec_notifier_cec_adap_unregister() 2019-10-07 12:47:43 +02:00
s5p-g2d media: s3c-camif/s5p-g2d/s5p-jpeg: set device_caps in struct video_device 2019-07-22 14:45:40 -04:00
s5p-jpeg media: s5p-jpeg: drop unused components from s5p_jpeg_q_data 2019-11-05 09:08:04 -03:00
s5p-mfc media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
seco-cec drm main pull for 5.5-rc1 2019-11-27 17:45:48 -08:00
sti media: platform: sti: c8sectpfe: c8sectpfe-dvb: convert to use i2c_new_client_device() 2020-01-09 16:03:20 +01:00
stm32 media: stm32-dcmi: Use dma_request_chan() instead dma_request_slave_channel() 2020-02-24 15:24:52 +01:00
sunxi media: sun4i-csi: Add support for A10 CSI1 camera sensor interface 2020-01-04 08:21:35 +01:00
tegra-cec remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
ti-vpe media: ti-vpe: csc: fix single vs multiplanar format handling 2019-12-13 09:29:52 +01:00
vicodec media: vicodec: process all 4 components for RGB32 formats 2020-02-24 15:08:18 +01:00
vimc media: vimc: Implement get/set selection in sink 2019-12-16 10:22:00 +01:00
vivid media updates for v5.6-rc1 2020-01-31 14:43:23 -08:00
vsp1 media: use the BIT() macro 2019-08-26 14:08:50 -03:00
xilinx media: xilinx: Use the correct style for SPDX License Identifier 2019-11-05 08:30:51 -03:00
aspeed-video.c media: video: aspeed: Update copyright information 2020-02-24 16:10:39 +01:00
fsl-viu.c media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
imx-pxp.c media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
imx-pxp.h
Kconfig media: Fix Kconfig indentation 2020-02-24 15:19:38 +01:00
m2m-deinterlace.c media: m2m-deinterlace: use struct v4l2_fh 2019-07-23 11:49:41 -04:00
Makefile media: ti-vpe: Fix a parallel build issue 2019-10-10 11:39:32 -03:00
mx2_emmaprp.c media: don't do a 31 bit shift on a signed int 2019-08-26 14:11:10 -03:00
pxa_camera.c media: pxa_camera: Use dma_request_chan() instead dma_request_slave_channel() 2020-02-24 16:04:23 +01:00
rcar_drif.c media: rcar_drif: Use dma_request_chan() instead dma_request_slave_channel() 2020-02-24 16:04:49 +01:00
rcar_fdp1.c media: fdp1: Fix R-Car M3-N naming in debug message 2019-11-05 09:01:49 -03:00
rcar_jpu.c media: v4l2: Get rid of ->vidioc_enum_fmt_vid_{cap, out}_mplane 2019-06-05 07:48:32 -04:00
rcar-fcp.c
renesas-ceu.c media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
sh_veu.c media: sh_veu: convert to struct v4l2_fh 2019-07-25 06:29:26 -04:00
sh_vou.c media: sh_veu/sh_vou: set device_caps in struct video_device 2019-07-22 15:09:06 -04:00
via-camera.c media: via-camera: convert to the vb2 framework 2019-07-30 12:18:34 -04:00
via-camera.h
video-mux.c
vim2m.c media: vim2m: media_device_cleanup was called too early 2019-11-10 07:44:43 +01:00