On Thu, Feb 8, 2018 at 11:41 PM, Hans Verkuil <hverkuil@xxxxxxxxx> 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