public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: slongerbeam@gmail•com (Steve Longerbeam)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v7 00/34] i.MX Media Driver
Date: Mon, 29 May 2017 11:12:00 -0700	[thread overview]
Message-ID: <08dcd6f6-e0ef-a6a0-cfc3-4fcd55624169@gmail.com> (raw)
In-Reply-To: <20170529153637.GH29527@valkosipuli.retiisi.org.uk>

Hi Sakari,


On 05/29/2017 08:36 AM, Sakari Ailus wrote:
> Hi Hans,
>
> On Mon, May 29, 2017 at 03:46:08PM +0200, Hans Verkuil wrote:
>> Hi Steve,
>>
>> On 05/25/2017 02:29 AM, Steve Longerbeam wrote:
>>> In version 7:
>>>
>>> - video-mux: switched to Philipp's latest video-mux driver and updated
>>>    bindings docs, that makes use of the mmio-mux framework.
>>>
>>> - mmio-mux: includes Philipp's temporary patch that adds mmio-mux support
>>>    to video-mux driver, until mux framework is merged.
>>>
>>> - mmio-mux: updates to device tree from Philipp that define the i.MX6 mux
>>>    devices and modifies the video-mux device to become a consumer of the
>>>    video mmio-mux.
>>>
>>> - minor updates to Documentation/media/v4l-drivers/imx.rst.
>>>
>>> - ov5640: do nothing if entity stream count is greater than 1 in
>>>    ov5640_s_stream().
>>>
>>> - Previous versions of this driver had not tested the ability to enable
>>>    multiple independent streams, for instance enabling multiple output
>>>    pads from the imx6-mipi-csi2 subdevice, or enabling both prpenc and
>>>    prpvf outputs. Marek Vasut tested this support and reported issues
>>>    with it.
>>>
>>>    v4l2_pipeline_inherit_controls() used the media graph walk APIs, but
>>>    that walks both sink and source pads, so if there are multiple paths
>>>    enabled to video capture devices, controls would be added to the wrong
>>>    video capture device, and no controls added to the other enabled
>>>    capture devices.
>>>
>>>    These issues have been fixed. Control inheritance works correctly now
>>>    even with multiple enabled capture paths, and (for example)
>>>    simultaneous capture from prpenc and prpvf works also, and each with
>>>    independent scaling, CSC, and controls. For example prpenc can be
>>>    capturing with a 90 degree rotation, while prpvf is capturing with
>>>    vertical flip.
>>>
>>>    So the v4l2_pipeline_inherit_controls() patch has been dropped. The
>>>    new version of control inheritance could be made generically available,
>>>    but it would be more involved to incorporate it into v4l2-core.
>>>
>>> - A new function imx_media_fill_default_mbus_fields() is added to setup
>>>    colorimetry at sink pads, and these are propagated to source pads.
>>>
>>> - Ensure that the current sink and source rectangles meet alignment
>>>    restrictions before applying a new rotation control setting in
>>>    prp-enc/vf subdevices.
>>>
>>> - Chain the s_stream() subdev calls instead of implementing a custom
>>>    stream on/off function that attempts to call a fixed set of subdevices
>>>    in a pipeline in the correct order. This also simplifies imx6-mipi-csi2
>>>    subdevice, since the correct MIPI CSI-2 startup sequence can be
>>>    enforced completely in s_stream(), and s_power() is no longer
>>>    required. This also paves the way for more arbitrary OF graphs
>>>    external to the i.MX6.
>>>
>>> - Converted the v4l2_subdev and media_entity ops structures to const.
>> What is the status as of v7?
>>
>>  From what I can tell patch 2/34 needs an Ack from Rob Herring, patches
>> 4-14 are out of scope for the media subsystem, patches 20-25 and 27-34
>> are all staging (so fine to be merged from my point of view).
>>
>> I'm not sure if patch 26 (defconfig) should be applied while the imx
>> driver is in staging. I would suggest that this patch is moved to the end
>> of the series.
>>
>> That leaves patches 15-19. I replied to patch 15 with a comment, patches
>> 16-18 look good to me, although patches 17 and 18 should be combined to one
>> patch since patch 17 won't compile otherwise. Any idea when the multiplexer is
>> expected to be merged? (just curious)
>>
>> I would really like to get this merged for 4.13, so did I miss anything?
>>  From what I can tell it is really just an Ack for patch 2/34.
> The patchset re-initialises the control handler in the video node in its
> media device link_setup callback, among other things. I don't think that
> this as such should prevent including the driver in staging, but at the same
> time my concern is what kind of guarantees can we give in terms of V4L2
> framework support on things like this using the current API. I'd say "none".

Re-initializing a control handler in itself works fine (maybe we should
add a v4l2_ctrl_handler_reinit() ?).

I agree that calling free/init/add at this time (in link_setup and 
link_notify)
is a new way to use those APIs. The effect is that a video node's controls
can change post driver load.

There's nothing in Documentation/kapi/v4l2-controls.rst that states that
a video node's control list can't change at runtime. But as I said 
free/init/add
works just fine and can be called any time after a subdevice or video device
is registered.

>
> If there's a need for this (there should not be, as the controls are exposed
> to the user space through the sub-device nodes as the other drivers do), the
> framework APIs need to be extended.

Right, this gets back to the media framework usability arguments. At least
myself, Philipp, and Russell feel that automatic inheritance of a configured
pipeline's controls to a video device adds to the usability.

>
> I think it'd be good to add a TODO file (such as the one in OMAP4ISS) as
> part of the patchset that would include a list of things left to do so
> they're not forgotten.

Right, there is a TODO, but I will add an item that mentions this included
feature and whether it should eventually become part of the framework
or dropped.

Steve

  parent reply	other threads:[~2017-05-29 18:12 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-25  0:29 [PATCH v7 00/34] i.MX Media Driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 01/34] dt-bindings: Add bindings for video-multiplexer device Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 02/34] [media] dt-bindings: Add bindings for i.MX media driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 03/34] [media] dt/bindings: Add bindings for OV5640 Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 04/34] ARM: dts: imx6qdl: add multiplexer controls Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 05/34] ARM: dts: imx6qdl: Add compatible, clocks, irqs to MIPI CSI-2 node Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 06/34] ARM: dts: imx6qdl: Add video multiplexers, mipi_csi, and their connections Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 07/34] ARM: dts: imx6qdl: add capture-subsystem device Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 08/34] ARM: dts: imx6qdl-sabrelite: remove erratum ERR006687 workaround Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 09/34] ARM: dts: imx6-sabrelite: add OV5642 and OV5640 camera sensors Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 10/34] ARM: dts: imx6-sabresd: " Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 11/34] ARM: dts: imx6-sabreauto: create i2cmux for i2c3 Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 12/34] ARM: dts: imx6-sabreauto: add reset-gpios property for max7310_b Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 13/34] ARM: dts: imx6-sabreauto: add pinctrl for gpt input capture Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 14/34] ARM: dts: imx6-sabreauto: add the ADV7180 video decoder Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 15/34] add mux and video interface bridge entity functions Steve Longerbeam
2017-05-29 13:37   ` Hans Verkuil
2017-05-29 13:51     ` Philipp Zabel
2017-05-29 13:52       ` Hans Verkuil
2017-05-25  0:29 ` [PATCH v7 16/34] [media] add Omnivision OV5640 sensor driver Steve Longerbeam
2017-05-29 13:39   ` Hans Verkuil
2017-05-29 15:55   ` Sakari Ailus
2017-05-29 21:50     ` Steve Longerbeam
2017-05-30  6:56       ` Sakari Ailus
2017-06-03 18:02         ` Steve Longerbeam
2017-06-04 18:00           ` Steve Longerbeam
2017-06-07 12:31             ` Sakari Ailus
2017-05-31 19:58   ` Pavel Machek
2017-06-01  8:26     ` Sakari Ailus
2017-06-01  8:43       ` exposure vs. exposure_absolute was " Pavel Machek
2017-06-03 19:38       ` Steve Longerbeam
2017-06-03 19:51         ` Pavel Machek
2017-06-03 21:57           ` Sakari Ailus
2017-06-03 22:17             ` Pavel Machek
2017-06-04  4:46             ` Steve Longerbeam
2017-06-07 12:31               ` Sakari Ailus
2017-05-25  0:29 ` [PATCH v7 17/34] platform: add video-multiplexer subdevice driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 18/34] platform: video-mux: include temporary mmio-mux support Steve Longerbeam
2017-05-25  7:51   ` [PATCH] platform: video-mux: fix ptr_ret.cocci warnings kbuild test robot
2017-05-25  7:51   ` [PATCH v7 18/34] platform: video-mux: include temporary mmio-mux support kbuild test robot
2017-05-25  0:29 ` [PATCH v7 19/34] media: Add userspace header file for i.MX Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 21/34] media: imx: Add Capture Device Interface Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 22/34] media: imx: Add CSI subdev driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 23/34] media: imx: Add VDIC " Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 24/34] media: imx: Add IC subdev drivers Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 25/34] media: imx: Add MIPI CSI-2 Receiver subdev driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 26/34] ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 27/34] media: imx: csi: add support for bayer formats Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 28/34] media: imx: csi: increase burst size for YUV formats Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 29/34] media: imx: csi: add frame skipping support Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 30/34] media: imx: csi: add sink selection rectangles Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 31/34] media: imx: csi: add frame size/interval enumeration Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 32/34] media: imx: capture: add frame sizes/interval enumeration Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 33/34] media: imx: set and propagate default field, colorimetry Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 34/34] media: imx: Drop warning upon multiple S_STREAM disable calls Steve Longerbeam
2017-05-29 13:46 ` [PATCH v7 00/34] i.MX Media Driver Hans Verkuil
2017-05-29 14:15   ` Philipp Zabel
2017-05-29 14:21     ` Hans Verkuil
2017-05-29 15:24       ` Hans Verkuil
2017-05-29 15:36   ` Sakari Ailus
2017-05-29 16:29     ` Hans Verkuil
2017-05-29 18:12     ` Steve Longerbeam [this message]
2017-05-31 20:11       ` Pavel Machek
2017-05-29 17:23   ` Steve Longerbeam
2017-05-29 17:29     ` Hans Verkuil
2017-06-02  0:25 ` Tim Harvey
2017-06-02  0:43   ` 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=08dcd6f6-e0ef-a6a0-cfc3-4fcd55624169@gmail.com \
    --to=slongerbeam@gmail$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox