On Thu, Feb 8, 2018 at 11:41 PM, Hans Verkuil <hverk...@xs4all.nl> wrote:
> On 02/09/2018 07:01 AM, Tim Harvey wrote:
>>
>> I don't see v4l2-subdev.c (or anything) ever calling g_input_status.
>> How do I test this?
>
> Huh, that's a very good question! It is meant to be called by bridge
> drivers implementing VIDIOC_ENUMINPUT. But that doesn't apply to the imx
> driver since it is expecting userspace to talk directly to the subdev.
>
> Now for the DV_TIMINGS API this doesn't matter all that much since
> QUERY_DV_TIMINGS can do the same job through the returned error code, but
> for analog TV there is no such option (QUERYSTD doesn't support such
> detailed feedback).
>
> I see that you have an adv7180 in your system. Can you run
> 'v4l2-compliance -uX' for the adv7180 subdev and post the output here?
>


# v4l2-compliance -u0
v4l2-compliance SHA   : b2f8f9049056eb6f9e028927dacb2c715a062df8

Compliance test for device /d[ 2526.153591] adv7180 2-0020: =================  S
TART STATUS  =================
ev/v4l-subdev0:

Media Driver I[ 2526.162531] adv7180 2-0020: ==================  END STATUS  ===
===============
nfo:
        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               : 0x0300008d
        Type             : V4L Sub-Device
Entity Info:
        ID               : 0x00000001 (1)
        Name             : adv7180 2-0020
        Function         : FAIL: Unknown V4L2 Sub-Device
        Pad 0x01000002   : Source
          Link 0x0200007f: to remote pad 0x1000067 of entity 'ipu2_csi1_mux': Da
ta

Required ioctls:
        test MC information (see 'Media Driver Info' above): FAIL

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)

Sub-Device ioctls (Source Pad 0):
        test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/FRAME_INTERVAL: OK
                fail: v4l2-test-subdevs.cpp(301): fmt.width == 0 ||
fmt.width == ~0U
                fail: v4l2-test-subdevs.cpp(342):
checkMBusFrameFmt(node, fmt.format)
        test Try VIDIOC_SUBDEV_G/S_FMT: FAIL
        test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
        test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/FRAME_INTERVAL: OK
                fail: v4l2-test-subdevs.cpp(307): fmt.ycbcr_enc == 0xffff
                fail: v4l2-test-subdevs.cpp(342):
checkMBusFrameFmt(node, fmt.format)
        test Active VIDIOC_SUBDEV_G/S_FMT: FAIL
        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
        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: 5 Private Controls: 1

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)

Total: 47, Succeeded: 44, Failed: 3, Warnings: 0

> Analog TV receivers are rare in MC bridge drivers, and I see that the subdev
> API doesn't even support the G/S/QUERY/ENUM_STD ioctls! I think the adv7180 is
> basically unusable in your system. And we need a subdev replacement for
> VIDIOC_ENUMINPUT.
>
> Was the adv7180 ever tested? Are you able to test it?

Yes, it works - I've tested and used it.

Tim

Reply via email to