From 694e6c860da2850036c05c8c078632da9423cbe8 Mon Sep 17 00:00:00 2001 From: Sudhir Sharma Date: Fri, 21 Aug 2026 11:49:44 +0800 Subject: [PATCH] config: ipu75xa: add ISX031 direct MIPI resolutions Add 1920x1536 and 1280x720 MediaCtlConfig entries for the ISX031 direct-MIPI runtime configuration. Publish the new modes through supportedStreamConfig and supportedISysSizes. Keep 1920x1080 as mcId 0, with 1920x1536 as mcId 1 and 1280x720 as mcId 2. Validated on IPU7 direct MIPI (isx031-a, CSI2 port 0, no GMSL deserializer), for example 1920x1536 @60: media-ctl -d /dev/media0 -V '"isx031 1-001a":0 [fmt:UYVY8_1X16/1920x1536]' v4l2-ctl -d /dev/v4l-subdev4 --set-subdev-fps pad=0,fps=60 gst-launch-1.0 icamerasrc num-buffers=-1 num-vc=1 scene-mode=normal \ device-name=isx031-a printfps=true io-mode=mmap \ ! video/x-raw,format=UYVY,width=1920,height=1536 ! fakesink sync=false Total frame is:829 Camera name:isx031-a(Id:8) Stream Id:0 Max fps is:60.0050,Minimum fps is:59.9995,Average fps is:60.0021 1920x1536 @30, 1920x1080 @60, 1920x1080 @30 and 1280x720 @30 were checked the same way and all held the requested rate. Confirm the sensor is programmed at the requested rate with --get-subdev-fps before capturing; --set-subdev-fps does not always take effect after a format change. isx031-b is the unpopulated second port, so it is untested. Signed-off-by: Sudhir Sharma --- config/linux/ipu75xa/sensors/isx031-a.json | 46 +++++++++++++++++++++- config/linux/ipu75xa/sensors/isx031-b.json | 46 +++++++++++++++++++++- 2 files changed, 88 insertions(+), 4 deletions(-) diff --git a/config/linux/ipu75xa/sensors/isx031-a.json b/config/linux/ipu75xa/sensors/isx031-a.json index 9631aadc..300690cd 100644 --- a/config/linux/ipu75xa/sensors/isx031-a.json +++ b/config/linux/ipu75xa/sensors/isx031-a.json @@ -40,16 +40,58 @@ { "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" }, { "name": "isx031 1-001a", "videoNodeType": "VIDEO_PIXEL_ARRAY" } ] + }, + { + "id": 1, + "configMode": "AUTO", + "output": [1920, 1536], + "format": "V4L2_PIX_FMT_UYVY", + "formats": [ + { "name": "isx031 1-001a", "pad": 0, "width": 1920, "height": 1536, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 CSI2 0", "pad": 0, "width": 1920, "height": 1536, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 ISYS Capture 0", "pad": 0, "width": 1920, "height": 1536, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 } + ], + "link": [ + { "srcName": "isx031 1-001a", "srcPad": 0, "sinkName": "Intel IPU7 CSI2 0", "sinkPad": 0, "enable": true }, + { "srcName": "Intel IPU7 CSI2 0", "srcPad": 1, "sinkName": "Intel IPU7 ISYS Capture 0", "sinkPad": 0, "enable": true } + ], + "videonode": [ + { "name": "Intel IPU7 ISYS Capture 0", "videoNodeType": "VIDEO_GENERIC" }, + { "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" }, + { "name": "isx031 1-001a", "videoNodeType": "VIDEO_PIXEL_ARRAY" } + ] + }, + { + "id": 2, + "configMode": "AUTO", + "output": [1280, 720], + "format": "V4L2_PIX_FMT_UYVY", + "formats": [ + { "name": "isx031 1-001a", "pad": 0, "width": 1280, "height": 720, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 CSI2 0", "pad": 0, "width": 1280, "height": 720, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 ISYS Capture 0", "pad": 0, "width": 1280, "height": 720, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 } + ], + "link": [ + { "srcName": "isx031 1-001a", "srcPad": 0, "sinkName": "Intel IPU7 CSI2 0", "sinkPad": 0, "enable": true }, + { "srcName": "Intel IPU7 CSI2 0", "srcPad": 1, "sinkName": "Intel IPU7 ISYS Capture 0", "sinkPad": 0, "enable": true } + ], + "videonode": [ + { "name": "Intel IPU7 ISYS Capture 0", "videoNodeType": "VIDEO_GENERIC" }, + { "name": "Intel IPU7 CSI2 0", "videoNodeType": "VIDEO_ISYS_RECEIVER" }, + { "name": "isx031 1-001a", "videoNodeType": "VIDEO_PIXEL_ARRAY" } + ] } ], "StaticMetadata": { "supportedStreamConfig": [ - { "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 0 } + { "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 0 }, + { "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 1 }, + { "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2 } ] }, - "supportedISysSizes": [[1920, 1080]], + "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]], "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"], "enableAIQ": false, "usePSysProcessor": false diff --git a/config/linux/ipu75xa/sensors/isx031-b.json b/config/linux/ipu75xa/sensors/isx031-b.json index ad4e014b..d03bcdb6 100644 --- a/config/linux/ipu75xa/sensors/isx031-b.json +++ b/config/linux/ipu75xa/sensors/isx031-b.json @@ -40,16 +40,58 @@ { "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" }, { "name": "isx031 2-001a", "videoNodeType": "VIDEO_PIXEL_ARRAY" } ] + }, + { + "id": 1, + "configMode": "AUTO", + "output": [1920, 1536], + "format": "V4L2_PIX_FMT_UYVY", + "formats": [ + { "name": "isx031 2-001a", "pad": 0, "width": 1920, "height": 1536, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 CSI2 2", "pad": 0, "width": 1920, "height": 1536, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 ISYS Capture 16", "pad": 0, "width": 1920, "height": 1536, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 } + ], + "link": [ + { "srcName": "isx031 2-001a", "srcPad": 0, "sinkName": "Intel IPU7 CSI2 2", "sinkPad": 0, "enable": true }, + { "srcName": "Intel IPU7 CSI2 2", "srcPad": 1, "sinkName": "Intel IPU7 ISYS Capture 16", "sinkPad": 0, "enable": true } + ], + "videonode": [ + { "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC" }, + { "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" }, + { "name": "isx031 2-001a", "videoNodeType": "VIDEO_PIXEL_ARRAY" } + ] + }, + { + "id": 2, + "configMode": "AUTO", + "output": [1280, 720], + "format": "V4L2_PIX_FMT_UYVY", + "formats": [ + { "name": "isx031 2-001a", "pad": 0, "width": 1280, "height": 720, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 CSI2 2", "pad": 0, "width": 1280, "height": 720, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 }, + { "name": "Intel IPU7 ISYS Capture 16", "pad": 0, "width": 1280, "height": 720, "format": "V4L2_MBUS_FMT_UYVY8_1X16", "stream": 0 } + ], + "link": [ + { "srcName": "isx031 2-001a", "srcPad": 0, "sinkName": "Intel IPU7 CSI2 2", "sinkPad": 0, "enable": true }, + { "srcName": "Intel IPU7 CSI2 2", "srcPad": 1, "sinkName": "Intel IPU7 ISYS Capture 16", "sinkPad": 0, "enable": true } + ], + "videonode": [ + { "name": "Intel IPU7 ISYS Capture 16", "videoNodeType": "VIDEO_GENERIC" }, + { "name": "Intel IPU7 CSI2 2", "videoNodeType": "VIDEO_ISYS_RECEIVER" }, + { "name": "isx031 2-001a", "videoNodeType": "VIDEO_PIXEL_ARRAY" } + ] } ], "StaticMetadata": { "supportedStreamConfig": [ - { "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 0 } + { "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1080], "field": 0, "mcId": 0 }, + { "format": "V4L2_PIX_FMT_UYVY", "size": [1920, 1536], "field": 0, "mcId": 1 }, + { "format": "V4L2_PIX_FMT_UYVY", "size": [1280, 720], "field": 0, "mcId": 2 } ] }, - "supportedISysSizes": [[1920, 1080]], + "supportedISysSizes": [[1280, 720], [1920, 1080], [1920, 1536]], "supportedISysFormat": ["V4L2_PIX_FMT_UYVY"], "enableAIQ": false, "usePSysProcessor": false