.../userspace-api/media/drivers/dcmipp.rst | 14 +
.../userspace-api/media/drivers/index.rst | 1 +
.../media/platform/st/stm32/stm32-dcmipp/Makefile | 3 +-
.../st/stm32/stm32-dcmipp/dcmipp-byteproc.c | 27 +-
.../{dcmipp-bytecap.c => dcmipp-capture.c} | 600 +++++++++----
.../platform/st/stm32/stm32-dcmipp/dcmipp-common.h | 98 ++-
.../platform/st/stm32/stm32-dcmipp/dcmipp-core.c | 124 ++-
.../platform/st/stm32/stm32-dcmipp/dcmipp-input.c | 124 ++-
.../platform/st/stm32/stm32-dcmipp/dcmipp-isp.c | 491 +++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-pixelcommon.c | 180 ++++
.../st/stm32/stm32-dcmipp/dcmipp-pixelcommon.h | 41 +
.../st/stm32/stm32-dcmipp/dcmipp-pixelproc.c | 940 +++++++++++++++++++++
include/uapi/linux/media/st/dcmipp_config.h | 16 +
include/uapi/linux/v4l2-controls.h | 6 +
14 files changed, 2380 insertions(+), 285 deletions(-)
This series add support for the main & aux pixel pipes
available on the MP2x. In addition to the byte pipe
already available, the DCMIPP is able to process two
other streams in parallel, including ISP operations
such as demosaicing, exposure etc, post-processing operations
such as cropping, downscaling and various pixel formats
output.
This series introduces the whole DCMIPP pipelines including
static configuration of the ISP part (such as demosaicing).
Dynamic control of the ISP as well as statistic extraction
part will be added on top of this serie via usage of 2 other
video devices (input & output) for statistics extraction and
dynamic ISP parameter injection.
Changes in v4:
- Allocation of a ST DCMIPP specific user defined CID range
- Rename of the pixelproc control into V4L2_CID_DCMIPP_PIXELPROC_GAMMA_CORRECTION_ENABLE
- Rename of the pixelproc control as "Gamme Correction Enable"
- Addition of a new header file include/uapi/linux/media/st/dcmipp_config.h
- Link to v3: https://patch.msgid.link/20260724-stm32-dcmipp-pixel-pipes-support-v3-0-f77fe7e723d9@foss.st.com
Changes in v3:
- Rebased on top of kernel v7.2-rc4
- Fixed most of Sashiko review points
- Link to v2: https://lore.kernel.org/r/20260602-stm32-dcmipp-pixel-pipes-support-v2-0-3c76b5f93157@foss.st.com
Changes in v2:
- Rebased on top of kernel v7.1-rc6
- check-patch minor fixes
- replaced kzalloc(.., sizeof(..),) with kzalloc_obj
- Link to v1: https://lore.kernel.org/r/20260202-stm32-dcmipp-pixel-pipes-support-v1-0-8d8d51f5e014@foss.st.com
---
Alain Volmat (14):
media: stm32: dcmipp: share struct dcmipp_device among subdevs
media: stm32: dcmipp: make dcmipp_state & cmsr2 read common
media: stm32: dcmipp: bytecap: protect CMIER register access
media: stm32: dcmipp: move common structures in dcmipp-common.h
media: stm32: dcmipp: correct swap in YUYV data with parallel input
media: stm32: dcmipp: configure csi input of all pipes on stm32mp25
media: stm32: dcmipp: introduce a dcmipp global media_pipeline
media: stm32: dcmipp: add pixel pipes helper functions
media: stm32: dcmipp: addition of a dcmipp-isp subdev
media: uapi: Add controls for ST DCMIPP Driver
media: stm32: dcmipp: pixelproc: addition of dcmipp-pixelproc subdev
media: stm32: dcmipp: add pixel-pipe support in bytecap
media: stm32: dcmipp: rename bytecap into capture
media: stm32: dcmipp: instantiate & link stm32mp25 subdevs
.../userspace-api/media/drivers/dcmipp.rst | 14 +
.../userspace-api/media/drivers/index.rst | 1 +
.../media/platform/st/stm32/stm32-dcmipp/Makefile | 3 +-
.../st/stm32/stm32-dcmipp/dcmipp-byteproc.c | 27 +-
.../{dcmipp-bytecap.c => dcmipp-capture.c} | 600 +++++++++----
.../platform/st/stm32/stm32-dcmipp/dcmipp-common.h | 98 ++-
.../platform/st/stm32/stm32-dcmipp/dcmipp-core.c | 124 ++-
.../platform/st/stm32/stm32-dcmipp/dcmipp-input.c | 124 ++-
.../platform/st/stm32/stm32-dcmipp/dcmipp-isp.c | 491 +++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-pixelcommon.c | 180 ++++
.../st/stm32/stm32-dcmipp/dcmipp-pixelcommon.h | 41 +
.../st/stm32/stm32-dcmipp/dcmipp-pixelproc.c | 940 +++++++++++++++++++++
include/uapi/linux/media/st/dcmipp_config.h | 16 +
include/uapi/linux/v4l2-controls.h | 6 +
14 files changed, 2380 insertions(+), 285 deletions(-)
---
base-commit: 48a5a7ab8d6ab7090564339e039c421f315de912
change-id: 20251219-stm32-dcmipp-pixel-pipes-support-b42924c0b4e5
Best regards,
--
Alain Volmat <alain.volmat@foss.st.com>
Hi,
please find below the result of v4l2-compliance -s -dx calls on all 3
pipes (dump (0), main (1), aux (2)).
Prior to each call, proper media-ctl calls are done in order to perform
the correct routing for each use-case.
-- DUMP video device --
/usr/local/bin/v4l2-compliance -s -d0
v4l2-compliance 1.33.0-5496, 64 bits, 64-bit time_t
v4l2-compliance SHA: 52a88f729238 2026-08-10 14:44:45
Compliance test for dcmipp device /dev/video0:
Driver Info:
Driver name : dcmipp
Card type : stm32_dcmipp
Bus info : platform:48030000.dcmipp
Driver version : 7.2.0
Capabilities : 0xa4200001
Video Capture
I/O MC
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x24200001
Video Capture
I/O MC
Streaming
Extended Pix Format
Media Driver Info:
Driver name : dcmipp
Model : DCMIPP MDEV
Serial :
Bus info : platform:48030000.dcmipp
Media version : 7.2.0
Hardware revision: 0x00000030 (48)
Driver version : 7.2.0
Interface Info:
ID : 0x0300000b
Type : V4L Video
Entity Info:
ID : 0x00000009 (9)
Name : dcmipp_dump_capture
Function : V4L2 I/O
Pad 0x0100000a : 0: Sink
Link 0x02000021: from remote pad 0x1000008 of entity 'dcmipp_dump_postproc' (Video Scaler): Data, Enabled, Immutable
Required ioctls:
test MC information (see 'Media Driver Info' above): OK
test VIDIOC_QUERYCAP: OK
test invalid ioctls: OK
Allow for multiple opens:
test second /dev/video0 open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK
test for unlimited opens: OK
Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 1 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls (Input 0):
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
test VIDIOC_QUERYCTRL: OK (Not Supported)
test VIDIOC_G/S_CTRL: OK (Not Supported)
test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 0 Private Controls: 0
Format ioctls (Input 0):
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK (Not Supported)
test Composing: OK (Not Supported)
test Scaling: OK
Codec ioctls (Input 0):
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls (Input 0):
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test CREATE_BUFS maximum buffers: OK
test VIDIOC_REMOVE_BUFS: OK
test VIDIOC_EXPBUF: OK
test Requests: OK (Not Supported)
test blocking wait: OK
Test input 0:
Streaming ioctls:
test read/write: OK (Not Supported)
test MMAP (no poll, REQBUFS): OK
test MMAP (select, REQBUFS): OK
test MMAP (epoll, REQBUFS): OK
test MMAP (no poll, CREATE_BUFS): OK
test MMAP (select, CREATE_BUFS): OK
test MMAP (epoll, CREATE_BUFS): OK
test USERPTR (no poll): OK (Not Supported)
test USERPTR (select): OK (Not Supported)
warn: v4l2-test-buffers.cpp(2220): Cannot test DMABUF, specify --expbuf-device
test DMABUF (no poll): OK (Not Supported)
test DMABUF (select): OK (Not Supported)
Total for dcmipp device /dev/video0: 60, Succeeded: 60, Failed: 0, Warnings: 1
-- MAIN video device --
/usr/local/bin/v4l2-compliance -s -d1
v4l2-compliance 1.33.0-5496, 64 bits, 64-bit time_t
v4l2-compliance SHA: 52a88f729238 2026-08-10 14:44:45
Compliance test for dcmipp device /dev/video1:
Driver Info:
Driver name : dcmipp
Card type : stm32_dcmipp
Bus info : platform:48030000.dcmipp
Driver version : 7.2.0
Capabilities : 0xa4200001
Video Capture
I/O MC
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x24200001
Video Capture
I/O MC
Streaming
Extended Pix Format
Media Driver Info:
Driver name : dcmipp
Model : DCMIPP MDEV
Serial :
Bus info : platform:48030000.dcmipp
Media version : 7.2.0
Hardware revision: 0x00000030 (48)
Driver version : 7.2.0
Interface Info:
ID : 0x03000016
Type : V4L Video
Entity Info:
ID : 0x00000014 (20)
Name : dcmipp_main_capture
Function : V4L2 I/O
Pad 0x01000015 : 0: Sink
Link 0x02000029: from remote pad 0x1000013 of entity 'dcmipp_main_postproc' (Video Pixel Formatter): Data, Enabled, Immutable
Required ioctls:
test MC information (see 'Media Driver Info' above): OK
test VIDIOC_QUERYCAP: OK
test invalid ioctls: OK
Allow for multiple opens:
test second /dev/video1 open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK
test for unlimited opens: OK
Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 1 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls (Input 0):
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
test VIDIOC_QUERYCTRL: OK (Not Supported)
test VIDIOC_G/S_CTRL: OK (Not Supported)
test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 0 Private Controls: 0
Format ioctls (Input 0):
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK (Not Supported)
test Composing: OK (Not Supported)
test Scaling: OK
Codec ioctls (Input 0):
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls (Input 0):
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test CREATE_BUFS maximum buffers: OK
test VIDIOC_REMOVE_BUFS: OK
test VIDIOC_EXPBUF: OK
test Requests: OK (Not Supported)
test blocking wait: OK
Test input 0:
Streaming ioctls:
test read/write: OK (Not Supported)
test MMAP (no poll, REQBUFS): OK
test MMAP (select, REQBUFS): OK
test MMAP (epoll, REQBUFS): OK
test MMAP (no poll, CREATE_BUFS): OK
test MMAP (select, CREATE_BUFS): OK
test MMAP (epoll, CREATE_BUFS): OK
test USERPTR (no poll): OK (Not Supported)
test USERPTR (select): OK (Not Supported)
warn: v4l2-test-buffers.cpp(2220): Cannot test DMABUF, specify --expbuf-device
test DMABUF (no poll): OK (Not Supported)
test DMABUF (select): OK (Not Supported)
Total for dcmipp device /dev/video1: 60, Succeeded: 60, Failed: 0, Warnings: 1
-- AUX video device --
/usr/local/bin/v4l2-compliance -s -d2
v4l2-compliance 1.33.0-5496, 64 bits, 64-bit time_t
v4l2-compliance SHA: 52a88f729238 2026-08-10 14:44:45
Compliance test for dcmipp device /dev/video2:
Driver Info:
Driver name : dcmipp
Card type : stm32_dcmipp
Bus info : platform:48030000.dcmipp
Driver version : 7.2.0
Capabilities : 0xa4200001
Video Capture
I/O MC
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x24200001
Video Capture
I/O MC
Streaming
Extended Pix Format
Media Driver Info:
Driver name : dcmipp
Model : DCMIPP MDEV
Serial :
Bus info : platform:48030000.dcmipp
Media version : 7.2.0
Hardware revision: 0x00000030 (48)
Driver version : 7.2.0
Interface Info:
ID : 0x0300001d
Type : V4L Video
Entity Info:
ID : 0x0000001b (27)
Name : dcmipp_aux_capture
Function : V4L2 I/O
Pad 0x0100001c : 0: Sink
Link 0x0200002d: from remote pad 0x100001a of entity 'dcmipp_aux_postproc' (Video Pixel Formatter): Data, Enabled, Immutable
Required ioctls:
test MC information (see 'Media Driver Info' above): OK
test VIDIOC_QUERYCAP: OK
test invalid ioctls: OK
Allow for multiple opens:
test second /dev/video2 open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK
test for unlimited opens: OK
Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 1 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls (Input 0):
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
test VIDIOC_QUERYCTRL: OK (Not Supported)
test VIDIOC_G/S_CTRL: OK (Not Supported)
test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 0 Private Controls: 0
Format ioctls (Input 0):
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK (Not Supported)
test Composing: OK (Not Supported)
test Scaling: OK
Codec ioctls (Input 0):
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls (Input 0):
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test CREATE_BUFS maximum buffers: OK
test VIDIOC_REMOVE_BUFS: OK
test VIDIOC_EXPBUF: OK
test Requests: OK (Not Supported)
test blocking wait: OK
Test input 0:
Streaming ioctls:
test read/write: OK (Not Supported)
test MMAP (no poll, REQBUFS): OK
test MMAP (select, REQBUFS): OK
test MMAP (epoll, REQBUFS): OK
test MMAP (no poll, CREATE_BUFS): OK
test MMAP (select, CREATE_BUFS): OK
test MMAP (epoll, CREATE_BUFS): OK
test USERPTR (no poll): OK (Not Supported)
test USERPTR (select): OK (Not Supported)
warn: v4l2-test-buffers.cpp(2220): Cannot test DMABUF, specify --expbuf-device
test DMABUF (no poll): OK (Not Supported)
test DMABUF (select): OK (Not Supported)
Total for dcmipp device /dev/video2: 60, Succeeded: 60, Failed: 0, Warnings: 1
Regards,
Alain
On Thu, Aug 20, 2026 at 09:22:28AM +0200, Alain Volmat wrote:
> This series add support for the main & aux pixel pipes
> available on the MP2x. In addition to the byte pipe
> already available, the DCMIPP is able to process two
> other streams in parallel, including ISP operations
> such as demosaicing, exposure etc, post-processing operations
> such as cropping, downscaling and various pixel formats
> output.
>
> This series introduces the whole DCMIPP pipelines including
> static configuration of the ISP part (such as demosaicing).
> Dynamic control of the ISP as well as statistic extraction
> part will be added on top of this serie via usage of 2 other
> video devices (input & output) for statistics extraction and
> dynamic ISP parameter injection.
>
> Changes in v4:
> - Allocation of a ST DCMIPP specific user defined CID range
> - Rename of the pixelproc control into V4L2_CID_DCMIPP_PIXELPROC_GAMMA_CORRECTION_ENABLE
> - Rename of the pixelproc control as "Gamme Correction Enable"
> - Addition of a new header file include/uapi/linux/media/st/dcmipp_config.h
> - Link to v3: https://patch.msgid.link/20260724-stm32-dcmipp-pixel-pipes-support-v3-0-f77fe7e723d9@foss.st.com
>
> Changes in v3:
> - Rebased on top of kernel v7.2-rc4
> - Fixed most of Sashiko review points
> - Link to v2: https://lore.kernel.org/r/20260602-stm32-dcmipp-pixel-pipes-support-v2-0-3c76b5f93157@foss.st.com
>
> Changes in v2:
> - Rebased on top of kernel v7.1-rc6
> - check-patch minor fixes
> - replaced kzalloc(.., sizeof(..),) with kzalloc_obj
> - Link to v1: https://lore.kernel.org/r/20260202-stm32-dcmipp-pixel-pipes-support-v1-0-8d8d51f5e014@foss.st.com
>
> ---
> Alain Volmat (14):
> media: stm32: dcmipp: share struct dcmipp_device among subdevs
> media: stm32: dcmipp: make dcmipp_state & cmsr2 read common
> media: stm32: dcmipp: bytecap: protect CMIER register access
> media: stm32: dcmipp: move common structures in dcmipp-common.h
> media: stm32: dcmipp: correct swap in YUYV data with parallel input
> media: stm32: dcmipp: configure csi input of all pipes on stm32mp25
> media: stm32: dcmipp: introduce a dcmipp global media_pipeline
> media: stm32: dcmipp: add pixel pipes helper functions
> media: stm32: dcmipp: addition of a dcmipp-isp subdev
> media: uapi: Add controls for ST DCMIPP Driver
> media: stm32: dcmipp: pixelproc: addition of dcmipp-pixelproc subdev
> media: stm32: dcmipp: add pixel-pipe support in bytecap
> media: stm32: dcmipp: rename bytecap into capture
> media: stm32: dcmipp: instantiate & link stm32mp25 subdevs
>
> .../userspace-api/media/drivers/dcmipp.rst | 14 +
> .../userspace-api/media/drivers/index.rst | 1 +
> .../media/platform/st/stm32/stm32-dcmipp/Makefile | 3 +-
> .../st/stm32/stm32-dcmipp/dcmipp-byteproc.c | 27 +-
> .../{dcmipp-bytecap.c => dcmipp-capture.c} | 600 +++++++++----
> .../platform/st/stm32/stm32-dcmipp/dcmipp-common.h | 98 ++-
> .../platform/st/stm32/stm32-dcmipp/dcmipp-core.c | 124 ++-
> .../platform/st/stm32/stm32-dcmipp/dcmipp-input.c | 124 ++-
> .../platform/st/stm32/stm32-dcmipp/dcmipp-isp.c | 491 +++++++++++
> .../st/stm32/stm32-dcmipp/dcmipp-pixelcommon.c | 180 ++++
> .../st/stm32/stm32-dcmipp/dcmipp-pixelcommon.h | 41 +
> .../st/stm32/stm32-dcmipp/dcmipp-pixelproc.c | 940 +++++++++++++++++++++
> include/uapi/linux/media/st/dcmipp_config.h | 16 +
> include/uapi/linux/v4l2-controls.h | 6 +
> 14 files changed, 2380 insertions(+), 285 deletions(-)
> ---
> base-commit: 48a5a7ab8d6ab7090564339e039c421f315de912
> change-id: 20251219-stm32-dcmipp-pixel-pipes-support-b42924c0b4e5
>
> Best regards,
> --
> Alain Volmat <alain.volmat@foss.st.com>
>
© 2016 - 2026 Red Hat, Inc.