On Fri Aug 21 08:38:16 2026 +0200, Alain Volmat wrote:
> Add topology of the two pixel pipes (main & aux) of the stm32mp25.
> Do not make the link from dcmipp_input immutable and enabled by
> default since not all pipes are always used together so when a pipeline
> is not being used its link should be disconnected to allow proper
> pipeline check.
> Not doing this would most probably lead to pipeline start failure due
> to incompatible pads configurations on the unused pipe.
> 
> Signed-off-by: Alain Volmat <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 .../platform/st/stm32/stm32-dcmipp/dcmipp-core.c   | 42 ++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c 
b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
index 6abbf0f023ee..54e28b4a5b2c 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
@@ -75,6 +75,11 @@ static const struct dcmipp_pipeline_config 
stm32mp13_pipe_cfg = {
        .hw_revision    = DCMIPP_STM32MP13_VERR
 };
 
+#define        ID_MAIN_ISP 3
+#define        ID_MAIN_POSTPROC 4
+#define        ID_MAIN_CAPTURE 5
+#define        ID_AUX_POSTPROC 6
+#define        ID_AUX_CAPTURE 7
 static const struct dcmipp_ent_config stm32mp25_ent_config[] = {
        {
                .name = "dcmipp_input",
@@ -91,13 +96,46 @@ static const struct dcmipp_ent_config 
stm32mp25_ent_config[] = {
                .init = dcmipp_capture_ent_init,
                .release = dcmipp_capture_ent_release,
        },
+       {
+               .name = "dcmipp_main_isp",
+               .init = dcmipp_isp_ent_init,
+               .release = dcmipp_isp_ent_release,
+       },
+       {
+               .name = "dcmipp_main_postproc",
+               .init = dcmipp_pixelproc_ent_init,
+               .release = dcmipp_pixelproc_ent_release,
+       },
+       {
+               .name = "dcmipp_main_capture",
+               .init = dcmipp_capture_ent_init,
+               .release = dcmipp_capture_ent_release,
+       },
+       {
+               .name = "dcmipp_aux_postproc",
+               .init = dcmipp_pixelproc_ent_init,
+               .release = dcmipp_pixelproc_ent_release,
+       },
+       {
+               .name = "dcmipp_aux_capture",
+               .init = dcmipp_capture_ent_init,
+               .release = dcmipp_capture_ent_release,
+       },
 };
 
 static const struct dcmipp_ent_link stm32mp25_ent_links[] = {
-       DCMIPP_ENT_LINK(ID_INPUT, 1, ID_DUMP_BYTEPROC, 0,
-                       MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE),
+       DCMIPP_ENT_LINK(ID_INPUT, 1, ID_DUMP_BYTEPROC, 0, MEDIA_LNK_FL_ENABLED),
        DCMIPP_ENT_LINK(ID_DUMP_BYTEPROC, 1, ID_DUMP_CAPTURE,  0,
                        MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE),
+       DCMIPP_ENT_LINK(ID_INPUT,       2, ID_MAIN_ISP,  0, 0),
+       DCMIPP_ENT_LINK(ID_MAIN_ISP,    1, ID_MAIN_POSTPROC,  0,
+                       MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE),
+       DCMIPP_ENT_LINK(ID_MAIN_ISP,    2, ID_AUX_POSTPROC,  0, 0),
+       DCMIPP_ENT_LINK(ID_MAIN_POSTPROC,       1, ID_MAIN_CAPTURE,  0,
+                       MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE),
+       DCMIPP_ENT_LINK(ID_INPUT,       3, ID_AUX_POSTPROC,  0, 0),
+       DCMIPP_ENT_LINK(ID_AUX_POSTPROC,        1, ID_AUX_CAPTURE,  0,
+                       MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE),
 };
 
 #define DCMIPP_STM32MP25_VERR  0x30
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to