Message ID | 1554111076-31471-1-git-send-email-hugues.fruchet@st.com (mailing list archive) |
---|---|
Headers | show |
Series | DCMI bridge support | expand |
Hi Hugues, On 4/1/19 11:31 AM, Hugues Fruchet wrote: > This patch serie allows to connect non-parallel camera sensor to > DCMI thanks to a bridge connected in between such as STMIPID02 [1]. > > Media controller support is introduced first, then support of > several sub-devices within pipeline with dynamic linking > between them. Can you post the output of v4l2-compliance -m /dev/mediaX ? Thanks! Hans > > [1] https://www.spinics.net/lists/devicetree/msg278002.html > > Hugues Fruchet (2): > media: stm32-dcmi: add media controller support > media: stm32-dcmi: add support of several sub-devices > > drivers/media/platform/Kconfig | 2 +- > drivers/media/platform/stm32/stm32-dcmi.c | 213 ++++++++++++++++++++++++------ > 2 files changed, 177 insertions(+), 38 deletions(-) >
Hi Hans, Here it is. SHA1 is aa371c995ec2ad70323db00c47b3132002b060b7: Author: Hans Verkuil <hverkuil-cisco@xs4all.nl> 2019-02-08 16:21:23 Committer: Hans Verkuil <hverkuil-cisco@xs4all.nl> 2019-02-08 16:21:23 Parent: 98d5622551eb6b9a0397464fb52378949f33c364 (v4l2-compliance: support m2m devices with -f) Child: 59f9840781aab464c1331dcdb82e63dd0544b5c6 (v4l2-compliance: remove duplicate MEDIA_IOC_DEVICE_INFO ioctl call) Branches: master, master2, remotes/origin/master Follows: v4l-utils-1.16.0 Precedes: v4l2-compliance: -f bug fixes Result is below: root@stm32mp1:~# v4l2-compliance -m /dev/media0 v4l2-compliance SHA: eb8e3b07c9249ff56091ae4bc3ae9b76779db4cd, 32 bits Compliance test for stm32-dcmi device /dev/media0: Media Driver Info: Driver name : stm32-dcmi Model : stm32-dcmi Serial : Bus info : platform:stm32-dcmi Media version : 5.0.0 Hardware revision: 0x00000000 (0) Driver version : 5.0.0 Required ioctls: test MEDIA_IOC_DEVICE_INFO: OK Allow for multiple opens: test second /dev/media0 open: OK test MEDIA_IOC_DEVICE_INFO: OK test for unlimited opens: OK Media Controller ioctls: test MEDIA_IOC_G_TOPOLOGY: OK Entities: 3 Interfaces: 2 Pads: 4 Links: 4 test MEDIA_IOC_ENUM_ENTITIES/LINKS: OK test MEDIA_IOC_SETUP_LINK: OK Total for stm32-dcmi device /dev/media0: 7, Succeeded: 7, Failed: 0, Warnings: 0 -------------------------------------------------------------------------------- Compliance test for stm32-dcmi device /dev/video0: Driver Info: Driver name : stm32-dcmi Card type : STM32 Camera Memory Interface Bus info : platform:dcmi Driver version : 5.0.0 Capabilities : 0x85200001 Video Capture Read/Write Streaming [ 2117.336477] stm32-dcmi 4c006000.dcmi: ================= START STATUS ================= E[ 2117.344647] stm32-dcmi 4c006000.dcmi: White Balance, Automatic: true [ 2117.350990] stm32-dcmi 4c006000.dcmi: Blue Balance: 0 inactive x[ 2117.356853] stm32-dcmi 4c006000.dcmi: Red Balance: 0 inactive [ 2117.362645] stm32-dcmi 4c006000.dcmi: Auto Exposure: Auto Mode [ 2117.368438] stm32-dcmi 4c006000.dcmi: Exposure: 0 inactive volatile t[ 2117.374729] stm32-dcmi 4c006000.dcmi: Gain, Automatic: true [ 2117.380335] stm32-dcmi 4c006000.dcmi: Gain: 0 inactive volatile e[ 2117.386305] stm32-dcmi 4c006000.dcmi: Saturation: 64 [ 2117.391275] stm32-dcmi 4c006000.dcmi: Hue: 0 n[ 2117.395572] stm32-dcmi 4c006000.dcmi: Contrast: 0 [ 2117.400305] stm32-dcmi 4c006000.dcmi: Test Pattern: Disabled d[ 2117.405988] stm32-dcmi 4c006000.dcmi: Horizontal Flip: false [ 2117.411721] stm32-dcmi 4c006000.dcmi: Vertical Flip: false [ 2117.417148] stm32-dcmi 4c006000.dcmi: Power Line Frequency: 50 Hz [ 2117.423265] stm32-dcmi 4c006000.dcmi: ================== END STATUS ================== ed Pix Format Device Capabilities Device Caps : 0x05200001 Video Capture Read/Write Streaming Extended Pix Format Media Driver Info: Driver name : stm32-dcmi Model : stm32-dcmi Serial : Bus info : platform:stm32-dcmi Media version : 5.0.0 Hardware revision: 0x00000000 (0) Driver version : 5.0.0 Interface Info: ID : 0x03000003 Type : V4L Video Entity Info: ID : 0x00000001 (1) Name : stm32_dcmi Function : V4L2 I/O Flags : default Pad 0x01000002 : 0: Sink Link 0x02000008: from remote pad 0x1000007 of entity 'mipid02 0-0014': Data, Enabled, Immutable Required ioctls: test MC information (see 'Media Driver Info' above): OK warn: ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-compliance.cpp(621): media bus_info 'platform:stm32-dcmi ' differs from V4L2 bus_info 'platform:dcmi' test VIDIOC_QUERYCAP: OK Allow for multiple opens: test second /dev/video0 open: OK warn: ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-compliance.cpp(621): media bus_info 'platform:stm32-dcmi ' differs from V4L2 bus_info 'platform:dcmi' 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 Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FRE[ 2117.564770] mipid02 0-0014: ================= START STATUS ================= Q[ 2117.572042] mipid02 0-0014: ================== END STATUS ================== UENCY: 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 test VIDIOC_QUERYCTRL: OK test VIDIOC_G/S_CTRL: OK test VIDIOC_G/S/TRY_EXT_CTRLS: OK test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 17 Private Controls: 0 Format ioctls (Input 0): test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK 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) fail: ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-test-formats.cpp(1338): node->frmsizes_count[pixfmt] > 1 test Cropping: FAIL test Composing: OK (Not Supported) test Scaling: OK (Not Supported) 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 VIDIOC_EXPBUF: OK test Requests: OK (Not Supported) Total for stm32-dcmi device /dev/video0: 45, Succeeded: 44, Failed: 1, Warnings: 2 -------------------------------------------------------------------------------- Compliance test for device /dev/v4l-subdev0: Required ioctls: Allow for multiple opens: test second /dev/v4l-subdev0 open: OK test for unlimited opens: OK Debug ioctls: 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 (Not Supported) test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 0 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: 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: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not Supported) test VIDIOC_G/S_PARM: OK (Not Supported) test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK (Not Supported) test VIDIOC_TRY_FMT: OK (Not Supported) test VIDIOC_S_FMT: OK (Not Supported) test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) test Cropping: OK (Not Supported) test Composing: OK (Not Supported) test Scaling: OK (Not Supported) Codec ioctls: 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: test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported) test VIDIOC_EXPBUF: OK (Not Supported) test Requests: OK (Not Supported) Total for device /dev/v4l-subdev0: 40, Succeeded: 40, Failed: 0, Warnings: 0 Grand Total for stm32-dcmi device /dev/media0: 92, Succeeded: 91, Failed: 1, Warnings: 2 BR, Hugues. On 4/1/19 1:10 PM, Hans Verkuil wrote: > Hi Hugues, > > On 4/1/19 11:31 AM, Hugues Fruchet wrote: >> This patch serie allows to connect non-parallel camera sensor to >> DCMI thanks to a bridge connected in between such as STMIPID02 [1]. >> >> Media controller support is introduced first, then support of >> several sub-devices within pipeline with dynamic linking >> between them. > > Can you post the output of v4l2-compliance -m /dev/mediaX ? > > Thanks! > > Hans > >> >> [1] https://www.spinics.net/lists/devicetree/msg278002.html >> >> Hugues Fruchet (2): >> media: stm32-dcmi: add media controller support >> media: stm32-dcmi: add support of several sub-devices >> >> drivers/media/platform/Kconfig | 2 +- >> drivers/media/platform/stm32/stm32-dcmi.c | 213 ++++++++++++++++++++++++------ >> 2 files changed, 177 insertions(+), 38 deletions(-) >> >
On 4/1/19 3:08 PM, Hugues FRUCHET wrote: > Hi Hans, > > Here it is. > > SHA1 is aa371c995ec2ad70323db00c47b3132002b060b7: > > Author: Hans Verkuil <hverkuil-cisco@xs4all.nl> 2019-02-08 16:21:23 > Committer: Hans Verkuil <hverkuil-cisco@xs4all.nl> 2019-02-08 16:21:23 > Parent: 98d5622551eb6b9a0397464fb52378949f33c364 (v4l2-compliance: > support m2m devices with -f) > Child: 59f9840781aab464c1331dcdb82e63dd0544b5c6 (v4l2-compliance: > remove duplicate MEDIA_IOC_DEVICE_INFO ioctl call) > Branches: master, master2, remotes/origin/master > Follows: v4l-utils-1.16.0 > Precedes: > > v4l2-compliance: -f bug fixes > > > Result is below: > > root@stm32mp1:~# v4l2-compliance -m /dev/media0 > v4l2-compliance SHA: eb8e3b07c9249ff56091ae4bc3ae9b76779db4cd, 32 bits > > Compliance test for stm32-dcmi device /dev/media0: > > Media Driver Info: > Driver name : stm32-dcmi > Model : stm32-dcmi > Serial : > Bus info : platform:stm32-dcmi > Media version : 5.0.0 > Hardware revision: 0x00000000 (0) > Driver version : 5.0.0 > > Required ioctls: > test MEDIA_IOC_DEVICE_INFO: OK > > Allow for multiple opens: > test second /dev/media0 open: OK > test MEDIA_IOC_DEVICE_INFO: OK > test for unlimited opens: OK > > Media Controller ioctls: > test MEDIA_IOC_G_TOPOLOGY: OK > Entities: 3 Interfaces: 2 Pads: 4 Links: 4 > test MEDIA_IOC_ENUM_ENTITIES/LINKS: OK > test MEDIA_IOC_SETUP_LINK: OK > > Total for stm32-dcmi device /dev/media0: 7, Succeeded: 7, Failed: 0, > Warnings: 0 > -------------------------------------------------------------------------------- > Compliance test for stm32-dcmi device /dev/video0: > > Driver Info: > Driver name : stm32-dcmi > Card type : STM32 Camera Memory Interface > Bus info : platform:dcmi > Driver version : 5.0.0 > Capabilities : 0x85200001 > Video Capture > Read/Write > Streaming > [ 2117.336477] stm32-dcmi 4c006000.dcmi: > ================= START STATUS ================= > E[ 2117.344647] stm32-dcmi 4c006000.dcmi: White Balance, Automatic: true > [ 2117.350990] stm32-dcmi 4c006000.dcmi: Blue Balance: 0 inactive > x[ 2117.356853] stm32-dcmi 4c006000.dcmi: Red Balance: 0 inactive > [ 2117.362645] stm32-dcmi 4c006000.dcmi: Auto Exposure: Auto Mode > [ 2117.368438] stm32-dcmi 4c006000.dcmi: Exposure: 0 inactive volatile > t[ 2117.374729] stm32-dcmi 4c006000.dcmi: Gain, Automatic: true > [ 2117.380335] stm32-dcmi 4c006000.dcmi: Gain: 0 inactive volatile > e[ 2117.386305] stm32-dcmi 4c006000.dcmi: Saturation: 64 > [ 2117.391275] stm32-dcmi 4c006000.dcmi: Hue: 0 > n[ 2117.395572] stm32-dcmi 4c006000.dcmi: Contrast: 0 > [ 2117.400305] stm32-dcmi 4c006000.dcmi: Test Pattern: Disabled > d[ 2117.405988] stm32-dcmi 4c006000.dcmi: Horizontal Flip: false > [ 2117.411721] stm32-dcmi 4c006000.dcmi: Vertical Flip: false > [ 2117.417148] stm32-dcmi 4c006000.dcmi: Power Line Frequency: 50 Hz > [ 2117.423265] stm32-dcmi 4c006000.dcmi: ================== END STATUS > ================== > ed Pix Format > Device Capabilities > Device Caps : 0x05200001 > Video Capture > Read/Write > Streaming > Extended Pix Format > Media Driver Info: > Driver name : stm32-dcmi > Model : stm32-dcmi > Serial : > Bus info : platform:stm32-dcmi > Media version : 5.0.0 > Hardware revision: 0x00000000 (0) > Driver version : 5.0.0 > Interface Info: > ID : 0x03000003 > Type : V4L Video > Entity Info: > ID : 0x00000001 (1) > Name : stm32_dcmi > Function : V4L2 I/O > Flags : default > Pad 0x01000002 : 0: Sink > Link 0x02000008: from remote pad 0x1000007 of entity 'mipid02 > 0-0014': Data, Enabled, Immutable > > Required ioctls: > test MC information (see 'Media Driver Info' above): OK > warn: > ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-compliance.cpp(621): > media bus_info 'platform:stm32-dcmi > ' differs from V4L2 bus_info 'platform:dcmi' > test VIDIOC_QUERYCAP: OK > > Allow for multiple opens: > test second /dev/video0 open: OK > warn: > ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-compliance.cpp(621): > media bus_info 'platform:stm32-dcmi > ' differs from V4L2 bus_info 'platform:dcmi' > 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 > > Input ioctls: > test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) > test VIDIOC_G/S_FRE[ 2117.564770] mipid02 0-0014: > ================= START STATUS ================= > Q[ 2117.572042] mipid02 0-0014: ================== END STATUS > ================== > UENCY: 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 > test VIDIOC_QUERYCTRL: OK > test VIDIOC_G/S_CTRL: OK > test VIDIOC_G/S/TRY_EXT_CTRLS: OK > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK > test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) > Standard Controls: 17 Private Controls: 0 > > Format ioctls (Input 0): > test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK > test VIDIOC_G/S_PARM: OK > 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) > fail: > ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-test-formats.cpp(1338): > node->frmsizes_count[pixfmt] > 1 > test Cropping: FAIL > test Composing: OK (Not Supported) > test Scaling: OK (Not Supported) > > 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 VIDIOC_EXPBUF: OK > test Requests: OK (Not Supported) > > Total for stm32-dcmi device /dev/video0: 45, Succeeded: 44, Failed: 1, > Warnings: 2 > -------------------------------------------------------------------------------- > Compliance test for device /dev/v4l-subdev0: > > > Required ioctls: > > Allow for multiple opens: > test second /dev/v4l-subdev0 open: OK > test for unlimited opens: OK > > Debug ioctls: > 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 (Not Supported) > test VIDIOC_G/S_AUDIO: OK (Not Supported) > Inputs: 0 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: > 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: > test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not Supported) > test VIDIOC_G/S_PARM: OK (Not Supported) > test VIDIOC_G_FBUF: OK (Not Supported) > test VIDIOC_G_FMT: OK (Not Supported) > test VIDIOC_TRY_FMT: OK (Not Supported) > test VIDIOC_S_FMT: OK (Not Supported) > test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) > test Cropping: OK (Not Supported) > test Composing: OK (Not Supported) > test Scaling: OK (Not Supported) > > Codec ioctls: > 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: > test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported) > test VIDIOC_EXPBUF: OK (Not Supported) > test Requests: OK (Not Supported) > > Total for device /dev/v4l-subdev0: 40, Succeeded: 40, Failed: 0, Warnings: 0 > > Grand Total for stm32-dcmi device /dev/media0: 92, Succeeded: 91, > Failed: 1, Warnings: 2 The warnings should be fixed (both warnings refer to the same problem). The fail was present before this patch series. The core problem there is that if there are multiple possible framesizes, then crop support is ambiguous: against which framesize do you crop? I see that dcmi_try_fmt() has a heuristic for that. We really need to fix this in the API, but this situation rarely occurs. So for now I don't think there is a need to fix the fail. Regards, Hans > > > BR, > Hugues. > > On 4/1/19 1:10 PM, Hans Verkuil wrote: >> Hi Hugues, >> >> On 4/1/19 11:31 AM, Hugues Fruchet wrote: >>> This patch serie allows to connect non-parallel camera sensor to >>> DCMI thanks to a bridge connected in between such as STMIPID02 [1]. >>> >>> Media controller support is introduced first, then support of >>> several sub-devices within pipeline with dynamic linking >>> between them. >> >> Can you post the output of v4l2-compliance -m /dev/mediaX ? >> >> Thanks! >> >> Hans >> >>> >>> [1] https://www.spinics.net/lists/devicetree/msg278002.html >>> >>> Hugues Fruchet (2): >>> media: stm32-dcmi: add media controller support >>> media: stm32-dcmi: add support of several sub-devices >>> >>> drivers/media/platform/Kconfig | 2 +- >>> drivers/media/platform/stm32/stm32-dcmi.c | 213 ++++++++++++++++++++++++------ >>> 2 files changed, 177 insertions(+), 38 deletions(-) >>>
Thanks Hans, I've aligned both namings by updating querycap: @@ -1257,7 +1257,8 @@ static int dcmi_querycap(struct file *file, void *priv, strscpy(cap->driver, DRV_NAME, sizeof(cap->driver)); strscpy(cap->card, "STM32 Camera Memory Interface", sizeof(cap->card)); - strscpy(cap->bus_info, "platform:dcmi", sizeof(cap->bus_info)); + snprintf(cap->bus_info, sizeof(cap->bus_info), + "platform:%s", DRV_NAME); return 0; } so now both V4L2 and MC are returning "platform:stm32-dcmi". I'll push in v2. BR, Hugues. On 4/1/19 3:30 PM, Hans Verkuil wrote: > On 4/1/19 3:08 PM, Hugues FRUCHET wrote: >> Hi Hans, >> >> Here it is. >> >> SHA1 is aa371c995ec2ad70323db00c47b3132002b060b7: >> >> Author: Hans Verkuil <hverkuil-cisco@xs4all.nl> 2019-02-08 16:21:23 >> Committer: Hans Verkuil <hverkuil-cisco@xs4all.nl> 2019-02-08 16:21:23 >> Parent: 98d5622551eb6b9a0397464fb52378949f33c364 (v4l2-compliance: >> support m2m devices with -f) >> Child: 59f9840781aab464c1331dcdb82e63dd0544b5c6 (v4l2-compliance: >> remove duplicate MEDIA_IOC_DEVICE_INFO ioctl call) >> Branches: master, master2, remotes/origin/master >> Follows: v4l-utils-1.16.0 >> Precedes: >> >> v4l2-compliance: -f bug fixes >> >> >> Result is below: >> >> root@stm32mp1:~# v4l2-compliance -m /dev/media0 >> v4l2-compliance SHA: eb8e3b07c9249ff56091ae4bc3ae9b76779db4cd, 32 bits >> >> Compliance test for stm32-dcmi device /dev/media0: >> >> Media Driver Info: >> Driver name : stm32-dcmi >> Model : stm32-dcmi >> Serial : >> Bus info : platform:stm32-dcmi >> Media version : 5.0.0 >> Hardware revision: 0x00000000 (0) >> Driver version : 5.0.0 >> >> Required ioctls: >> test MEDIA_IOC_DEVICE_INFO: OK >> >> Allow for multiple opens: >> test second /dev/media0 open: OK >> test MEDIA_IOC_DEVICE_INFO: OK >> test for unlimited opens: OK >> >> Media Controller ioctls: >> test MEDIA_IOC_G_TOPOLOGY: OK >> Entities: 3 Interfaces: 2 Pads: 4 Links: 4 >> test MEDIA_IOC_ENUM_ENTITIES/LINKS: OK >> test MEDIA_IOC_SETUP_LINK: OK >> >> Total for stm32-dcmi device /dev/media0: 7, Succeeded: 7, Failed: 0, >> Warnings: 0 >> -------------------------------------------------------------------------------- >> Compliance test for stm32-dcmi device /dev/video0: >> >> Driver Info: >> Driver name : stm32-dcmi >> Card type : STM32 Camera Memory Interface >> Bus info : platform:dcmi >> Driver version : 5.0.0 >> Capabilities : 0x85200001 >> Video Capture >> Read/Write >> Streaming >> [ 2117.336477] stm32-dcmi 4c006000.dcmi: >> ================= START STATUS ================= >> E[ 2117.344647] stm32-dcmi 4c006000.dcmi: White Balance, Automatic: true >> [ 2117.350990] stm32-dcmi 4c006000.dcmi: Blue Balance: 0 inactive >> x[ 2117.356853] stm32-dcmi 4c006000.dcmi: Red Balance: 0 inactive >> [ 2117.362645] stm32-dcmi 4c006000.dcmi: Auto Exposure: Auto Mode >> [ 2117.368438] stm32-dcmi 4c006000.dcmi: Exposure: 0 inactive volatile >> t[ 2117.374729] stm32-dcmi 4c006000.dcmi: Gain, Automatic: true >> [ 2117.380335] stm32-dcmi 4c006000.dcmi: Gain: 0 inactive volatile >> e[ 2117.386305] stm32-dcmi 4c006000.dcmi: Saturation: 64 >> [ 2117.391275] stm32-dcmi 4c006000.dcmi: Hue: 0 >> n[ 2117.395572] stm32-dcmi 4c006000.dcmi: Contrast: 0 >> [ 2117.400305] stm32-dcmi 4c006000.dcmi: Test Pattern: Disabled >> d[ 2117.405988] stm32-dcmi 4c006000.dcmi: Horizontal Flip: false >> [ 2117.411721] stm32-dcmi 4c006000.dcmi: Vertical Flip: false >> [ 2117.417148] stm32-dcmi 4c006000.dcmi: Power Line Frequency: 50 Hz >> [ 2117.423265] stm32-dcmi 4c006000.dcmi: ================== END STATUS >> ================== >> ed Pix Format >> Device Capabilities >> Device Caps : 0x05200001 >> Video Capture >> Read/Write >> Streaming >> Extended Pix Format >> Media Driver Info: >> Driver name : stm32-dcmi >> Model : stm32-dcmi >> Serial : >> Bus info : platform:stm32-dcmi >> Media version : 5.0.0 >> Hardware revision: 0x00000000 (0) >> Driver version : 5.0.0 >> Interface Info: >> ID : 0x03000003 >> Type : V4L Video >> Entity Info: >> ID : 0x00000001 (1) >> Name : stm32_dcmi >> Function : V4L2 I/O >> Flags : default >> Pad 0x01000002 : 0: Sink >> Link 0x02000008: from remote pad 0x1000007 of entity 'mipid02 >> 0-0014': Data, Enabled, Immutable >> >> Required ioctls: >> test MC information (see 'Media Driver Info' above): OK >> warn: >> ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-compliance.cpp(621): >> media bus_info 'platform:stm32-dcmi >> ' differs from V4L2 bus_info 'platform:dcmi' >> test VIDIOC_QUERYCAP: OK >> >> Allow for multiple opens: >> test second /dev/video0 open: OK >> warn: >> ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-compliance.cpp(621): >> media bus_info 'platform:stm32-dcmi >> ' differs from V4L2 bus_info 'platform:dcmi' >> 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 >> >> Input ioctls: >> test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) >> test VIDIOC_G/S_FRE[ 2117.564770] mipid02 0-0014: >> ================= START STATUS ================= >> Q[ 2117.572042] mipid02 0-0014: ================== END STATUS >> ================== >> UENCY: 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 >> test VIDIOC_QUERYCTRL: OK >> test VIDIOC_G/S_CTRL: OK >> test VIDIOC_G/S/TRY_EXT_CTRLS: OK >> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK >> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) >> Standard Controls: 17 Private Controls: 0 >> >> Format ioctls (Input 0): >> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK >> test VIDIOC_G/S_PARM: OK >> 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) >> fail: >> ../../../../../../../../../sources/v4l-utils/utils/v4l2-compliance/v4l2-test-formats.cpp(1338): >> node->frmsizes_count[pixfmt] > 1 >> test Cropping: FAIL >> test Composing: OK (Not Supported) >> test Scaling: OK (Not Supported) >> >> 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 VIDIOC_EXPBUF: OK >> test Requests: OK (Not Supported) >> >> Total for stm32-dcmi device /dev/video0: 45, Succeeded: 44, Failed: 1, >> Warnings: 2 >> -------------------------------------------------------------------------------- >> Compliance test for device /dev/v4l-subdev0: >> >> >> Required ioctls: >> >> Allow for multiple opens: >> test second /dev/v4l-subdev0 open: OK >> test for unlimited opens: OK >> >> Debug ioctls: >> 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 (Not Supported) >> test VIDIOC_G/S_AUDIO: OK (Not Supported) >> Inputs: 0 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: >> 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: >> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not Supported) >> test VIDIOC_G/S_PARM: OK (Not Supported) >> test VIDIOC_G_FBUF: OK (Not Supported) >> test VIDIOC_G_FMT: OK (Not Supported) >> test VIDIOC_TRY_FMT: OK (Not Supported) >> test VIDIOC_S_FMT: OK (Not Supported) >> test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) >> test Cropping: OK (Not Supported) >> test Composing: OK (Not Supported) >> test Scaling: OK (Not Supported) >> >> Codec ioctls: >> 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: >> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported) >> test VIDIOC_EXPBUF: OK (Not Supported) >> test Requests: OK (Not Supported) >> >> Total for device /dev/v4l-subdev0: 40, Succeeded: 40, Failed: 0, Warnings: 0 >> >> Grand Total for stm32-dcmi device /dev/media0: 92, Succeeded: 91, >> Failed: 1, Warnings: 2 > > The warnings should be fixed (both warnings refer to the same problem). > > The fail was present before this patch series. > > The core problem there is that if there are multiple possible framesizes, > then crop support is ambiguous: against which framesize do you crop? > > I see that dcmi_try_fmt() has a heuristic for that. We really need to fix > this in the API, but this situation rarely occurs. > > So for now I don't think there is a need to fix the fail. > > Regards, > > Hans > >> >> >> BR, >> Hugues. >> >> On 4/1/19 1:10 PM, Hans Verkuil wrote: >>> Hi Hugues, >>> >>> On 4/1/19 11:31 AM, Hugues Fruchet wrote: >>>> This patch serie allows to connect non-parallel camera sensor to >>>> DCMI thanks to a bridge connected in between such as STMIPID02 [1]. >>>> >>>> Media controller support is introduced first, then support of >>>> several sub-devices within pipeline with dynamic linking >>>> between them. >>> >>> Can you post the output of v4l2-compliance -m /dev/mediaX ? >>> >>> Thanks! >>> >>> Hans >>> >>>> >>>> [1] https://www.spinics.net/lists/devicetree/msg278002.html >>>> >>>> Hugues Fruchet (2): >>>> media: stm32-dcmi: add media controller support >>>> media: stm32-dcmi: add support of several sub-devices >>>> >>>> drivers/media/platform/Kconfig | 2 +- >>>> drivers/media/platform/stm32/stm32-dcmi.c | 213 ++++++++++++++++++++++++------ >>>> 2 files changed, 177 insertions(+), 38 deletions(-) >>>> >