On 02/06/2018 09:27 PM, Tim Harvey wrote:

<snip>

> v4l2-compliance test results:
>  - with the following kernel patches:
>    v4l2-subdev: clear reserved fields
>  . v4l2-subdev: without controls return -ENOTTY
> 
> v4l2-compliance SHA   : b2f8f9049056eb6f9e028927dacb2c715a062df8
> Media Driver Info:
>       Driver name      : imx-media
>       Model            : imx-media
>       Serial           : 
>       Bus info         : 
>       Media version    : 4.15.0
>       Hardware revision: 0x00000000 (0)
>       Driver version   : 4.15.0
> Interface Info:
>       ID               : 0x0300008f
>       Type             : V4L Sub-Device
> Entity Info:
>       ID               : 0x00000003 (3)
>       Name             : tda19971 2-0048
>       Function         : Unknown

This is missing. It should be one of these:

https://hverkuil.home.xs4all.nl/spec/uapi/mediactl/media-types.html#media-entity-type

However, we don't have a proper function defined.

I would suggest adding a new MEDIA_ENT_F_DTV_DECODER analogous to 
MEDIA_ENT_F_ATV_DECODER.

It would be a new patch adding this + documentation.

>       Pad 0x01000004   : Source
>         Link 0x0200006f: to remote pad 0x1000063 of entity 'ipu1_csi0_mux': 
> Data
> 
> Compliance test for device /dev/v4l-subdev1:
> 
> Allow for multiple opens:
>       test second /dev/v4l-subdev1 open: OK
>       test for unlimited opens: OK
> 
> Debug ioctls:
>       test VIDIOC_LOG_STATUS: OK
> 
> 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
>       test VIDIOC_DV_TIMINGS_CAP: OK
>       test VIDIOC_G/S_EDID: OK

Nice!

> 
> Sub-Device ioctls (Source Pad 0):
>       test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/FRAME_INTERVAL: OK
>       test Try VIDIOC_SUBDEV_G/S_FMT: OK
>       test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>       test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/FRAME_INTERVAL: OK
>       test Active VIDIOC_SUBDEV_G/S_FMT: OK
>       test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
>       test VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: 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

Why doesn't this show anything? You have at least one control, so this should
reflect that. Does 'v4l2-ctl -d /dev/v4l-subdev1 -l' show any controls?

I think sd->ctrl_handler is never set to the v4l2_ctrl_handler pointer.

Have you ever tested the controls?

Looking closer I also notice that the control handler is never freed. Or
checked for errors when it is created in the probe function. Hmm, I should
have caught that earlier.

Regards,

        Hans

Reply via email to