On 06/15/16 12:43, Jack Mitchell wrote: > On 14/06/16 23:48, Steve Longerbeam wrote: >> Tested on imx6q SabreAuto with ADV7180, and imx6q SabreSD with >> mipi-csi2 OV5640. There is device-tree support also for imx6qdl >> SabreLite, but that is not tested. Also, this driver should >> theoretically work on i.MX5 targets, but that is also untested. > > I tested this on a sabrelite with ov5640 MIPI camera. I managed to capture multiple images of a few different resolutions without issue. I did get a kernel splat at one point though: > > [ 905.469680] WARNING: CPU: 3 PID: 349 at drivers/media/v4l2-core/v4l2-ioctl.c:2174 v4l_cropcap+0x15c/0x190 Known bug. Fix is waiting to be merged. Regards, Hans > [ 905.482308] Modules linked in: dw_hdmi_ahb_audio evbug > [ 905.489079] CPU: 3 PID: 349 Comm: capture-example Tainted: G W 4.7.0-rc1-00095-g921736c0-dirty #7 > [ 905.502069] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) > [ 905.510116] Backtrace: > [ 905.514066] [<c010c1b0>] (dump_backtrace) from [<c010c3a8>] (show_stack+0x18/0x1c) > [ 905.523161] r7:00000000 r6:600f0013 r5:00000000 r4:c0e21bbc > [ 905.530442] [<c010c390>] (show_stack) from [<c03e9468>] (dump_stack+0xb4/0xe8) > [ 905.539210] [<c03e93b4>] (dump_stack) from [<c012473c>] (__warn+0xd8/0x104) > [ 905.547680] r9:c06219b0 r8:0000087e r7:00000009 r6:c0c51b10 r5:00000000 r4:00000000 > [ 905.557086] [<c0124664>] (__warn) from [<c012481c>] (warn_slowpath_null+0x28/0x30) > [ 905.566172] r9:c5e09680 r8:00000000 r7:c63c0e00 r6:c5e09680 r5:c0a7b2fc r4:c6223e18 > [ 905.575577] [<c01247f4>] (warn_slowpath_null) from [<c06219b0>] (v4l_cropcap+0x15c/0x190) > [ 905.585296] [<c0621854>] (v4l_cropcap) from [<c0623678>] (__video_do_ioctl+0x280/0x300) > [ 905.594824] r8:00000000 r7:c6248000 r6:c02c563a r5:00000003 r4:c0621854 > [ 905.603176] [<c06233f8>] (__video_do_ioctl) from [<c06230c4>] (video_usercopy+0x208/0x520) > [ 905.612994] r10:c6223e18 r9:c5e09680 r8:bef3fb60 r7:00000000 r6:00000000 r5:0000002c > [ 905.622542] r4:c02c563a > [ 905.626692] [<c0622ebc>] (video_usercopy) from [<c06233f0>] (video_ioctl2+0x14/0x1c) > [ 905.636129] r10:00000000 r9:c6222000 r8:c62e0088 r7:bef3fb60 r6:c02c563a r5:c5e09680 > [ 905.645837] r4:c6248000 > [ 905.650146] [<c06233dc>] (video_ioctl2) from [<c061e098>] (v4l2_ioctl+0xac/0xe8) > [ 905.659402] [<c061dfec>] (v4l2_ioctl) from [<c022c2c8>] (do_vfs_ioctl+0x9c/0xa28) > [ 905.668768] r9:c6222000 r8:00000003 r7:c022cc90 r6:c5e09680 r5:c61fcc68 r4:bef3fb60 > [ 905.678598] [<c022c22c>] (do_vfs_ioctl) from [<c022cc90>] (SyS_ioctl+0x3c/0x64) > [ 905.687898] r10:00000000 r9:c6222000 r8:bef3fb60 r7:c02c563a r6:c5e09680 r5:00000003 > [ 905.697911] r4:c5e09680 > [ 905.702505] [<c022cc54>] (SyS_ioctl) from [<c0107c20>] (ret_fast_syscall+0x0/0x1c) > [ 905.712135] r9:c6222000 r8:c0107dc4 r7:00000036 r6:000107cc r5:00000000 r4:00012170 > [ 905.722143] ---[ end trace 772a5fdfa424cbd1 ]--- > > Trying to use a user pointer rather than mmap also fails and causes a kernel splat. > > Apart from that and a few v4l2-compliance tests failing which you already mentioned, it seems to work OK. I'll try and do some more testing and see if I can come back with some more feedback. > > Tested-by: Jack Mitchell <jack@xxxxxxxxxxxxx> > > Cheers, > Jack. > >> >> Not run through v4l2-compliance yet, but that is in my queue. >> >> >> Philipp Zabel (2): >> ARM: dts: imx6qdl: Add mipi_ipu1/2 video muxes, mipi_csi, and their >> connections >> media: imx: Add video switch >> >> Steve Longerbeam (35): >> gpu: ipu-v3: Add Video Deinterlacer unit >> gpu: ipu-cpmem: Add ipu_cpmem_set_uv_offset() >> gpu: ipu-cpmem: Add ipu_cpmem_get_burstsize() >> gpu: ipu-v3: Add ipu_get_num() >> gpu: ipu-v3: Add IDMA channel linking support >> gpu: ipu-v3: Add ipu_set_vdi_src_mux() >> gpu: ipu-v3: Add VDI input IDMAC channels >> gpu: ipu-v3: Add ipu_csi_set_src() >> gpu: ipu-v3: Add ipu_ic_set_src() >> gpu: ipu-v3: set correct full sensor frame for PAL/NTSC >> gpu: ipu-v3: Fix CSI data format for 16-bit media bus formats >> gpu: ipu-v3: Fix IRT usage >> gpu: ipu-ic: Add complete image conversion support with tiling >> gpu: ipu-ic: allow multiple handles to ic >> gpu: ipu-v3: rename CSI client device >> ARM: dts: imx6qdl: Flesh out MIPI CSI2 receiver node >> ARM: dts: imx6-sabrelite: add video capture ports and connections >> ARM: dts: imx6-sabresd: add video capture ports and connections >> ARM: dts: imx6-sabreauto: create i2cmux for i2c3 >> ARM: dts: imx6-sabreauto: add reset-gpios property for max7310 >> ARM: dts: imx6-sabreauto: add pinctrl for gpt input capture >> ARM: dts: imx6-sabreauto: add video capture ports and connections >> ARM: dts: imx6qdl: add mem2mem device for sabre* boards >> gpio: pca953x: Add reset-gpios property >> clocksource/drivers/imx: add input capture support >> v4l: Add signal lock status to source change events >> media: Add camera interface driver for i.MX5/6 >> media: imx: Add MIPI CSI-2 Receiver driver >> media: imx: Add support for MIPI CSI-2 OV5640 >> media: imx: Add support for Parallel OV5642 >> media: imx: Add support for ADV7180 Video Decoder >> media: adv7180: add power pin control >> media: adv7180: implement g_parm >> media: Add i.MX5/6 mem2mem driver >> ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers >> >> Suresh Dhandapani (1): >> gpu: ipu-v3: Fix CSI0 blur in NTSC format >> >> Documentation/DocBook/media/v4l/vidioc-dqevent.xml | 12 +- >> Documentation/devicetree/bindings/media/imx.txt | 449 ++ >> Documentation/video4linux/imx_camera.txt | 243 ++ >> arch/arm/boot/dts/imx6dl-sabresd.dts | 44 + >> arch/arm/boot/dts/imx6dl.dtsi | 183 + >> arch/arm/boot/dts/imx6q-sabreauto.dts | 7 + >> arch/arm/boot/dts/imx6q-sabrelite.dts | 6 + >> arch/arm/boot/dts/imx6q-sabresd.dts | 22 + >> arch/arm/boot/dts/imx6q.dtsi | 120 + >> arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 166 +- >> arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 95 + >> arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 145 +- >> arch/arm/boot/dts/imx6qdl.dtsi | 13 + >> arch/arm/configs/imx_v6_v7_defconfig | 2 + >> drivers/clocksource/timer-imx-gpt.c | 463 ++- >> drivers/gpio/gpio-pca953x.c | 28 + >> drivers/gpu/ipu-v3/Makefile | 2 +- >> drivers/gpu/ipu-v3/ipu-common.c | 155 +- >> drivers/gpu/ipu-v3/ipu-cpmem.c | 13 + >> drivers/gpu/ipu-v3/ipu-csi.c | 36 +- >> drivers/gpu/ipu-v3/ipu-ic.c | 1769 +++++++- >> drivers/gpu/ipu-v3/ipu-prv.h | 7 + >> drivers/gpu/ipu-v3/ipu-vdi.c | 266 ++ >> drivers/media/i2c/adv7180.c | 73 + >> drivers/staging/media/Kconfig | 2 + >> drivers/staging/media/Makefile | 1 + >> drivers/staging/media/imx/Kconfig | 35 + >> drivers/staging/media/imx/Makefile | 2 + >> drivers/staging/media/imx/capture/Kconfig | 42 + >> drivers/staging/media/imx/capture/Makefile | 10 + >> drivers/staging/media/imx/capture/adv7180.c | 1533 +++++++ >> drivers/staging/media/imx/capture/imx-camif.c | 2496 +++++++++++ >> drivers/staging/media/imx/capture/imx-camif.h | 281 ++ >> drivers/staging/media/imx/capture/imx-csi.c | 195 + >> drivers/staging/media/imx/capture/imx-ic-prpenc.c | 660 +++ >> drivers/staging/media/imx/capture/imx-of.c | 354 ++ >> drivers/staging/media/imx/capture/imx-of.h | 18 + >> drivers/staging/media/imx/capture/imx-smfc.c | 505 +++ >> drivers/staging/media/imx/capture/imx-vdic.c | 994 +++++ >> .../staging/media/imx/capture/imx-video-switch.c | 348 ++ >> drivers/staging/media/imx/capture/mipi-csi2.c | 373 ++ >> drivers/staging/media/imx/capture/ov5640-mipi.c | 2318 +++++++++++ >> drivers/staging/media/imx/capture/ov5642.c | 4333 ++++++++++++++++++++ >> drivers/staging/media/imx/m2m/Makefile | 1 + >> drivers/staging/media/imx/m2m/imx-m2m.c | 1049 +++++ >> include/linux/mxc_icap.h | 20 + >> include/media/imx.h | 15 + >> include/uapi/Kbuild | 1 + >> include/uapi/linux/v4l2-controls.h | 8 + >> include/uapi/linux/videodev2.h | 1 + >> include/uapi/media/Kbuild | 3 + >> include/uapi/media/adv718x.h | 42 + >> include/uapi/media/imx.h | 22 + >> include/video/imx-ipu-v3.h | 96 +- >> 54 files changed, 19946 insertions(+), 131 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/media/imx.txt >> create mode 100644 Documentation/video4linux/imx_camera.txt >> create mode 100644 drivers/gpu/ipu-v3/ipu-vdi.c >> create mode 100644 drivers/staging/media/imx/Kconfig >> create mode 100644 drivers/staging/media/imx/Makefile >> create mode 100644 drivers/staging/media/imx/capture/Kconfig >> create mode 100644 drivers/staging/media/imx/capture/Makefile >> create mode 100644 drivers/staging/media/imx/capture/adv7180.c >> create mode 100644 drivers/staging/media/imx/capture/imx-camif.c >> create mode 100644 drivers/staging/media/imx/capture/imx-camif.h >> create mode 100644 drivers/staging/media/imx/capture/imx-csi.c >> create mode 100644 drivers/staging/media/imx/capture/imx-ic-prpenc.c >> create mode 100644 drivers/staging/media/imx/capture/imx-of.c >> create mode 100644 drivers/staging/media/imx/capture/imx-of.h >> create mode 100644 drivers/staging/media/imx/capture/imx-smfc.c >> create mode 100644 drivers/staging/media/imx/capture/imx-vdic.c >> create mode 100644 drivers/staging/media/imx/capture/imx-video-switch.c >> create mode 100644 drivers/staging/media/imx/capture/mipi-csi2.c >> create mode 100644 drivers/staging/media/imx/capture/ov5640-mipi.c >> create mode 100644 drivers/staging/media/imx/capture/ov5642.c >> create mode 100644 drivers/staging/media/imx/m2m/Makefile >> create mode 100644 drivers/staging/media/imx/m2m/imx-m2m.c >> create mode 100644 include/linux/mxc_icap.h >> create mode 100644 include/media/imx.h >> create mode 100644 include/uapi/media/Kbuild >> create mode 100644 include/uapi/media/adv718x.h >> create mode 100644 include/uapi/media/imx.h >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html