linux/drivers/media/platform/microchip/Kconfig
Eugen Hristev 78ba0d79b7 media: microchip: microchip-isc: implement media controller
As a top MC video driver, the microchip-isc should not propagate the format
to the subdevice, it should rather check at start_streaming() time if the
subdev is properly configured with a compatible format.
Removed the whole format finding logic, and reworked the format
verification at start_streaming time, such that the ISC will return an
error if the subdevice is not properly configured.
To achieve this, media_pipeline_start is called and a link_validate
callback is created to check the formats.
With this being done, the module parameter 'sensor_preferred' makes no
sense anymore. The ISC should not decide which format the sensor is using.
The ISC should only cope with the situation and inform userspace if the
streaming is possible in the current configuration.
The redesign of the format propagation has also risen the question of the
enumfmt callback. If enumfmt is called with an mbus_code, the enumfmt
handler should only return the formats that are supported for this
mbus_code. Otherwise, the enumfmt will report all the formats that the ISC
could output.
With this rework, the dynamic list of user formats is removed. It makes no
more sense to identify at complete time which formats the sensor could
emit, and add those into a separate dynamic list.
The ISC will start with a simple preconfigured default format, and at
link validate time, decide whether it can use the format that is
configured on the sink or not.
>From now on, the driver also advertises the IO_MC capability.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2022-11-25 07:47:24 +00:00

62 lines
1.8 KiB
Plaintext

# SPDX-License-Identifier: GPL-2.0-only
comment "Microchip Technology, Inc. media platform drivers"
config VIDEO_MICROCHIP_ISC
tristate "Microchip Image Sensor Controller (ISC) support"
depends on V4L_PLATFORM_DRIVERS
depends on VIDEO_DEV && COMMON_CLK
depends on ARCH_AT91 || COMPILE_TEST
select MEDIA_CONTROLLER
select VIDEO_V4L2_SUBDEV_API
select VIDEOBUF2_DMA_CONTIG
select REGMAP_MMIO
select V4L2_FWNODE
select VIDEO_MICROCHIP_ISC_BASE
help
This module makes the Microchip Image Sensor Controller available
as a v4l2 device.
To compile this driver as a module, choose M here: the
module will be called microchip-isc.
config VIDEO_MICROCHIP_XISC
tristate "Microchip eXtended Image Sensor Controller (XISC) support"
depends on V4L_PLATFORM_DRIVERS
depends on VIDEO_DEV && COMMON_CLK
depends on ARCH_AT91 || COMPILE_TEST
select VIDEOBUF2_DMA_CONTIG
select REGMAP_MMIO
select V4L2_FWNODE
select VIDEO_MICROCHIP_ISC_BASE
select MEDIA_CONTROLLER
select VIDEO_V4L2_SUBDEV_API
help
This module makes the Microchip eXtended Image Sensor Controller
available as a v4l2 device.
To compile this driver as a module, choose M here: the
module will be called microchip-xisc.
config VIDEO_MICROCHIP_ISC_BASE
tristate
default n
help
Microchip ISC and XISC common code base.
config VIDEO_MICROCHIP_CSI2DC
tristate "Microchip CSI2 Demux Controller"
depends on V4L_PLATFORM_DRIVERS
depends on VIDEO_DEV && COMMON_CLK && OF
depends on ARCH_AT91 || COMPILE_TEST
select MEDIA_CONTROLLER
select VIDEO_V4L2_SUBDEV_API
select V4L2_FWNODE
help
CSI2 Demux Controller driver. CSI2DC is a helper chip
that converts IDI interface byte stream to a parallel pixel stream.
It supports various RAW formats as input.
To compile this driver as a module, choose M here: the
module will be called microchip-csi2dc.