On 2/4/19 1:00 PM, Rui Miguel Silva wrote: > Hi, > This series introduces the Media driver to work with the i.MX7 SoC. it uses the > already existing imx media core drivers but since the i.MX7, contrary to > i.MX5/6, do not have an IPU and because of that some changes in the imx media > core are made along this series to make it support that case. > > This patches adds CSI and MIPI-CSI2 drivers for i.MX7, along with several > configurations changes for this to work as a capture subsystem. Some bugs are > also fixed along the line. And necessary documentation. > > For a more detailed view of the capture paths, pads links in the i.MX7 please > take a look at the documentation in PATCH 10. > > The system used to test and develop this was the Warp7 board with an OV2680 > sensor, which output format is 10-bit bayer. So, only MIPI interface was > tested, a scenario with an parallel input would nice to have. > > Bellow goes an example of the output of the pads and links and the output of > v4l2-compliance testing. > > The v4l-utils version used is: > v4l2-compliance SHA: 1a6c8fe9a65c26e78ba34bd4aa2df28ede7d00cb, 32 bits > > The Media Driver fail some tests but this failures are coming from code out of > scope of this series (imx-capture), and some from the sensor OV2680 > but that I think not related with the sensor driver but with the testing and > core. > > The csi and mipi-csi entities pass all compliance tests. Darn, I was hoping to merge this, but this series is out of date with the latest imx code in the master branch. Can you rebase this series? Thanks! Hans > > Cheers, > Rui > > v11->v12: > Sakari: > - check v4l2_ctrl_handler_free and init when exposed to userspace > - check csi_remove missing v4l2_async_notifier_unregister > - media device unregister before ctrl_handler_free > - GPL => GPL v2 > - Fix squash of CSI patches, issue on v11 > - add Acked-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> 10--13 > - mipi_s_stream check for ret < 0 and call pm_runtime_put_noidle > - use __maybe_unused in pm functions > - Extra space before labels > > v10->v11: > Sakari: > - Remove cleanup functions in dev-common and do direct calls > - Fix notifier cleanup on error path > > Philipp Zabel: > - Add reviewed tag to video mux patch 12/13 > > v9->v10: > Hans: > - move dt-bindings patch up in the series to avoid checkpatch warnings > - Fix SPDX tag > > Sakari: > - use debugfs and drop driver parameters > - use dev_*() macros all over the place, drop v4l2_*() ones > - use clk_bulk > - give control to power state to runtime PM > - unsigned and const for some objects > > v8->v9: > Hans Verkuil: > - Fix issues detected by checkpatch strict, still some left: > - bigger kconfig option description > - some alignement parenthesis that were left as they are, to be more > readable > - added new patch (PATCH13) for Maintainers update > - SPDX in documentation rst file > Sakari Ailus: > - remove pad check in csi, this is done by core already > - destroy mutex in probe error path (add label) > - swap order in driver release > - initialize endpoint in stack > - use clk_bulk > kbuild test robot: > - add the missing imx-media-dev-common.c in patch 1/13 > - remove OWNER of module csis > Myself: > - add MAINTAINERS entries - new patch > > v7->v8: > Myself: > - rebase to latest linux-next (s/V4L2_MBUS_CSI2/V4L2_MBUS_CSI2_DPHY/) > - Rebuild and test with latest v4l2-compliance > - add Sakari reviewed-by tag to dt-bindings > > v6->v7: > Myself: > - Clock patches removed from this version since they were already merged > - Rebuild and test with the latest v4l2-compliance > - Add patch to video-mux regarding bayer formats > - remove reference to dependent patch serie (was already merged) > > Sakari Ailus: > - add port and endpoint explanantions > - fix some wording should -> shall > > v5->v6: > Rob Herring: > - rename power-domain node name from: pgc-power-domain to power-domain > - change mux-control-cells to 0 > - remove bus-width from mipi bindings and dts > - remove err... regarding clock names line > - remove clk-settle from example > - split mipi-csi2 and csi bindings per file > - add OF graph description to CSI > > Philipp Zabel: > - rework group IDs and rename them with an _IPU_ prefix, this allowed to remove > the ipu_present flag need. > > v4->v5: > Sakari Ailus: > - fix remove of the capture entries in dts bindings in the right patch > > Stephen Boyd: > - Send all series to clk list > > v3->v4: > Philipp Zabel: > - refactor initialization code from media device probe to be possible to used > from other modules > - Remove index of csi from all accurrencs (dts, code, documentation) > - Remove need for capture node for imx7 > - fix pinctrl for ov2680 > - add reviewed tag to add multiplexer controls patch > > Fabio Estevam: > - remove always on from new regulator > > Randy Dunlap: > - several text editing fixes in documentation > > Myself: > - rebase on top of v4 of Steve series > - change CSI probe to initialize imx media device > - remove csi mux parallel endpoint from mux to avoid warning message > > v2->v3: > Philipp Zabel: > - use of_match_device in imx-media-dev instead of of_device_match > - fix number of data lanes from 4 to 2 > - change the clock definitions and use of mipi > - move hs-settle from endpoint > > Rob Herring: > - fix phy-supply description > - add vendor properties > - fix examples indentations > > Stephen Boyd: patch 3/14 > - fix double sign-off > - add fixes tag > > Dong Aisheng: patch 3/14 > - fix double sign-off > - add Acked-by tag > > Shawn Guo: > patch 4/14 > - remove line breakage in parent redifiniton > - added Acked-by tag > > - dropped CMA area increase and add more verbose information in case of > dma allocation failure > patch 9/14 > - remove extra line between cells and reg masks > > Myself: > - rework on frame end in csi > - add rxcount in csi driver > - add power supplies to ov2680 node and fix gpio polarity > > v1->v2: > Dan Carpenter: > - fix return paths and codes; > - fix clk_frequency validation and return code; > - handle the csi remove (release resources that was missing) > - revert the logic arround the ipu_present flag > > Philipp Zabel: > - drop patch that changed the rgb formats and address the pixel/bus format in > mipi_csis code. > > MySelf: > - add patch that add ov2680 node to the warp7 dts, so the all data path is > complete. > - add linux-clk mailing list to the clock patches cc: > > > v4l2-compliance SHA: 1a6c8fe9a65c26e78ba34bd4aa2df28ede7d00cb, 32 bits > > Compliance test for imx7-csi device /dev/media0: > > Media Driver Info: > Driver name : imx7-csi > Model : imx-media > Serial : > Bus info : > 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: > Entity: 0x00000001 (Name: 'csi', Function: Video Interface Bridge) > Entity: 0x00000004 (Name: 'csi capture', Function: V4L2 I/O) > Entity: 0x0000000a (Name: 'csi_mux', Function: Video Muxer) > Entity: 0x0000000e (Name: 'imx7-mipi-csis.0', Function: Video Interface Bridge) > Entity: 0x00000011 (Name: 'ov2680 1-0036', Function: Camera Sensor) > Interface: 0x03000005 (Type: V4L Video, DevPath: /dev/video0) > Interface: 0x03000019 (Type: V4L Sub-Device, DevPath: /dev/v4l-subdev0) > Interface: 0x0300001b (Type: V4L Sub-Device, DevPath: /dev/v4l-subdev1) > Interface: 0x0300001d (Type: V4L Sub-Device, DevPath: /dev/v4l-subdev2) > Interface: 0x0300001f (Type: V4L Sub-Device, DevPath: /dev/v4l-subdev3) > Pad: 0x01000002 (0, csi, Sink) > Pad: 0x01000003 (1, csi, Source) > Pad: 0x01000007 (0, csi capture, Sink) > Pad: 0x0100000b (0, csi_mux, Sink) > Pad: 0x0100000c (1, csi_mux, Sink) > Pad: 0x0100000d (2, csi_mux, Source) > Pad: 0x0100000f (0, imx7-mipi-csis.0, Sink) > Pad: 0x01000010 (1, imx7-mipi-csis.0, Source) > Pad: 0x01000012 (0, ov2680 1-0036, Source) > Link: 0x02000006 (csi capture to interface /dev/video0) > Link: 0x02000008 (csi -> csi capture, Data, Enabled) > Link: 0x02000013 (imx7-mipi-csis.0 -> csi_mux, Data, Enabled) > Link: 0x02000015 (csi_mux -> csi, Data, Enabled) > Link: 0x02000017 (ov2680 1-0036 -> imx7-mipi-csis.0, Data, Enabled) > Link: 0x0200001a (csi to interface /dev/v4l-subdev0) > Link: 0x0200001c (csi_mux to interface /dev/v4l-subdev1) > Link: 0x0200001e (imx7-mipi-csis.0 to interface /dev/v4l-subdev2) > Link: 0x02000020 (ov2680 1-0036 to interface /dev/v4l-subdev3) > test MEDIA_IOC_G_TOPOLOGY: OK > Entities: 5 Interfaces: 5 Pads: 9 Links: 9 > Entity: 0x00000001 (Name: 'csi', Type: Unknown V4L2 Sub-Device, DevPath: /dev/v4l-subdev0) > Entity: 0x00000004 (Name: 'csi capture', Type: V4L2 I/O, DevPath: /dev/video0) > Entity: 0x0000000a (Name: 'csi_mux', Type: Unknown V4L2 Sub-Device, DevPath: /dev/v4l-subdev1) > Entity: 0x0000000e (Name: 'imx7-mipi-csis.0', Type: Unknown V4L2 Sub-Device, DevPath: /dev/v4l-subdev2) > Entity: 0x00000011 (Name: 'ov2680 1-0036', Type: Camera Sensor, DevPath: /dev/v4l-subdev3) > test MEDIA_IOC_ENUM_ENTITIES/LINKS: OK > test MEDIA_IOC_SETUP_LINK: OK > > Total for imx7-csi device /dev/media0: 7, Succeeded: 7, Failed: 0, Warnings: 0 > -------------------------------------------------------------------------------- > Compliance test for imx-media-captu device /dev/video0: > > Driver Info: > Driver name : imx-media-captu > Card type : imx-media-capture > Bus info : platform:csi > Driver version : 5.0.0 > Capabilities : 0x84200001 > Video Capture > Streaming > Extended Pix Format > Device Capabilities > Device Caps : 0x04200001 > Video Capture > Streaming > Extended Pix Format > Media Driver Info: > Driver name : imx7-csi > Model : imx-media > Serial : > Bus info : > Media version : 5.0.0 > Hardware revision: 0x00000000 (0) > Driver version : 5.0.0 > Interface Info: > ID : 0x03000005 > Type : V4L Video > Entity Info: > ID : 0x00000004 (4) > Name : csi capture > Function : V4L2 I/O > Pad 0x01000007 : 0: Sink > Link 0x02000008: from remote pad 0x1000003 of entity 'csi': Data, Enabled > > Required ioctls: > test MC information (see 'Media Driver Info' above): OK > test VIDIOC_QUERYCAP: OK > > Allow for multiple opens: > test second /dev/video0 open: OK > 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 (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: > info: checking v4l2_queryctrl of control 'User Controls' (0x00980001) > info: checking v4l2_queryctrl of control 'Exposure' (0x00980911) > info: checking v4l2_queryctrl of control 'Gain, Automatic' (0x00980912) > info: checking v4l2_queryctrl of control 'Gain' (0x00980913) > info: checking v4l2_queryctrl of control 'Horizontal Flip' (0x00980914) > info: checking v4l2_queryctrl of control 'Vertical Flip' (0x00980915) > info: checking v4l2_queryctrl of control 'Camera Controls' (0x009a0001) > info: checking v4l2_queryctrl of control 'Auto Exposure' (0x009a0901) > info: checking v4l2_queryctrl of control 'Image Processing Controls' (0x009f0001) > info: checking v4l2_queryctrl of control 'Test Pattern' (0x009f0903) > info: checking v4l2_queryctrl of control 'Exposure' (0x00980911) > info: checking v4l2_queryctrl of control 'Gain, Automatic' (0x00980912) > info: checking v4l2_queryctrl of control 'Gain' (0x00980913) > info: checking v4l2_queryctrl of control 'Horizontal Flip' (0x00980914) > info: checking v4l2_queryctrl of control 'Vertical Flip' (0x00980915) > test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK > test VIDIOC_QUERYCTRL: OK > info: checking control 'User Controls' (0x00980001) > info: checking control 'Exposure' (0x00980911) > info: checking control 'Gain, Automatic' (0x00980912) > info: checking control 'Gain' (0x00980913) > info: checking control 'Horizontal Flip' (0x00980914) > info: checking control 'Vertical Flip' (0x00980915) > info: checking control 'Camera Controls' (0x009a0001) > info: checking control 'Auto Exposure' (0x009a0901) > info: checking control 'Image Processing Controls' (0x009f0001) > info: checking control 'Test Pattern' (0x009f0903) > test VIDIOC_G/S_CTRL: OK > info: checking extended control 'User Controls' (0x00980001) > info: checking extended control 'Exposure' (0x00980911) > info: checking extended control 'Gain, Automatic' (0x00980912) > info: checking extended control 'Gain' (0x00980913) > info: checking extended control 'Horizontal Flip' (0x00980914) > info: checking extended control 'Vertical Flip' (0x00980915) > info: checking extended control 'Camera Controls' (0x009a0001) > info: checking extended control 'Auto Exposure' (0x009a0901) > info: checking extended control 'Image Processing Controls' (0x009f0001) > info: checking extended control 'Test Pattern' (0x009f0903) > test VIDIOC_G/S/TRY_EXT_CTRLS: OK > info: checking control event 'User Controls' (0x00980001) > fail: ../../../../../../../../../../v4l-utils/utils/v4l2-compliance/v4l2-test-controls.cpp(824): subscribe event for control 'User Controls' failed > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL > test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) > Standard Controls: 10 Private Controls: 0 > > Format ioctls: > info: found 1 formats for buftype 1 > test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK > test VIDIOC_G/S_PARM: OK (Not Supported) > 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) > 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: > info: test buftype Video Capture > test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK > test VIDIOC_EXPBUF: OK > test Requests: OK (Not Supported) > > Total for imx-media-captu device /dev/video0: 45, Succeeded: 44, Failed: 1, Warnings: 0 > -------------------------------------------------------------------------------- > Compliance test for imx7-csi device /dev/v4l-subdev0: > > Media Driver Info: > Driver name : imx7-csi > Model : imx-media > Serial : > Bus info : > Media version : 5.0.0 > Hardware revision: 0x00000000 (0) > Driver version : 5.0.0 > Interface Info: > ID : 0x03000019 > Type : V4L Sub-Device > Entity Info: > ID : 0x00000001 (1) > Name : csi > Function : Video Interface Bridge > Pad 0x01000002 : 0: Sink > Link 0x02000015: from remote pad 0x100000d of entity 'csi_mux': Data, Enabled > Pad 0x01000003 : 1: Source > Link 0x02000008: to remote pad 0x1000007 of entity 'csi capture': Data, Enabled > > Required ioctls: > test MC information (see 'Media Driver Info' above): OK > > 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 (Sink 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) > > Sub-Device ioctls (Source Pad 1): > 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 > 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 (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) > info: could not test the Request API, no suitable control found > test Requests: OK (Not Supported) > > Total for imx7-csi device /dev/v4l-subdev0: 55, Succeeded: 55, Failed: 0, Warnings: 0 > -------------------------------------------------------------------------------- > Compliance test for device /dev/v4l-subdev1: > > > Required ioctls: > > Allow for multiple opens: > test second /dev/v4l-subdev1 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) > info: could not test the Request API, no suitable control found > test Requests: OK (Not Supported) > > Total for device /dev/v4l-subdev1: 40, Succeeded: 40, Failed: 0, Warnings: 0 > -------------------------------------------------------------------------------- > Compliance test for device /dev/v4l-subdev2: > > > Required ioctls: > > Allow for multiple opens: > test second /dev/v4l-subdev2 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 (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) > info: could not test the Request API, no suitable control found > test Requests: OK (Not Supported) > > Total for device /dev/v4l-subdev2: 40, Succeeded: 40, Failed: 0, Warnings: 0 > -------------------------------------------------------------------------------- > Compliance test for device /dev/v4l-subdev3: > > > Required ioctls: > > Allow for multiple opens: > test second /dev/v4l-subdev3 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: > info: checking v4l2_queryctrl of control 'User Controls' (0x00980001) > info: checking v4l2_queryctrl of control 'Exposure' (0x00980911) > info: checking v4l2_queryctrl of control 'Gain, Automatic' (0x00980912) > info: checking v4l2_queryctrl of control 'Gain' (0x00980913) > info: checking v4l2_queryctrl of control 'Horizontal Flip' (0x00980914) > info: checking v4l2_queryctrl of control 'Vertical Flip' (0x00980915) > info: checking v4l2_queryctrl of control 'Camera Controls' (0x009a0001) > info: checking v4l2_queryctrl of control 'Auto Exposure' (0x009a0901) > info: checking v4l2_queryctrl of control 'Image Processing Controls' (0x009f0001) > info: checking v4l2_queryctrl of control 'Test Pattern' (0x009f0903) > info: checking v4l2_queryctrl of control 'Exposure' (0x00980911) > info: checking v4l2_queryctrl of control 'Gain, Automatic' (0x00980912) > info: checking v4l2_queryctrl of control 'Gain' (0x00980913) > info: checking v4l2_queryctrl of control 'Horizontal Flip' (0x00980914) > info: checking v4l2_queryctrl of control 'Vertical Flip' (0x00980915) > test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK > test VIDIOC_QUERYCTRL: OK > info: checking control 'User Controls' (0x00980001) > info: checking control 'Exposure' (0x00980911) > info: checking control 'Gain, Automatic' (0x00980912) > info: checking control 'Gain' (0x00980913) > info: checking control 'Horizontal Flip' (0x00980914) > info: checking control 'Vertical Flip' (0x00980915) > info: checking control 'Camera Controls' (0x009a0001) > info: checking control 'Auto Exposure' (0x009a0901) > info: checking control 'Image Processing Controls' (0x009f0001) > info: checking control 'Test Pattern' (0x009f0903) > test VIDIOC_G/S_CTRL: OK > info: checking extended control 'User Controls' (0x00980001) > info: checking extended control 'Exposure' (0x00980911) > info: checking extended control 'Gain, Automatic' (0x00980912) > info: checking extended control 'Gain' (0x00980913) > info: checking extended control 'Horizontal Flip' (0x00980914) > info: checking extended control 'Vertical Flip' (0x00980915) > info: checking extended control 'Camera Controls' (0x009a0001) > info: checking extended control 'Auto Exposure' (0x009a0901) > info: checking extended control 'Image Processing Controls' (0x009f0001) > info: checking extended control 'Test Pattern' (0x009f0903) > test VIDIOC_G/S/TRY_EXT_CTRLS: OK > info: checking control event 'User Controls' (0x00980001) > fail: ../../../../../../../../../../v4l-utils/utils/v4l2-compliance/v4l2-test-controls.cpp(824): subscribe event for control 'User Controls' failed > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL > test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) > Standard Controls: 10 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-subdev3: 40, Succeeded: 39, Failed: 1, Warnings: 0 > > Grand Total for imx7-csi device /dev/media0: 227, Succeeded: 225, Failed: 2, Warnings: 0 > > Rui Miguel Silva (13): > media: staging/imx: refactor imx media device probe > media: staging/imx: rearrange group id to take in account IPU > media: dt-bindings: add bindings for i.MX7 media driver > media: staging/imx7: add imx7 CSI subdev driver > media: staging/imx7: add MIPI CSI-2 receiver subdev for i.MX7 > ARM: dts: imx7s: add mipi phy power domain > ARM: dts: imx7s: add multiplexer controls > ARM: dts: imx7: Add video mux, csi and mipi_csi and connections > ARM: dts: imx7s-warp: add ov2680 sensor node > media: imx7.rst: add documentation for i.MX7 media driver > media: staging/imx: add i.MX7 entries to TODO file > media: video-mux: add bayer formats > media: MAINTAINERS: add entry for Freescale i.MX7 media driver > > .../devicetree/bindings/media/imx7-csi.txt | 45 + > .../bindings/media/imx7-mipi-csi2.txt | 90 ++ > Documentation/media/v4l-drivers/imx7.rst | 157 ++ > Documentation/media/v4l-drivers/index.rst | 1 + > MAINTAINERS | 11 + > arch/arm/boot/dts/imx7s-warp.dts | 95 ++ > arch/arm/boot/dts/imx7s.dtsi | 44 +- > drivers/media/platform/video-mux.c | 20 + > drivers/staging/media/imx/Kconfig | 9 +- > drivers/staging/media/imx/Makefile | 4 + > drivers/staging/media/imx/TODO | 9 + > drivers/staging/media/imx/imx-ic-common.c | 6 +- > drivers/staging/media/imx/imx-ic-prp.c | 16 +- > drivers/staging/media/imx/imx-media-csi.c | 6 +- > .../staging/media/imx/imx-media-dev-common.c | 89 ++ > drivers/staging/media/imx/imx-media-dev.c | 103 +- > .../staging/media/imx/imx-media-internal-sd.c | 20 +- > drivers/staging/media/imx/imx-media-of.c | 6 +- > drivers/staging/media/imx/imx-media-utils.c | 12 +- > drivers/staging/media/imx/imx-media.h | 35 +- > drivers/staging/media/imx/imx7-media-csi.c | 1365 +++++++++++++++++ > drivers/staging/media/imx/imx7-mipi-csis.c | 1186 ++++++++++++++ > 22 files changed, 3210 insertions(+), 119 deletions(-) > create mode 100644 Documentation/devicetree/bindings/media/imx7-csi.txt > create mode 100644 Documentation/devicetree/bindings/media/imx7-mipi-csi2.txt > create mode 100644 Documentation/media/v4l-drivers/imx7.rst > create mode 100644 drivers/staging/media/imx/imx-media-dev-common.c > create mode 100644 drivers/staging/media/imx/imx7-media-csi.c > create mode 100644 drivers/staging/media/imx/imx7-mipi-csis.c >