All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: Steve Longerbeam <slongerbeam@gmail.com>, linux-media@vger.kernel.org
Cc: Steve Longerbeam <steve_longerbeam@mentor.com>,
	David Peverley <pev@audiogeek.co.uk>
Subject: Re: [PATCH 00/43] i.MX6 Video capture
Date: Sun, 08 Jun 2014 10:39:11 +0200	[thread overview]
Message-ID: <5394212F.2080209@xs4all.nl> (raw)
In-Reply-To: <53942098.9000109@xs4all.nl>

I forgot to mention that I CC-ed David Peverley who was/is also working on a
proper i.MX6 v4l2 driver. I'm sure he'll be interested in this as well.

Regards,

	Hans

On 06/08/2014 10:36 AM, Hans Verkuil wrote:
> Hi Steve!
> 
> On 06/07/2014 11:56 PM, Steve Longerbeam wrote:
>> Hi all,
>>
>> This patch set adds video capture support for the Freescale i.MX6 SOC.
>>
>> It is a from-scratch standardized driver that works with community
>> v4l2 utilities, such as v4l2-ctl, v4l2-cap, and the v4l2src gstreamer
>> plugin. It uses the latest v4l2 interfaces (subdev, videobuf2).
>> Please see Documentation/video4linux/mx6_camera.txt for it's full list
>> of features!
>>
>> The first 38 patches:
>>
>> - prepare the ipu-v3 driver for video capture support. The current driver
>>   contains only video display functionality to support the imx DRM drivers.
>>   At some point ipu-v3 should be moved out from under staging/imx-drm since
>>   it will no longer only support DRM.
>>
>> - Adds the device tree nodes and OF graph bindings for video capture support
>>   on sabrelite, sabresd, and sabreauto reference platforms.
>>
>> The new i.MX6 capture host interface driver is at patch 39.
>>
>> To support the sensors found on the sabrelite, sabresd, and sabreauto,
>> three patches add sensor subdev's for parallel OV5642, MIPI CSI-2 OV5640,
>> and the ADV7180 decoder chip, beginning at patch 40.
>>
>> There is an existing adv7180 subdev driver under drivers/media/i2c, but
>> it needs some extra functionality to work on the sabreauto. It will need
>> OF graph bindings support and gpio for a power-on pin on the sabreauto.
>> It would also need to send a new subdev notification to take advantage
>> of decoder status change handling provided by the host driver. This
>> feature makes it possible to correctly handle "hot" (while streaming)
>> signal lock/unlock and autodetected video standard changes.
> 
> A new V4L2_EVENT_SOURCE_CHANGE event has just been added for that.
> 
>> Usage notes are found in Documentation/video4linux/mx6_camera.txt for the
>> above three reference platforms.
>>
>> The driver source is under drivers/staging/media/imx6/capture/.
> 
> Thank you for this patch series! Much appreciated that this hardware is
> finally going to supported with a proper driver.
> 
> I did a quick scan of the driver and I noticed a few things that need
> to be fixed: instead of implementing g/s_crop, implement g/s_selection:
> new drivers should implement the selection API and they will get the crop
> API for free.
> 
> You should use the vb2 helper functions (vb2_fop_*, vb2_ioctl_*) unless
> there is a good reason not to do it. Those functions should simplify the
> code and they give you proper 'streaming ownership'. See also the example
> code Documentation/video4linux/v4l2-pci-skeleton.c.
> 
> Finally you should run the v4l2-compliance test tool and fix any failures.
> 
> That tool is part of git://linuxtv.org/v4l-utils.git. Always compile from
> that repository to be sure you use the latest code.
> 
> Test first with 'v4l2-compliance'. When all issues are fixed, then test
> with 'v4l2-compliance -s' to test actual streaming behavior as well.
> 
> When you post v2 of this patch series I want to see the output of
> 'v4l2-compliance -s'! New drivers should pass v4l2-compliance. However,
> this is a staging driver so I won't be that strict, but it seems to be
> the intention that this driver will become a mainline driver, so I would
> recommend to fix any issues now rather than later.
> 
> If you have questions about v4l2-compliance it it might be easiest to
> set up an irc session where we go through them. In that case mail me
> so we can set up a time and date to do that. I'm in timezone UTC+2.
> 
> Regards,
> 
> 	Hans
> 
>>
>>
>> Steve Longerbeam (43):
>>   imx-drm: ipu-v3: Move imx-ipu-v3.h to include/linux/platform_data/
>>   ARM: dts: imx6qdl: Add ipu aliases
>>   imx-drm: ipu-v3: Add ipu_get_num()
>>   imx-drm: ipu-v3: Add solo/dual-lite IPU device type
>>   imx-drm: ipu-v3: Map IOMUXC registers
>>   imx-drm: ipu-v3: Add functions to set CSI/IC source muxes
>>   imx-drm: ipu-v3: Rename and add IDMAC channels
>>   imx-drm: ipu-v3: Add units required for video capture
>>   imx-drm: ipu-v3: Add ipu_mbus_code_to_colorspace()
>>   imx-drm: ipu-v3: Add rotation mode conversion utilities
>>   imx-drm: ipu-v3: Add helper function checking if pixfmt is planar
>>   imx-drm: ipu-v3: Move IDMAC channel names to imx-ipu-v3.h
>>   imx-drm: ipu-v3: Add ipu_idmac_buffer_is_ready()
>>   imx-drm: ipu-v3: Add ipu_idmac_clear_buffer()
>>   imx-drm: ipu-v3: Add ipu_idmac_current_buffer()
>>   imx-drm: ipu-v3: Add __ipu_idmac_reset_current_buffer()
>>   imx-drm: ipu-v3: Add ipu_stride_to_bytes()
>>   imx-drm: ipu-v3: Add ipu_idmac_enable_watermark()
>>   imx-drm: ipu-v3: Add ipu_idmac_lock_enable()
>>   imx-drm: ipu-v3: Add idmac channel linking support
>>   imx-drm: ipu-v3: Add ipu_bits_per_pixel()
>>   imx-drm: ipu-v3: Add ipu-cpmem unit
>>   imx-drm: ipu-cpmem: Add ipu_cpmem_set_block_mode()
>>   imx-drm: ipu-cpmem: Add ipu_cpmem_set_axi_id()
>>   imx-drm: ipu-cpmem: Add ipu_cpmem_set_rotation()
>>   imx-drm: ipu-cpmem: Add second buffer support to ipu_cpmem_set_image()
>>   imx-drm: ipu-v3: Add more planar formats support
>>   imx-drm: ipu-cpmem: Add ipu_cpmem_dump()
>>   imx-drm: ipu-v3: Add ipu_dump()
>>   ARM: dts: imx6: add pin groups for imx6q/dl for IPU1 CSI0
>>   ARM: dts: imx6qdl: Flesh out MIPI CSI2 receiver node
>>   ARM: dts: imx: sabrelite: add video capture ports and endpoints
>>   ARM: dts: imx6-sabresd: add video capture ports and endpoints
>>   ARM: dts: imx6-sabreauto: add video capture ports and endpoints
>>   ARM: dts: imx6qdl: Add simple-bus to ipu compatibility
>>   gpio: pca953x: Add reset-gpios property
>>   ARM: imx6q: clk: Add video 27m clock
>>   media: imx6: Add device tree binding documentation
>>   media: Add new camera interface driver for i.MX6
>>   media: imx6: Add support for MIPI CSI-2 OV5640
>>   media: imx6: Add support for Parallel OV5642
>>   media: imx6: Add support for ADV7180 Video Decoder
>>   ARM: imx_v6_v7_defconfig: Enable video4linux drivers
>>
>>  .../devicetree/bindings/clock/imx6q-clock.txt      |    1 +
>>  Documentation/devicetree/bindings/media/imx6.txt   |  433 ++
>>  .../bindings/staging/imx-drm/fsl-imx-drm.txt       |    6 +-
>>  .../devicetree/bindings/vendor-prefixes.txt        |    1 +
>>  Documentation/video4linux/mx6_camera.txt           |  188 +
>>  arch/arm/boot/dts/imx6q.dtsi                       |    3 +-
>>  arch/arm/boot/dts/imx6qdl-sabreauto.dtsi           |  149 +
>>  arch/arm/boot/dts/imx6qdl-sabrelite.dtsi           |   91 +
>>  arch/arm/boot/dts/imx6qdl-sabresd.dtsi             |  116 +
>>  arch/arm/boot/dts/imx6qdl.dtsi                     |   62 +-
>>  arch/arm/configs/imx_v6_v7_defconfig               |    4 +
>>  arch/arm/mach-imx/clk-imx6q.c                      |    3 +-
>>  drivers/gpio/gpio-pca953x.c                        |   26 +
>>  drivers/staging/imx-drm/imx-hdmi.c                 |    2 +-
>>  drivers/staging/imx-drm/imx-tve.c                  |    2 +-
>>  drivers/staging/imx-drm/ipu-v3/Makefile            |    3 +-
>>  drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h        |  326 --
>>  drivers/staging/imx-drm/ipu-v3/ipu-common.c        | 1151 ++++--
>>  drivers/staging/imx-drm/ipu-v3/ipu-cpmem.c         |  814 ++++
>>  drivers/staging/imx-drm/ipu-v3/ipu-csi.c           |  821 ++++
>>  drivers/staging/imx-drm/ipu-v3/ipu-dc.c            |    2 +-
>>  drivers/staging/imx-drm/ipu-v3/ipu-di.c            |    2 +-
>>  drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c          |    2 +-
>>  drivers/staging/imx-drm/ipu-v3/ipu-dp.c            |    2 +-
>>  drivers/staging/imx-drm/ipu-v3/ipu-ic.c            |  835 ++++
>>  drivers/staging/imx-drm/ipu-v3/ipu-irt.c           |  103 +
>>  drivers/staging/imx-drm/ipu-v3/ipu-prv.h           |  126 +-
>>  drivers/staging/imx-drm/ipu-v3/ipu-smfc.c          |  348 ++
>>  drivers/staging/imx-drm/ipuv3-crtc.c               |    2 +-
>>  drivers/staging/imx-drm/ipuv3-plane.c              |   18 +-
>>  drivers/staging/media/Kconfig                      |    2 +
>>  drivers/staging/media/Makefile                     |    1 +
>>  drivers/staging/media/imx6/Kconfig                 |   25 +
>>  drivers/staging/media/imx6/Makefile                |    1 +
>>  drivers/staging/media/imx6/capture/Kconfig         |   33 +
>>  drivers/staging/media/imx6/capture/Makefile        |    7 +
>>  drivers/staging/media/imx6/capture/adv7180.c       | 1298 ++++++
>>  drivers/staging/media/imx6/capture/mipi-csi2.c     |  322 ++
>>  drivers/staging/media/imx6/capture/mx6-camif.c     | 2235 ++++++++++
>>  drivers/staging/media/imx6/capture/mx6-camif.h     |  197 +
>>  drivers/staging/media/imx6/capture/mx6-encode.c    |  775 ++++
>>  drivers/staging/media/imx6/capture/mx6-preview.c   |  748 ++++
>>  drivers/staging/media/imx6/capture/ov5640-mipi.c   | 2158 ++++++++++
>>  drivers/staging/media/imx6/capture/ov5642.c        | 4258 ++++++++++++++++++++
>>  include/linux/platform_data/imx-ipu-v3.h           |  425 ++
>>  include/media/imx6.h                               |   18 +
>>  46 files changed, 17340 insertions(+), 805 deletions(-)
>>  create mode 100644 Documentation/devicetree/bindings/media/imx6.txt
>>  create mode 100644 Documentation/video4linux/mx6_camera.txt
>>  delete mode 100644 drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h
>>  create mode 100644 drivers/staging/imx-drm/ipu-v3/ipu-cpmem.c
>>  create mode 100644 drivers/staging/imx-drm/ipu-v3/ipu-csi.c
>>  create mode 100644 drivers/staging/imx-drm/ipu-v3/ipu-ic.c
>>  create mode 100644 drivers/staging/imx-drm/ipu-v3/ipu-irt.c
>>  create mode 100644 drivers/staging/imx-drm/ipu-v3/ipu-smfc.c
>>  create mode 100644 drivers/staging/media/imx6/Kconfig
>>  create mode 100644 drivers/staging/media/imx6/Makefile
>>  create mode 100644 drivers/staging/media/imx6/capture/Kconfig
>>  create mode 100644 drivers/staging/media/imx6/capture/Makefile
>>  create mode 100644 drivers/staging/media/imx6/capture/adv7180.c
>>  create mode 100644 drivers/staging/media/imx6/capture/mipi-csi2.c
>>  create mode 100644 drivers/staging/media/imx6/capture/mx6-camif.c
>>  create mode 100644 drivers/staging/media/imx6/capture/mx6-camif.h
>>  create mode 100644 drivers/staging/media/imx6/capture/mx6-encode.c
>>  create mode 100644 drivers/staging/media/imx6/capture/mx6-preview.c
>>  create mode 100644 drivers/staging/media/imx6/capture/ov5640-mipi.c
>>  create mode 100644 drivers/staging/media/imx6/capture/ov5642.c
>>  create mode 100644 include/linux/platform_data/imx-ipu-v3.h
>>  create mode 100644 include/media/imx6.h
>>
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


  reply	other threads:[~2014-06-08  8:39 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-07 21:56 [PATCH 00/43] i.MX6 Video capture Steve Longerbeam
2014-06-07 21:56 ` [PATCH 01/43] imx-drm: ipu-v3: Move imx-ipu-v3.h to include/linux/platform_data/ Steve Longerbeam
2014-06-11 11:22   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 02/43] ARM: dts: imx6qdl: Add ipu aliases Steve Longerbeam
2014-06-11 11:21   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 03/43] imx-drm: ipu-v3: Add ipu_get_num() Steve Longerbeam
2014-06-11 11:22   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 04/43] imx-drm: ipu-v3: Add solo/dual-lite IPU device type Steve Longerbeam
2014-06-11  5:37   ` Sascha Hauer
2014-06-11 11:38   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 05/43] imx-drm: ipu-v3: Map IOMUXC registers Steve Longerbeam
2014-06-11 13:11   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 06/43] imx-drm: ipu-v3: Add functions to set CSI/IC source muxes Steve Longerbeam
2014-06-11 11:22   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 07/43] imx-drm: ipu-v3: Rename and add IDMAC channels Steve Longerbeam
2014-06-11 11:22   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 08/43] imx-drm: ipu-v3: Add units required for video capture Steve Longerbeam
2014-06-11  6:18   ` Sascha Hauer
2014-06-11 14:09   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 09/43] imx-drm: ipu-v3: Add ipu_mbus_code_to_colorspace() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 10/43] imx-drm: ipu-v3: Add rotation mode conversion utilities Steve Longerbeam
2014-06-07 21:56 ` [PATCH 11/43] imx-drm: ipu-v3: Add helper function checking if pixfmt is planar Steve Longerbeam
2014-06-07 21:56 ` [PATCH 12/43] imx-drm: ipu-v3: Move IDMAC channel names to imx-ipu-v3.h Steve Longerbeam
2014-06-07 21:56 ` [PATCH 13/43] imx-drm: ipu-v3: Add ipu_idmac_buffer_is_ready() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 14/43] imx-drm: ipu-v3: Add ipu_idmac_clear_buffer() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 15/43] imx-drm: ipu-v3: Add ipu_idmac_current_buffer() Steve Longerbeam
2014-06-11 11:22   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 16/43] imx-drm: ipu-v3: Add __ipu_idmac_reset_current_buffer() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 17/43] imx-drm: ipu-v3: Add ipu_stride_to_bytes() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 18/43] imx-drm: ipu-v3: Add ipu_idmac_enable_watermark() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 19/43] imx-drm: ipu-v3: Add ipu_idmac_lock_enable() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 20/43] imx-drm: ipu-v3: Add idmac channel linking support Steve Longerbeam
2014-06-07 21:56 ` [PATCH 21/43] imx-drm: ipu-v3: Add ipu_bits_per_pixel() Steve Longerbeam
2014-06-11 11:23   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 22/43] imx-drm: ipu-v3: Add ipu-cpmem unit Steve Longerbeam
2014-06-11 11:23   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 23/43] imx-drm: ipu-cpmem: Add ipu_cpmem_set_block_mode() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 24/43] imx-drm: ipu-cpmem: Add ipu_cpmem_set_axi_id() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 25/43] imx-drm: ipu-cpmem: Add ipu_cpmem_set_rotation() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 26/43] imx-drm: ipu-cpmem: Add second buffer support to ipu_cpmem_set_image() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 27/43] imx-drm: ipu-v3: Add more planar formats support Steve Longerbeam
2014-06-07 21:56 ` [PATCH 28/43] imx-drm: ipu-cpmem: Add ipu_cpmem_dump() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 29/43] imx-drm: ipu-v3: Add ipu_dump() Steve Longerbeam
2014-06-07 21:56 ` [PATCH 30/43] ARM: dts: imx6: add pin groups for imx6q/dl for IPU1 CSI0 Steve Longerbeam
2014-06-11  5:56   ` Sascha Hauer
2014-06-07 21:56 ` [PATCH 31/43] ARM: dts: imx6qdl: Flesh out MIPI CSI2 receiver node Steve Longerbeam
2014-06-11 11:38   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 32/43] ARM: dts: imx: sabrelite: add video capture ports and endpoints Steve Longerbeam
2014-06-11 11:38   ` Philipp Zabel
2014-06-12 17:13     ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 33/43] ARM: dts: imx6-sabresd: " Steve Longerbeam
2014-06-07 21:56 ` [PATCH 34/43] ARM: dts: imx6-sabreauto: " Steve Longerbeam
2014-06-07 21:56 ` [PATCH 35/43] ARM: dts: imx6qdl: Add simple-bus to ipu compatibility Steve Longerbeam
2014-06-11 11:39   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 36/43] gpio: pca953x: Add reset-gpios property Steve Longerbeam
2014-06-11 11:39   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 37/43] ARM: imx6q: clk: Add video 27m clock Steve Longerbeam
2014-06-07 21:56 ` [PATCH 38/43] media: imx6: Add device tree binding documentation Steve Longerbeam
2014-06-07 21:56 ` [PATCH 39/43] media: Add new camera interface driver for i.MX6 Steve Longerbeam
2014-06-11 15:27   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 40/43] media: imx6: Add support for MIPI CSI-2 OV5640 Steve Longerbeam
2014-06-11 11:39   ` Philipp Zabel
2014-06-07 21:56 ` [PATCH 41/43] media: imx6: Add support for Parallel OV5642 Steve Longerbeam
2014-06-07 21:56 ` [PATCH 42/43] media: imx6: Add support for ADV7180 Video Decoder Steve Longerbeam
2015-01-17 19:54   ` Fabio Estevam
2014-06-07 21:56 ` [PATCH 43/43] ARM: imx_v6_v7_defconfig: Enable video4linux drivers Steve Longerbeam
2014-06-08  8:36 ` [PATCH 00/43] i.MX6 Video capture Hans Verkuil
2014-06-08  8:39   ` Hans Verkuil [this message]
2014-06-09 16:42   ` Steve Longerbeam
2014-06-10 15:11     ` Hans Verkuil
2014-06-11  0:54       ` Steve Longerbeam
2014-06-11  7:01         ` Hans Verkuil
2014-06-11 11:21 ` Philipp Zabel
2014-06-12  1:04   ` Steve Longerbeam
2014-06-12 16:50     ` Philipp Zabel
2014-06-12 21:05       ` Steve Longerbeam
2014-06-12 21:35         ` Troy Kisky
2014-06-13 15:37         ` Philipp Zabel
2014-06-15 22:34           ` Steve Longerbeam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5394212F.2080209@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=linux-media@vger.kernel.org \
    --cc=pev@audiogeek.co.uk \
    --cc=slongerbeam@gmail.com \
    --cc=steve_longerbeam@mentor.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.