linux/include/media
Niklas Söderlund b562e72bdb media: rppx1: Add framework to support Dreamchip RPPX1 ISP
Add a framework driver for Dreamchip RPPX1 ISP. The driver aims to
provide a framework for other V4L2 based drivers to drive the RPPX1
functionality. The reason for this split is that the RPPX1 IP itself do
not provide any DMA engines to drive data to/from the device, instead it
depends on other IP blocks to implement these features.

While the peripherals around the RPPX1 ISP used in different designs and
by different vendors are different the RPPX1 core itself is the same.
For this reason the framework solution to be able to split the Dreamchip
RPPX1 driver from vendors usage of it have been picked in hope to reduce
duplication of the common parts.

The design is to try and keep the surface of this framework as small as
possible. The intention of this change is to be able to fill all needs
of this.

  * Two functions to create and destroy a RPPX1 instance, rppx1_create()
    and rppx1_destory(). These are intended to be called in the users
    probe and remove code paths.

  * Two functions to start and stop the RPPX1 processing, rppx1_start()
    and rppx1_stop(). These are intended to be called in the users
    stream on and stream off code paths.

  * One function to ask the RPPX1 to process parameters buffer prepared
    by user space, rppx1_params(). The intention is to call this
    function when the parameter buffer is queued to the V4L2 driver and
    the result stored by the driver until the time it needs to be
    written to the RPPX1. It's the users responsibility to write it
    either using MMIO or other means.

  * One function to fill in a statistic buffer based on the current
    status of the RPPX1, rppx1_stats_fill_isr(). The intention is that
    the user call's this in its interrupt handler when it knows the
    RPPX1 is done processing a frame.

  * One function to ack and retrieve the interrupts generated by the
    RPPX1, rppx1_interrupt(). The intention is to call this function
    when the users interrupt handler detects the RPPX1 have raised and
    interrupt. There is no need for the user to understand, or act, on
    the actual RPPX1 interrupt, but it can if it wants too.

The initial support in the framework is limited and do not implement any
ISP processing algorithms other then configuring the RPPX1 to process
any Bayer (8-, 10, or 12-bit) image and produce either a RGB or YUYV
output. It do however probe all function blocks of the RPPX1 and provide
an interface to interact with both parameter and statistic bufferers.
The user of the framework will not change as algorithms for the
different function blocks of the ISP are being added.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Co-developed-by: Jai Luthra <jai.luthra+renesas@ideasonboard.com>
Signed-off-by: Jai Luthra <jai.luthra+renesas@ideasonboard.com>
Co-developed-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
2026-07-30 20:51:35 +03:00
..
cadence media: cadence: cdns-csi2rx: Support multiple pixels per clock cycle 2025-08-25 15:40:42 +02:00
davinci media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connection 2023-07-28 10:44:25 +02:00
drv-intf media: pci: Use PCI_DEVICE macros and drop zeros from pci_device_id arrays 2026-07-15 17:12:54 +02:00
i2c media: i2c: lm3560: Add proper support for LM3559 2026-05-15 15:00:44 +03:00
tpg media: v4l2-tpg: add HDMI Video Guard Band test pattern 2022-06-20 10:30:30 +01:00
cec-notifier.h Update rmk's email address in various drivers 2020-04-21 17:50:09 +01:00
cec-pin.h media: cec-gpio: handle gpiod_get_value errors correctly 2020-04-29 12:04:38 +02:00
cec.h media: cec/core: add error-inj-tx-timeouts debugfs entry 2026-07-17 10:14:19 +02:00
demux.h
dmxdev.h media: dmxdev: drop unneeded <linux/kernel.h> inclusion from other headers 2021-12-14 16:19:04 +01:00
dvb_ca_en50221.h
dvb_demux.h
dvb_frontend.h Revert "media: dvb-core: Fix use-after-free on race condition at dvb_frontend" 2023-06-14 23:16:29 +01:00
dvb_net.h media: dvb-core: Fix use-after-free due on race condition at dvb_net 2023-05-14 06:30:45 +01:00
dvb_ringbuffer.h media: dvb_ringbuffer: Fix typo in dvb_ringbuffer_pkt_write() kerneldoc 2022-11-25 09:45:47 +00:00
dvb_vb2.h media: dvb-core: dvb_vb2: drop wait_prepare/finish callbacks 2025-12-18 11:14:57 +01:00
dvb-usb-ids.h media: dvb-usb: dib0700_devices: use an enum for the device number 2022-04-18 07:36:44 +02:00
dvbdev.h media: dvbdev.h: do some kernel-doc cleanups 2023-05-14 16:05:27 +01:00
frame_vector.h media: videobuf2: revert "get_userptr: buffers are always writable" 2022-12-06 07:14:31 +00:00
imx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ipu-bridge.h media: ipu-bridge: add mod_devicetable.h header inclusion 2024-06-04 08:31:22 +02:00
ipu6-pci-table.h media: ipu6: Add PCI device table header 2024-04-29 14:56:37 +02:00
jpeg.h media: Add common header file with JPEG marker definitions 2023-05-25 16:21:21 +02:00
media-dev-allocator.h media: Fix Media Controller API config checks 2021-06-24 14:26:00 +02:00
media-device.h media: mc: add debugfs node to keep track of requests 2026-01-05 15:56:31 +01:00
media-devnode.h media: mc: add debugfs node to keep track of requests 2026-01-05 15:56:31 +01:00
media-entity.h media: mc-entity: Add missing kerneldoc 2026-06-28 22:29:48 +02:00
media-request.h media: mc: add debugfs node to keep track of requests 2026-01-05 15:56:31 +01:00
mipi-csi2.h media: Add MIPI CSI-2 generic long packet type definition 2023-10-07 10:55:48 +02:00
rc-core.h media: lirc: increase IR_MAX_DURATION to send extended code sequences 2026-03-17 14:43:57 +01:00
rc-map.h media: keymaps: Remove obsolete RC_MAP_HAUPPAUGE_NEW keymap define 2026-06-30 21:57:45 +01:00
rcar-fcp.h media: rcar-fcp: Add rcar_fcp_soft_reset() 2025-06-18 09:20:45 +02:00
rppx1.h media: rppx1: Add framework to support Dreamchip RPPX1 ISP 2026-07-30 20:51:35 +03:00
tuner-types.h media: tuners: Constify struct tunertype, tuner_range and tuner_params 2025-02-21 10:33:15 +01:00
tuner.h media: tuner-simple: Add support for Tena TNF931D-DFDR1 2024-06-29 12:20:05 +02:00
tveeprom.h media: drop unnecessary networking includes 2023-03-19 22:50:06 +01:00
v4l2-async.h media: v4l2-fwnode: Fix subdev owner overwritten in v4l2_async_register_subdev_sensor() 2026-06-05 10:28:03 +03:00
v4l2-cci.h media: v4l2-cci: Add support for little-endian encoded registers 2023-12-13 13:21:19 +01:00
v4l2-common.h media: v4l2-common: add v4l2_fill_pixfmt_mp_aligned helper 2026-05-21 12:32:19 +02:00
v4l2-ctrls.h media: v4l2-ctrls: Set error v4l2_ctrl_new_fwnode_properties consistently 2026-01-14 23:33:02 +01:00
v4l2-dev.h media: v4l2-dev: Make macros to obtain containers const-aware 2025-11-03 15:58:41 +01:00
v4l2-device.h media: include: update Hans Verkuil's email address 2025-09-09 15:58:56 +02:00
v4l2-dv-timings.h media: v4l2-core: v4l2-dv-timings: support DRM IFs 2025-09-07 10:29:19 +02:00
v4l2-event.h media: v4l2-event: Annotate struct v4l2_subscribed_event with __counted_by 2023-10-07 10:55:45 +02:00
v4l2-fh.h media: Drop V4L2_FL_USES_V4L2_FH checks 2025-08-13 08:33:46 +02:00
v4l2-flash-led-class.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
v4l2-fwnode.h media: v4l2-fwnode: Return -EPROBE_DEFER on parsing NULL endpoints 2026-03-24 11:58:02 +01:00
v4l2-h264.h media: h264: Sort p/b reflist using frame_num 2022-05-17 10:02:29 +02:00
v4l2-image-sizes.h media: v4l2-image-sizes: add HD and Full-HD definitions 2020-04-21 17:21:51 +02:00
v4l2-ioctl.h media: v4l2-ioctl: fix video_ioctl2 kernel-doc 2026-07-10 10:32:27 +02:00
v4l2-isp.h media: v4l2-isp: Add helpers for stats buffer 2026-07-30 20:51:13 +03:00
v4l2-jpeg.h media: v4l2-jpeg: Remove unused v4l2_jpeg_parse_* wrappers 2025-06-17 10:35:17 +02:00
v4l2-mc.h media: v4l2-mc: Mark v4l2_pipeline_link_notify() as deprecated 2024-08-23 17:49:09 +03:00
v4l2-mediabus.h media: v4l: Support obtaining link frequency via get_mbus_config 2025-02-15 15:22:53 +01:00
v4l2-mem2mem.h media: v4l2-mem2mem: Add a kref to the v4l2_m2m_dev structure 2026-01-05 15:56:31 +01:00
v4l2-rect.h media: v4l2-rect.h: add enclosed rectangle helper 2020-07-04 12:29:38 +02:00
v4l2-subdev.h media: subdev: Split v4l2_subdev_get_frame_desc_passthrough() into locked and unlocked 2026-03-24 11:58:02 +01:00
v4l2-vp9.h media: Add VP9 v4l2 library 2021-11-22 07:47:13 +00:00
videobuf2-core.h media: vb2: use ssize_t for vb2_read/vb2_write 2026-05-06 09:05:56 +02:00
videobuf2-dma-contig.h media: videobuf2-dma-contig: fix bad kfree in vb2_dma_contig_clear_max_seg_size 2020-06-11 19:20:55 +02:00
videobuf2-dma-sg.h media: Change Andrzej Pietrasiewicz's e-mail address 2019-01-16 11:21:07 -05:00
videobuf2-dvb.h media: vb2: videobuf -> videobuf2 2022-08-29 15:38:09 +02:00
videobuf2-memops.h media: videobuf2: revert "get_userptr: buffers are always writable" 2022-12-06 07:14:31 +00:00
videobuf2-v4l2.h media: videobuf2: move vb2_querybuf() kernel-doc to header 2026-07-15 17:12:55 +02:00
videobuf2-vmalloc.h
vsp1.h media: renesas: vsp1: Drop deprecated vsp1_du_setup_lif() function 2026-05-21 09:10:15 +02:00