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
[ 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