
The CSI2 specification specifies a standard method to access camera sensor registers called "Camera Control Interface (CCI)". This uses either 8 or 16 bit (big-endian wire order) register addresses and supports 8, 16, 24 or 32 bit (big-endian wire order) register widths. Currently a lot of Linux camera sensor drivers all have their own custom helpers for this, often copy and pasted from other drivers. Add a set of generic helpers for this so that all sensor drivers can switch to a single common implementation. These helpers take an extra optional "int *err" function parameter, this can be used to chain a bunch of register accesses together with only a single error check at the end, rather than needing to error check each individual register access. The first failing call will set the contents of err to a non 0 value and all other calls will then become no-ops. Link: https://lore.kernel.org/linux-media/59aefa7f-7bf9-6736-6040-39551329cd0a@redhat.com/ Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Tested-by: Tommaso Merciai <tomm.merciai@gmail.com> Reviewed-by: Tommaso Merciai <tomm.merciai@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2.0 KiB
SPDX-License-Identifier: GPL-2.0-only
Generic video config states
config VIDEO_V4L2_I2C bool depends on I2C && VIDEO_DEV default y
config VIDEO_V4L2_SUBDEV_API bool depends on VIDEO_DEV && MEDIA_CONTROLLER help Enables the V4L2 sub-device pad-level userspace API used to configure video format, size and frame rate between hardware blocks.
This API is mostly used by camera interfaces in embedded platforms.
config VIDEO_ADV_DEBUG bool "Enable advanced debug functionality on V4L2 drivers" help Say Y here to enable advanced debugging functionality on some V4L devices. In doubt, say N.
config VIDEO_FIXED_MINOR_RANGES bool "Enable old-style fixed minor ranges on drivers/video devices" help Say Y here to enable the old-style fixed-range minor assignments. Only useful if you rely on the old behavior and use mknod instead of udev.
When in doubt, say N.
Used by drivers that need tuner.ko
config VIDEO_TUNER tristate
Used by drivers that need v4l2-jpeg.ko
config V4L2_JPEG_HELPER tristate
Used by drivers that need v4l2-h264.ko
config V4L2_H264 tristate
Used by drivers that need v4l2-vp9.ko
config V4L2_VP9 tristate
Used by drivers that need v4l2-mem2mem.ko
config V4L2_MEM2MEM_DEV tristate depends on VIDEOBUF2_CORE
Used by LED subsystem flash drivers
config V4L2_FLASH_LED_CLASS tristate "V4L2 flash API for LED flash class devices" depends on VIDEO_DEV depends on LEDS_CLASS_FLASH select MEDIA_CONTROLLER select V4L2_ASYNC select VIDEO_V4L2_SUBDEV_API help Say Y here to enable V4L2 flash API support for LED flash class drivers.
When in doubt, say N.
config V4L2_FWNODE tristate select V4L2_ASYNC
config V4L2_ASYNC tristate
config V4L2_CCI tristate
config V4L2_CCI_I2C tristate depends on I2C select REGMAP_I2C select V4L2_CCI
Used by drivers that need Videobuf modules
config VIDEOBUF_GEN tristate
config VIDEOBUF_DMA_SG tristate select VIDEOBUF_GEN
config VIDEOBUF_VMALLOC tristate select VIDEOBUF_GEN
config VIDEOBUF_DMA_CONTIG tristate select VIDEOBUF_GEN