Drops downstream patch to v4l2_mem2mem, and uses the new mainline
flag to achieve the same functionality
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
This has been replaced with the upstream driver in
drivers/media/platform/broadcom/bcm2835-unicam.c.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
With the introduction of the streams API, the legacy embedded data
support has been removed. Pull out all code associated with the legacy
support.
Note that this driver has not been converted to use the streams API, so
embedded data will be unavailable.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Add the V4L2 streams API support for embedded data in the IMX519 device
driver. This also updates the drier to use the V4L2 subdev state API.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Add the V4L2 streams API support for embedded/pdaf/hdr data in the
IMX708 device driver. This also updates the drier to use the V4L2 subdev
state API.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Add the V4L2 streams API support for embedded data in the IMX477 device
driver. This also updates the drier to use the V4L2 subdev state API.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
This commit brings the IMX219 driver up-to-date with upstream v6.8 and
adds streams support for embedded data.
Currently HBLANK control has been removed and needs to be re-added.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
The graph walk tries to follow all links, even if they are not between
pads. This causes a crash with, e.g. a MEDIA_LNK_FL_ANCILLARY_LINK link.
Fix this by allowing the walk to proceed only for MEDIA_LNK_FL_DATA_LINK
links.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Fixes: ae21987283 ("media: mc: entity: Rewrite media_pipeline_start()")
Add support for Raspberry Pi CFE. The CFE is a hardware block that
contains:
- MIPI D-PHY
- MIPI CSI-2 receiver
- Front End ISP (FE)
The driver has been upported from the Raspberry Pi kernel commit
88a681df96 ("ARM: dts: bcm2712-rpi: Add i2c<n>_pins labels").
Co-developed-by: Naushir Patuck <naush@raspberrypi.com>
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Add two meta formats for PiSP FE: V4L2_META_FMT_RPI_FE_CFG and
V4L2_META_FMT_RPI_FE_STATS. The former is used to provide configuration
for the FE and the latter is used to read the statistics from the FE.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
The Y10P, Y12P and Y14P format variants are packed according to
the RAW10, RAW12 and RAW14 formats as defined by the MIPI CSI-2
specification. Document it.
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Add a flag to denote immutable routes, V4L2_SUBDEV_ROUTE_FL_IMMUTABLE.
Such routes cannot be changed and they're always active.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Add support for embedded data. This introduces two internal pads for pixel
and embedded data streams. As the driver supports a single mode only,
there's no need for backward compatibility in mode selection.
The embedded data is configured to be placed before the image data whereas
after the image data is the default.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
With enable_streams and disable_streams, the driver for a device where
streams are not independently started and stopped needs to maintain state
information on streams that have been requested to be started. Do that
now.
In the future, a helper function in the framework is a desirable way to do
this instead.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Julien Massot <julien.massot@collabora.com>
Remove v4l2_subdev_enable_streams_api variable that was used to easily
enable streams API for development, and conditions that use the variable.
This patch enables the streams API for V4L2 sub-device interface which
allows transporting multiple streams on a single MC link.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Document which routes are available for the CCS driver (source) sub-device
and what configuration are possible.
Also update copyright.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
ccs_propagate() no longer stores information in the driver's context
struct. The which parameter can thus be removed.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Compute scaling configuration from sub-device state instead of storing it
to the driver's device context struct.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Calculate binning configuration from sub-device state so the state related
configuration can be removed from the driver's device context struct.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Rely on sub-device state locking to serialise access to driver's data
structures. The driver-provided mutex is used as the state lock for all
driver sub-devices.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
As it's now easier to obtain the necessary information on crop and compose
rectangles after moving to sub-device state, remove the
ccs_get_crop_compose helper.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Add support for embedded data stream, in UAPI and frame descriptor.
This patch adds also a new embedded data pad (2) to the source sub-device.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
With enable_streams and disable_streams, the driver for a device where
streams are not independently started and stopped needs to maintain state
information on streams that have been requested to be started. Do that
now.
In the future, a helper function in the framework is a desirable way to do
this instead.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Julien Massot <julien.massot@collabora.com>
Switch from s_stream() video op to enable_streams() and disable_streams()
pad operations. They are preferred and required for streams support.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Streaming will have been stopped by the sensor is powered off, and so
sensor->streaming is also false already. Do not set it as part of the
runtime suspend callback.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Add trivial S_ROUTING IOCTL support for drivers where routing is static.
Essentially this means returning the same information G_ROUTING call would
have done.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Julien Massot <julien.massot@collabora.com>
On VIDIOC_SUBDEV_[GS]_ROUTING, only return as many routes back to the user
as there's room. Do not consider it an error if more routes existed.
Simply inform the user there are more routes.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
The len_routes field is used to tell the size of the routes array in
struct v4l2_subdev_routing. This way the number of routes returned from
S_ROUTING IOCTL may be larger than the number of routes provided, in case
there are more routes returned by the driver.
Note that this uAPI is still disabled in the code, so this change can
safely be done. Anyone who manually patched the code to enable this uAPI
must update their code.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>