Re: [PATCH 0/2] DCMI bridge support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>  2019-02-08 16:21:23
>> Committer: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>  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(-)
>>>>
> 




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux