All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Longerbeam <slongerbeam@gmail.com>
To: Tim Harvey <tharvey@gateworks.com>,
	Steve Longerbeam <steve_longerbeam@mentor.com>
Cc: Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <kernel@pengutronix.de>,
	Fabio Estevam <fabio.estevam@nxp.com>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	laurent.pinchart+renesas@ideasonboard.com,
	linux-media <linux-media@vger.kernel.org>
Subject: Re: [PATCH v3 00/24] i.MX Media Driver
Date: Thu, 12 Jan 2017 14:32:36 -0800	[thread overview]
Message-ID: <f956170a-38d9-ce97-51df-e88f59e4ac17@gmail.com> (raw)
In-Reply-To: <CAJ+vNU3ymeA9d+cJ44Wm_zX17EMkd__w6vB_xyagxzBAYNJbZQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 6656 bytes --]

Hi Tim,


On 01/12/2017 01:13 PM, Tim Harvey wrote:
>
>>> Now that your driver is hooking into the current media framework, I'm
>>> not at all clear on how to link and configure the media entities.
>>
>> It's all documented at Documentation/media/v4l-drivers/imx.rst.
>> Follow the SabreAuto pipeline setup example.
>>
> ah yes... it helps to read your patches! You did a great job on the
> documentation.
>
> Regarding the The ipu1_csi0_mux/ipu2_csi1_mux entities which have 1
> source and 2 sinks (which makes sense for a mux) how do you know which
> sink pad you should use (in your adv7180 example you use the 2nd sink
> pad vs the first)?

The adv7180 can only go to the parallel input pad (ipu1_csi0_mux:1
on quad). The other input pads select from the mipi csi-2 receiver virtual
channels.

Have you generated a dot graph? It makes it much easier to
visualize:

# media-ctl --print-dot > graph.dot

then on your host:

% dot -Tpng graph.dot > graph.png


>
> As my hardware is the same as the SabreAuto except that my adv7180 is
> on i2c-2@0x20 I follow your example from
> Documentation/media/v4l-drivers/imx.rst:
>
> # Setup links
> media-ctl -l '"adv7180 2-0020":0 -> "ipu1_csi0_mux":1[1]'
> media-ctl -l '"ipu1_csi0_mux":2 -> "ipu1_csi0":0[1]'
> media-ctl -l '"ipu1_csi0":1 -> "ipu1_smfc0":0[1]'
> media-ctl -l '"ipu1_smfc0":1 -> "ipu1_ic_prpvf":0[1]'
> media-ctl -l '"ipu1_ic_prpvf":1 -> "camif0":0[1]'
> media-ctl -l '"camif0":1 -> "camif0 devnode":0[1]'
>
> # Configure pads
> media-ctl -V "\"adv7180 2-0020\":0 [fmt:UYVY2X8/720x480]"
> media-ctl -V "\"ipu1_csi0_mux\":1 [fmt:UYVY2X8/720x480]"
> media-ctl -V "\"ipu1_csi0_mux\":2 [fmt:UYVY2X8/720x480]"
> media-ctl -V "\"ipu1_csi0\":0 [fmt:UYVY2X8/720x480]"
> media-ctl -V "\"ipu1_csi0\":1 [fmt:UYVY2X8/720x480]"
> media-ctl -V "\"ipu1_smfc0\":0 [fmt:UYVY2X8/720x480]"
> media-ctl -V "\"ipu1_smfc0\":1 [fmt:UYVY2X8/720x480]"
> media-ctl -V "\"ipu1_ic_prpvf\":0 [fmt:UYVY2X8/720x480]"
> # pad field types for camif can be any format prpvf supports
> export outputfmt="UYVY2X8/720x480"
> media-ctl -V "\"ipu1_ic_prpvf\":1 [fmt:$outputfmt]"
> media-ctl -V "\"camif0\":0 [fmt:$outputfmt]"
> media-ctl -V "\"camif0\":1 [fmt:$outputfmt]"
>
> # select AIN1
> v4l2-ctl -d0 -i0
> Video input set to 0 (ADV7180 Composite on Ain1: ok)
> v4l2-ctl -d0 --set-fmt-video=width=720,height=480,pixelformat=UYVY
> # capture a single raw frame
> v4l2-ctl -d0 --stream-mmap --stream-to=/x.raw --stream-count=1
> [ 2092.056394] camif0: pipeline_set_stream failed with -32
> VIDIOC_STREAMON: failed: Broken pipe
>
> Enabling debug in drivers/media/media-entity.c I see:
> [   38.870087] imx-media soc:media@0: link validation failed for
> "ipu1_smfc0":1 -> "ipu1_ic_prpvf":0, error -32
>
> Looking at ipu1_smfc0 and ipu1_ic_prpvf with media-ctl I see:
> - entity 12: ipu1_ic_prpvf (2 pads, 8 links)
>               type V4L2 subdev subtype Unknown flags 0
>               device node name /dev/v4l-subdev3
>          pad0: Sink
>                  [fmt:UYVY2X8/720x480 field:alternate]
>                  <- "ipu1_csi0":1 []
>                  <- "ipu1_csi1":1 []
>                  <- "ipu1_smfc0":1 [ENABLED]
>                  <- "ipu1_smfc1":1 []
>          pad1: Source
>                  [fmt:UYVY2X8/720x480 field:none]
>                  -> "camif0":0 [ENABLED]
>                  -> "camif1":0 []
>                  -> "ipu1_ic_pp0":0 []
>                  -> "ipu1_ic_pp1":0 []
>
> - entity 45: ipu1_smfc0 (2 pads, 5 links)
>               type V4L2 subdev subtype Unknown flags 0
>               device node name /dev/v4l-subdev14
>          pad0: Sink
>                  [fmt:UYVY2X8/720x480]
>                  <- "ipu1_csi0":1 [ENABLED]
>          pad1: Source
>                  [fmt:UYVY2X8/720x480]
>                  -> "ipu1_ic_prpvf":0 [ENABLED]
>                  -> "ipu1_ic_pp0":0 []
>                  -> "camif0":0 []
>                  -> "camif1":0 []
>
> Any ideas what is going wrong here? Seems like its perhaps a field
> type mismatch.

Yes, exactly, you'll need to set the field types on every pad in your
pipeline.

>   Is my outputfmt incorrect perhaps? I likely have
> misunderstood the pad type comments in your documentation.

Attached is an update doc (from branch imx-media-staging-md-v7 on my fork).
I recently upgraded my v4l-utils package and media-ctl now supports 
specifying
the field type in the pad format strings. If you don't have the latest 
v4l-utils, it's
fairly straightforward to cross-build.

>
>>
>>> <snip>
>>>
>>>
>>>
>>> Additionally I've found that on an IMX6S/IMX6DL we crash while
>>> registering the media-ic subdev's:
> <snip>
>> Yep, I only have quad boards here so I haven't gotten around to
>> testing on S/DL.
>>
>> But it looks like I forgot to clear out the csi subdev pointer array before
>> passing it to imx_media_of_parse(). I think that might explain the OOPS
>> above. Try this patch:
>>
>> diff --git a/drivers/staging/media/imx/imx-media-dev.c
>> b/drivers/staging/media/imx/imx-media-dev.c
>> index 357654d..0cf2d61 100644
>> --- a/drivers/staging/media/imx/imx-media-dev.c
>> +++ b/drivers/staging/media/imx/imx-media-dev.c
>> @@ -379,7 +379,7 @@ static int imx_media_probe(struct platform_device *pdev)
>>   {
>>          struct device *dev = &pdev->dev;
>>          struct device_node *node = dev->of_node;
>> -       struct imx_media_subdev *csi[4];
>> +       struct imx_media_subdev *csi[4] = {0};
>>          struct imx_media_dev *imxmd;
>>          int ret;
>>
> This does resolves the crash on S/DL.

Cool thanks for verifying, I've applied this to the imx-media-staging-md-v7
branch.

>
> I do notice that the ipu1_csi*_mux entities on the S/DL have 3 more
> sink pads compared to the D/Q which is from the additional ports
> defined in the GPR nodes you add for mipi_vc1/vc2/vc3. Are there
> really 3 more MIPI virtual channels on the S/DL vs the D/Q?

Well, same number of virtual channels on quad vs S/DL. It's
just that the video mux on S/DL can select from all 4 virtual
channels, whereas quad's mux'es only select either vc0 or vc3.

>
> I get the same results on the S/DL as I do on D/Q as long as I adjust
> the links to compensate for these additional sinks:
> media-ctl -l '"adv7180 2-0020":0 -> "ipu1_csi0_mux":4[1]'  # pad4
> media-ctl -l '"ipu1_csi0_mux":5 -> "ipu1_csi0":0[1]' # pad5
> ...
>
> This means link configuration must differ depending on S/DL vs D/Q
> which is a bummer but I suppose this is the harsh reality as for
> boards that use the EIM pads for IPU's they also will be using IPU2
> for IMX6D/Q and IPU1 for IMX6S/DL.

yeah, the links necessarily must be different between quad and S/DL.

Steve


[-- Attachment #2: imx.rst --]
[-- Type: text/plain, Size: 16978 bytes --]

i.MX Video Capture Driver
=========================

Introduction
------------

The Freescale i.MX5/6 contains an Image Processing Unit (IPU), which
handles the flow of image frames to and from capture devices and
display devices.

For image capture, the IPU contains the following internal subunits:

- Image DMA Controller (IDMAC)
- Camera Serial Interface (CSI)
- Image Converter (IC)
- Sensor Multi-FIFO Controller (SMFC)
- Image Rotator (IRT)
- Video De-Interlace Controller (VDIC)

The IDMAC is the DMA controller for transfer of image frames to and from
memory. Various dedicated DMA channels exist for both video capture and
display paths.

The CSI is the frontend capture unit that interfaces directly with
capture sensors over Parallel, BT.656/1120, and MIPI CSI-2 busses.

The IC handles color-space conversion, resizing, and rotation
operations. There are three independent "tasks" within the IC that can
carry out conversions concurrently: pre-processing encoding,
pre-processing preview, and post-processing.

The SMFC is composed of four independent channels that each can transfer
captured frames from sensors directly to memory concurrently.

The IRT carries out 90 and 270 degree image rotation operations.

The VDIC handles the conversion of interlaced video to progressive, with
support for different motion compensation modes (low, medium, and high
motion). The deinterlaced output frames from the VDIC can be sent to the
IC pre-process preview task for further conversions.

In addition to the IPU internal subunits, there are also two units
outside the IPU that are also involved in video capture on i.MX:

- MIPI CSI-2 Receiver for camera sensors with the MIPI CSI-2 bus
  interface. This is a Synopsys DesignWare core.
- A video multiplexer for selecting among multiple sensor inputs to
  send to a CSI.

For more info, refer to the latest versions of the i.MX5/6 reference
manuals listed under References.


Features
--------

Some of the features of this driver include:

- Many different pipelines can be configured via media controller API,
  that correspond to the hardware video capture pipelines supported in
  the i.MX.

- Supports parallel, BT.565, and MIPI CSI-2 interfaces.

- Up to four concurrent sensor acquisitions, by configuring each
  sensor's pipeline using independent entities. This is currently
  demonstrated with the SabreSD and SabreLite reference boards with
  independent OV5642 and MIPI CSI-2 OV5640 sensor modules.

- Scaling, color-space conversion, and image rotation via IC task
  subdevs.

- Many pixel formats supported (RGB, packed and planar YUV, partial
  planar YUV).

- The IC pre-process preview subdev supports motion compensated
  de-interlacing using the VDIC, with three motion compensation modes:
  low, medium, and high motion. The mode is specified with a custom
  control. Pipelines are defined that allow sending frames to the
  preview subdev directly from the CSI or from the SMFC.

- Includes a Frame Interval Monitor (FIM) that can correct vertical sync
  problems with the ADV718x video decoders. See below for a description
  of the FIM.


Capture Pipelines
-----------------

The following describe the various use-cases supported by the pipelines.

The links shown do not include the frontend sensor, video mux, or mipi
csi-2 receiver links. This depends on the type of sensor interface
(parallel or mipi csi-2). So in all cases, these pipelines begin with:

sensor -> ipu_csi_mux -> ipu_csi -> ...

for parallel sensors, or:

sensor -> imx-mipi-csi2 -> (ipu_csi_mux) -> ipu_csi -> ...

for mipi csi-2 sensors. The imx-mipi-csi2 receiver may need to route
to the video mux (ipu_csi_mux) before sending to the CSI, depending
on the mipi csi-2 virtual channel, hence ipu_csi_mux is shown in
parenthesis.

Unprocessed Video Capture:
--------------------------

Send frames directly from sensor to camera interface, with no
conversions:

-> ipu_smfc -> camif

Note the ipu_smfc can do pixel reordering within the same colorspace.
For example, its sink pad can take UYVY2X8, but its source pad can
output YUYV2X8.

IC Direct Conversions:
----------------------

This pipeline uses the preprocess encode entity to route frames directly
from the CSI to the IC (bypassing the SMFC), to carry out scaling up to
1024x1024 resolution, CSC, and image rotation:

-> ipu_ic_prpenc -> camif

This can be a useful capture pipeline for heavily loaded memory bus
traffic environments, since it has minimal IDMAC channel usage.

Post-Processing Conversions:
----------------------------

This pipeline routes frames from the SMFC to the post-processing
entity. In addition to CSC and rotation, this entity supports tiling
which allows scaled output beyond the 1024x1024 limitation of the IC
(up to 4096x4096 scaling output is supported):

-> ipu_smfc -> ipu_ic_pp -> camif

Motion Compensated De-interlace:
--------------------------------

This pipeline routes frames from the SMFC to the preprocess preview
entity to support motion-compensated de-interlacing using the VDIC,
scaling up to 1024x1024, and CSC:

-> ipu_smfc -> ipu_ic_prpvf -> camif

This pipeline also carries out the same conversions as above, but routes
frames directly from the CSI to the IC preprocess preview entity for
minimal memory bandwidth usage (note: this pipeline only works in
"high motion" mode):

-> ipu_ic_prpvf -> camif

This pipeline takes the motion-compensated de-interlaced frames and
sends them to the post-processor, to support motion-compensated
de-interlacing, scaling up to 4096x4096, CSC, and rotation:

-> (ipu_smfc) -> ipu_ic_prpvf -> ipu_ic_pp -> camif


Usage Notes
-----------

Many of the subdevs require information from the active sensor in the
current pipeline when configuring pad formats. Therefore the media links
should be established before configuring the media pad formats.

Similarly, the capture v4l2 interface subdev inherits controls from the
active subdevs in the current pipeline at link-setup time. Therefore the
capture links should be the last links established in order for capture
to "see" and inherit all possible controls.

The following are usage notes for Sabre- reference platforms:


SabreLite with OV5642 and OV5640
--------------------------------

This platform requires the OmniVision OV5642 module with a parallel
camera interface, and the OV5640 module with a MIPI CSI-2
interface. Both modules are available from Boundary Devices:

https://boundarydevices.com/products/nit6x_5mp
https://boundarydevices.com/product/nit6x_5mp_mipi

Note that if only one camera module is available, the other sensor
node can be disabled in the device tree.

The OV5642 module is connected to the parallel bus input on the i.MX
internal video mux to IPU1 CSI0. It's i2c bus connects to i2c bus 2.

The MIPI CSI-2 OV5640 module is connected to the i.MX internal MIPI CSI-2
receiver, and the four virtual channel outputs from the receiver are
routed as follows: vc0 to the IPU1 CSI0 mux, vc1 directly to IPU1 CSI1,
vc2 directly to IPU2 CSI0, and vc3 to the IPU2 CSI1 mux. The OV5640 is
also connected to i2c bus 2 on the SabreLite, therefore the OV5642 and
OV5640 must not share the same i2c slave address.

The following basic example configures unprocessed video capture
pipelines for both sensors. The OV5642 is routed to camif0
(usually /dev/video0), and the OV5640 (transmitting on mipi csi-2
virtual channel 1) is routed to camif1 (usually /dev/video1). Both
sensors are configured to output 640x480, the OV5642 outputs YUYV2X8,
the OV5640 UYVY2X8:

.. code-block:: none

   # Setup links for OV5642
   media-ctl -l '"ov5642 1-0042":0 -> "ipu1_csi0_mux":1[1]'
   media-ctl -l '"ipu1_csi0_mux":2 -> "ipu1_csi0":0[1]'
   media-ctl -l '"ipu1_csi0":1 -> "ipu1_smfc0":0[1]'
   media-ctl -l '"ipu1_smfc0":1 -> "camif0":0[1]'
   media-ctl -l '"camif0":1 -> "camif0 devnode":0[1]'
   # Setup links for OV5640
   media-ctl -l '"ov5640_mipi 1-0040":0 -> "imx-mipi-csi2":0[1]'
   media-ctl -l '"imx-mipi-csi2":2 -> "ipu1_csi1":0[1]'
   media-ctl -l '"ipu1_csi1":1 -> "ipu1_smfc1":0[1]'
   media-ctl -l '"ipu1_smfc1":1 -> "camif1":0[1]'
   media-ctl -l '"camif1":1 -> "camif1 devnode":0[1]'
   # Configure pads for OV5642 pipeline
   media-ctl -V "\"ov5642 1-0042\":0 [fmt:YUYV2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_csi0_mux\":1 [fmt:YUYV2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_csi0_mux\":2 [fmt:YUYV2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_csi0\":0 [fmt:YUYV2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_csi0\":1 [fmt:YUYV2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_smfc0\":0 [fmt:YUYV2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_smfc0\":1 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"camif0\":0 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"camif0\":1 [fmt:UYVY2X8/640x480 field:none]"
   # Configure pads for OV5640 pipeline
   media-ctl -V "\"ov5640_mipi 1-0040\":0 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"imx-mipi-csi2\":0 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"imx-mipi-csi2\":2 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_csi1\":0 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_csi1\":1 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_smfc1\":0 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"ipu1_smfc1\":1 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"camif1\":0 [fmt:UYVY2X8/640x480 field:none]"
   media-ctl -V "\"camif1\":1 [fmt:UYVY2X8/640x480 field:none]"

Streaming can then begin independently on device nodes /dev/video0
and /dev/video1.

SabreAuto with ADV7180 decoder
------------------------------

On the SabreAuto, an on-board ADV7180 SD decoder is connected to the
parallel bus input on the internal video mux to IPU1 CSI0.

The following example configures a pipeline to capture from the ADV7180
video decoder, assuming NTSC 720x480 input signals, with Motion
Compensated de-interlacing. Pad field types assume the adv7180 outputs
"alternate". $outputfmt can be any format supported by the
ipu1_ic_prpvf entity at its output pad:

.. code-block:: none

   # Setup links
   media-ctl -l '"adv7180 4-0021":0 -> "ipu1_csi0_mux":1[1]'
   media-ctl -l '"ipu1_csi0_mux":2 -> "ipu1_csi0":0[1]'
   media-ctl -l '"ipu1_csi0":1 -> "ipu1_smfc0":0[1]'
   media-ctl -l '"ipu1_smfc0":1 -> "ipu1_ic_prpvf":0[1]'
   media-ctl -l '"ipu1_ic_prpvf":1 -> "camif0":0[1]'
   media-ctl -l '"camif0":1 -> "camif0 devnode":0[1]'
   # Configure pads
   media-ctl -V "\"adv7180 4-0021\":0 [fmt:UYVY2X8/720x480]"
   media-ctl -V "\"ipu1_csi0_mux\":1 [fmt:UYVY2X8/720x480 field:alternate]"
   media-ctl -V "\"ipu1_csi0_mux\":2 [fmt:UYVY2X8/720x480 field:alternate]"
   media-ctl -V "\"ipu1_csi0\":0 [fmt:UYVY2X8/720x480 field:alternate]"
   media-ctl -V "\"ipu1_csi0\":1 [fmt:UYVY2X8/720x480 field:alternate]"
   media-ctl -V "\"ipu1_smfc0\":0 [fmt:UYVY2X8/720x480 field:alternate]"
   media-ctl -V "\"ipu1_smfc0\":1 [fmt:UYVY2X8/720x480 field:alternate]"
   media-ctl -V "\"ipu1_ic_prpvf\":0 [fmt:UYVY2X8/720x480 field:alternate]"
   media-ctl -V "\"ipu1_ic_prpvf\":1 [fmt:$outputfmt field:none]"
   media-ctl -V "\"camif0\":0 [fmt:$outputfmt field:none]"
   media-ctl -V "\"camif0\":1 [fmt:$outputfmt field:none]"

Streaming can then begin on /dev/video0.

This platform accepts Composite Video analog inputs to the ADV7180 on
Ain1 (connector J42) and Ain3 (connector J43).

To switch to Ain1:

.. code-block:: none

   # v4l2-ctl -i0

To switch to Ain3:

.. code-block:: none

   # v4l2-ctl -i1


Frame Interval Monitor
----------------------

The adv718x decoders can occasionally send corrupt fields during
NTSC/PAL signal re-sync (too little or too many video lines). When
this happens, the IPU triggers a mechanism to re-establish vertical
sync by adding 1 dummy line every frame, which causes a rolling effect
from image to image, and can last a long time before a stable image is
recovered. Or sometimes the mechanism doesn't work at all, causing a
permanent split image (one frame contains lines from two consecutive
captured images).

From experiment it was found that during image rolling, the frame
intervals (elapsed time between two EOF's) drop below the nominal
value for the current standard, by about one frame time (60 usec),
and remain at that value until rolling stops.

While the reason for this observation isn't known (the IPU dummy
line mechanism should show an increase in the intervals by 1 line
time every frame, not a fixed value), we can use it to detect the
corrupt fields using a frame interval monitor. If the FIM detects a
bad frame interval, a subdev event is sent. In response, userland can
issue a streaming restart to correct the rolling/split image.

The FIM is implemented in the imx-csi entity, and the entities that have
direct connections to the CSI call into the FIM to monitor the frame
intervals: ipu_smfc, ipu_ic_prpenc, and ipu_prpvf (when configured with
a direct link from ipu_csi). Userland can register with the FIM event
notifications on the imx-csi subdev device node
(V4L2_EVENT_IMX_FRAME_INTERVAL).

The imx-csi entity includes custom controls to tweak some dials for FIM.
If one of these controls is changed during streaming, the FIM will be
reset and will continue at the new settings.

- V4L2_CID_IMX_FIM_ENABLE

Enable/disable the FIM.

- V4L2_CID_IMX_FIM_NUM

How many frame interval errors to average before comparing against the
nominal frame interval reported by the sensor. This can reduce noise
from interrupt latency.

- V4L2_CID_IMX_FIM_TOLERANCE_MIN

If the averaged intervals fall outside nominal by this amount, in
microseconds, streaming will be restarted.

- V4L2_CID_IMX_FIM_TOLERANCE_MAX

If any interval errors are higher than this value, those error samples
are discarded and do not enter into the average. This can be used to
discard really high interval errors that might be due to very high
system load, causing excessive interrupt latencies.

- V4L2_CID_IMX_FIM_NUM_SKIP

How many frames to skip after a FIM reset or stream restart before
FIM begins to average intervals. It has been found that there can
be a few bad frame intervals after stream restart which are not
attributed to adv718x sending a corrupt field, so this is used to
skip those frames to prevent unnecessary restarts.


SabreSD with MIPI CSI-2 OV5640
------------------------------

Similarly to SabreLite, the SabreSD supports a parallel interface
OV5642 module on IPU1 CSI0, and a MIPI CSI-2 OV5640 module. The OV5642
connects to i2c bus 1 and the OV5640 to i2c bus 2.

The device tree for SabreSD includes OF graphs for both the parallel
OV5642 and the MIPI CSI-2 OV5640, but as of this writing only the MIPI
CSI-2 OV5640 has been tested, so the OV5642 node is currently disabled.
The OV5640 module connects to MIPI connector J5 (sorry I don't have the
compatible module part number or URL).

The following example configures a post-processing pipeline to capture
from the OV5640. $sensorfmt can be any format supported by the OV5640.
$outputfmt can be any format supported by the ipu1_ic_pp1 entity at its
output pad:

.. code-block:: none

   # Setup links
   media-ctl -l '"ov5640_mipi 1-003c":0 -> "imx-mipi-csi2":0[1]'
   media-ctl -l '"imx-mipi-csi2":2 -> "ipu1_csi1":0[1]'
   media-ctl -l '"ipu1_csi1":1 -> "ipu1_smfc1":0[1]'
   media-ctl -l '"ipu1_smfc1":1 -> "ipu1_ic_pp1":0[1]'
   media-ctl -l '"ipu1_ic_pp1":1 -> "camif0":0[1]'
   media-ctl -l '"camif0":1 -> "camif0 devnode":0[1]'
   # Configure pads
   media-ctl -V "\"ov5640_mipi 1-003c\":0 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"imx-mipi-csi2\":0 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"imx-mipi-csi2\":2 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"ipu1_csi1\":0 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"ipu1_csi1\":1 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"ipu1_smfc1\":0 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"ipu1_smfc1\":1 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"ipu1_ic_pp1\":0 [fmt:$sensorfmt field:none]"
   media-ctl -V "\"ipu1_ic_pp1\":1 [fmt:$outputfmt field:none]"
   media-ctl -V "\"camif0\":0 [fmt:$outputfmt field:none]"
   media-ctl -V "\"camif0\":1 [fmt:$outputfmt field:none]"

Streaming can then begin on /dev/video0.



Known Issues
------------

1. When using 90 or 270 degree rotation control at capture resolutions
   near the IC resizer limit of 1024x1024, and combined with planar
   pixel formats (YUV420, YUV422p), frame capture will often fail with
   no end-of-frame interrupts from the IDMAC channel. To work around
   this, use lower resolution and/or packed formats (YUYV, RGB3, etc.)
   when 90 or 270 rotations are needed.


File list
---------

drivers/staging/media/imx/
include/media/imx.h
include/uapi/media/imx.h

References
----------

[1] "i.MX 6Dual/6Quad Applications Processor Reference Manual"
[2] "i.MX 6Solo/6DualLite Applications Processor Reference Manual"


Author
------
Steve Longerbeam <steve_longerbeam@mentor.com>

Copyright (C) 2012-2016 Mentor Graphics Inc.

  reply	other threads:[~2017-01-12 22:33 UTC|newest]

Thread overview: 549+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-07  2:11 [PATCH v3 00/24] i.MX Media Driver Steve Longerbeam
2017-01-07  2:11 ` Steve Longerbeam
2017-01-07  2:11 ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 01/24] [media] dt-bindings: Add bindings for i.MX media driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 11:55   ` Philipp Zabel
2017-01-13 11:55     ` Philipp Zabel
2017-01-13 11:55     ` Philipp Zabel
2017-01-13 19:03     ` Steve Longerbeam
2017-01-13 19:03       ` Steve Longerbeam
2017-01-13 19:03       ` Steve Longerbeam
2017-01-16 12:09       ` Philipp Zabel
2017-01-16 12:09         ` Philipp Zabel
2017-01-16 12:09         ` Philipp Zabel
2017-01-16 17:13         ` Steve Longerbeam
2017-01-16 17:13           ` Steve Longerbeam
2017-01-16 17:13           ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 02/24] ARM: dts: imx6qdl: Add compatible, clocks, irqs to MIPI CSI-2 node Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 11:57   ` Philipp Zabel
2017-01-13 11:57     ` Philipp Zabel
2017-01-13 11:57     ` Philipp Zabel
2017-01-13 22:40     ` Steve Longerbeam
2017-01-13 22:40       ` Steve Longerbeam
2017-01-13 22:40       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 03/24] ARM: dts: imx6qdl: Add mipi_ipu1/2 multiplexers, mipi_csi, and their connections Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 04/24] ARM: dts: imx6qdl: add media device Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 05/24] ARM: dts: imx6qdl-sabrelite: remove erratum ERR006687 workaround Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 11:59   ` Philipp Zabel
2017-01-13 11:59     ` Philipp Zabel
2017-01-13 11:59     ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 06/24] ARM: dts: imx6-sabrelite: add OV5642 and OV5640 camera sensors Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 12:03   ` Philipp Zabel
2017-01-13 12:03     ` Philipp Zabel
2017-01-13 12:03     ` Philipp Zabel
2017-01-13 23:04     ` Steve Longerbeam
2017-01-13 23:04       ` Steve Longerbeam
2017-01-13 23:04       ` Steve Longerbeam
2017-01-16 12:55       ` Philipp Zabel
2017-01-16 12:55         ` Philipp Zabel
2017-01-16 12:55         ` Philipp Zabel
2017-01-16 17:15         ` Steve Longerbeam
2017-01-16 17:15           ` Steve Longerbeam
2017-01-16 17:15           ` Steve Longerbeam
2017-02-05 15:17         ` Laurent Pinchart
2017-02-05 15:17           ` Laurent Pinchart
2017-02-05 15:17           ` Laurent Pinchart
2017-01-30 22:28   ` Russell King - ARM Linux
2017-01-30 22:28     ` Russell King - ARM Linux
2017-01-30 22:28     ` Russell King - ARM Linux
2017-01-30 22:51   ` Russell King - ARM Linux
2017-01-30 22:51     ` Russell King - ARM Linux
2017-01-30 22:51     ` Russell King - ARM Linux
2017-02-05 15:24     ` Laurent Pinchart
2017-02-05 15:24       ` Laurent Pinchart
2017-02-05 15:24       ` Laurent Pinchart
2017-02-05 15:37       ` Russell King - ARM Linux
2017-02-05 15:37         ` Russell King - ARM Linux
2017-02-05 15:37         ` Russell King - ARM Linux
2017-01-07  2:11 ` [PATCH v3 07/24] ARM: dts: imx6-sabresd: " Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 08/24] ARM: dts: imx6-sabreauto: create i2cmux for i2c3 Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 09/24] ARM: dts: imx6-sabreauto: add reset-gpios property for max7310_b Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 10/24] ARM: dts: imx6-sabreauto: add pinctrl for gpt input capture Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-12 19:37   ` Tim Harvey
2017-01-12 19:37     ` Tim Harvey
2017-01-12 19:37     ` Tim Harvey
2017-01-12 23:40     ` Steve Longerbeam
2017-01-12 23:40       ` Steve Longerbeam
2017-01-12 23:40       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 11/24] ARM: dts: imx6-sabreauto: add the ADV7180 video decoder Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 12/24] add mux and video interface bridge entity functions Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 13:56   ` Hans Verkuil
2017-01-20 13:56     ` Hans Verkuil
2017-02-05 15:36   ` Laurent Pinchart
2017-02-05 15:36     ` Laurent Pinchart
2017-02-05 15:36     ` Laurent Pinchart
2017-02-06 10:27     ` Philipp Zabel
2017-02-06 10:27       ` Philipp Zabel
2017-02-06 10:27       ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 13/24] platform: add video-multiplexer subdevice driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-10  5:35   ` Rob Herring
2017-01-10  5:35     ` Rob Herring
2017-01-10  5:35     ` Rob Herring
2017-01-20 14:03   ` Hans Verkuil
2017-01-20 14:03     ` Hans Verkuil
2017-01-20 14:03     ` Hans Verkuil
2017-01-24 12:02     ` Philipp Zabel
2017-01-24 12:02       ` Philipp Zabel
2017-01-24 12:02       ` Philipp Zabel
2017-01-25  2:07       ` Steve Longerbeam
2017-01-25  2:07         ` Steve Longerbeam
2017-01-25  2:07         ` Steve Longerbeam
2017-02-05 15:48         ` Laurent Pinchart
2017-02-05 15:48           ` Laurent Pinchart
2017-02-05 15:48           ` Laurent Pinchart
2017-02-06  9:50           ` Hans Verkuil
2017-02-06  9:50             ` Hans Verkuil
2017-02-06  9:50             ` Hans Verkuil
2017-02-06 22:33             ` Laurent Pinchart
2017-02-06 22:33               ` Laurent Pinchart
2017-02-06 22:33               ` Laurent Pinchart
2017-02-06 23:10               ` Steve Longerbeam
2017-02-06 23:10                 ` Steve Longerbeam
2017-02-06 23:10                 ` Steve Longerbeam
2017-02-07 10:26                 ` Laurent Pinchart
2017-02-07 10:26                   ` Laurent Pinchart
2017-02-07 10:26                   ` Laurent Pinchart
2017-02-07 10:41                   ` Philipp Zabel
2017-02-07 10:41                     ` Philipp Zabel
2017-02-07 10:41                     ` Philipp Zabel
2017-02-07 14:11                     ` Laurent Pinchart
2017-02-07 14:11                       ` Laurent Pinchart
2017-02-07 14:11                       ` Laurent Pinchart
2017-02-07 13:36                   ` Benoit Parrot
2017-02-07 13:36                     ` Benoit Parrot
2017-02-07 13:36                     ` Benoit Parrot
2017-02-07 20:50                     ` Sakari Ailus
2017-02-07 20:50                       ` Sakari Ailus
2017-02-07 20:50                       ` Sakari Ailus
2017-02-07 23:04                     ` Laurent Pinchart
2017-02-07 23:04                       ` Laurent Pinchart
2017-02-07 23:04                       ` Laurent Pinchart
2017-01-24 12:44   ` Javier Martinez Canillas
2017-01-24 12:44     ` Javier Martinez Canillas
2017-01-24 12:44     ` Javier Martinez Canillas
2017-01-24 12:44     ` Javier Martinez Canillas
2017-01-26  1:22     ` Steve Longerbeam
2017-01-26  1:22       ` Steve Longerbeam
2017-01-26  1:22       ` Steve Longerbeam
2017-01-26  1:22       ` Steve Longerbeam
2017-02-07 20:46   ` Sakari Ailus
2017-02-07 20:46     ` Sakari Ailus
2017-02-07 20:46     ` Sakari Ailus
2017-02-08  9:47     ` Philipp Zabel
2017-02-08  9:47       ` Philipp Zabel
2017-02-08  9:47       ` Philipp Zabel
2017-02-08 10:05       ` Laurent Pinchart
2017-02-08 10:05         ` Laurent Pinchart
2017-02-08 10:05         ` Laurent Pinchart
2017-01-07  2:11 ` [PATCH v3 14/24] UAPI: Add media UAPI Kbuild file Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 15/24] media: Add userspace header file for i.MX Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 12:05   ` Philipp Zabel
2017-01-13 12:05     ` Philipp Zabel
2017-01-13 12:05     ` Philipp Zabel
2017-01-13 23:13     ` Steve Longerbeam
2017-01-13 23:13       ` Steve Longerbeam
2017-01-13 23:13       ` Steve Longerbeam
2017-02-05 15:50       ` Laurent Pinchart
2017-02-05 15:50         ` Laurent Pinchart
2017-02-05 15:50         ` Laurent Pinchart
2017-01-07  2:11 ` [PATCH v3 16/24] media: Add i.MX media core driver Steve Longerbeam
2017-01-13 15:20   ` Philipp Zabel
2017-01-13 15:20     ` Philipp Zabel
2017-01-13 15:20     ` Philipp Zabel
2017-01-14 22:42     ` Steve Longerbeam
2017-01-19  1:44       ` Steve Longerbeam
2017-01-19  1:44         ` Steve Longerbeam
2017-01-19  1:44         ` Steve Longerbeam
2017-01-24 11:39         ` Philipp Zabel
2017-01-24 11:39           ` Philipp Zabel
2017-01-24 11:39           ` Philipp Zabel
2017-01-14 22:46     ` Steve Longerbeam
2017-01-14 22:46       ` Steve Longerbeam
2017-01-14 22:46       ` Steve Longerbeam
2017-01-16 13:47       ` Philipp Zabel
2017-01-16 13:47         ` Philipp Zabel
2017-01-16 13:47         ` Philipp Zabel
2017-01-23  2:31         ` Steve Longerbeam
2017-01-23  2:31           ` Steve Longerbeam
2017-01-23  2:31           ` Steve Longerbeam
2017-01-23 11:13           ` Philipp Zabel
2017-01-23 11:13             ` Philipp Zabel
2017-01-23 11:13             ` Philipp Zabel
2017-01-24  1:38             ` Steve Longerbeam
2017-01-24  1:38               ` Steve Longerbeam
2017-01-24  1:38               ` Steve Longerbeam
2017-01-24  1:45               ` Steve Longerbeam
2017-01-24  1:45                 ` Steve Longerbeam
2017-01-24  1:45                 ` Steve Longerbeam
2017-01-24 11:37                 ` Philipp Zabel
2017-01-24 11:37                   ` Philipp Zabel
2017-01-24 11:37                   ` Philipp Zabel
2017-01-30 15:28             ` Russell King - ARM Linux
2017-01-30 15:28               ` Russell King - ARM Linux
2017-01-30 15:28               ` Russell King - ARM Linux
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-02-02 22:44   ` Russell King - ARM Linux
2017-02-02 22:44     ` Russell King - ARM Linux
2017-02-02 22:44     ` Russell King - ARM Linux
2017-02-02 22:50   ` Russell King - ARM Linux
2017-02-02 22:50     ` Russell King - ARM Linux
2017-02-02 22:50     ` Russell King - ARM Linux
2017-02-07  1:54     ` Steve Longerbeam
2017-02-07  1:54       ` Steve Longerbeam
2017-02-07  1:54       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 17/24] media: imx: Add CSI subdev driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-16 15:03   ` Philipp Zabel
2017-01-16 15:03     ` Philipp Zabel
2017-01-16 15:03     ` Philipp Zabel
2017-01-16 21:15     ` Steve Longerbeam
2017-01-16 21:15       ` Steve Longerbeam
2017-01-16 21:15       ` Steve Longerbeam
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-31 10:30   ` Russell King - ARM Linux
2017-01-31 10:30     ` Russell King - ARM Linux
2017-01-31 10:30     ` Russell King - ARM Linux
2017-01-31 11:20   ` Russell King - ARM Linux
2017-01-31 11:20     ` Russell King - ARM Linux
2017-01-31 11:20     ` Russell King - ARM Linux
2017-02-01  0:31     ` Steve Longerbeam
2017-02-01  0:31       ` Steve Longerbeam
2017-02-01  0:31       ` Steve Longerbeam
2017-02-01  0:58       ` Russell King - ARM Linux
2017-02-01  0:58         ` Russell King - ARM Linux
2017-02-01  0:58         ` Russell King - ARM Linux
2017-01-31 15:51   ` Philipp Zabel
2017-01-31 15:51     ` Philipp Zabel
2017-01-31 15:51     ` Philipp Zabel
2017-01-31 16:48     ` Philipp Zabel
2017-01-31 16:48       ` Philipp Zabel
2017-01-31 16:48       ` Philipp Zabel
2017-02-01  1:40       ` Steve Longerbeam
2017-02-01  1:40         ` Steve Longerbeam
2017-02-01  1:40         ` Steve Longerbeam
2017-02-07 16:18   ` [PATCH] media: imx: csi: fix crop rectangle reset in sink set_fmt Philipp Zabel
2017-02-07 16:18     ` Philipp Zabel
2017-02-07 16:18     ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 18/24] media: imx: Add SMFC subdev driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-02-01 18:39   ` Russell King - ARM Linux
2017-02-01 18:39     ` Russell King - ARM Linux
2017-02-01 18:39     ` Russell King - ARM Linux
2017-02-01 18:52     ` Steve Longerbeam
2017-02-01 18:52       ` Steve Longerbeam
2017-02-01 18:52       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 19/24] media: imx: Add IC subdev drivers Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 14:29   ` Hans Verkuil
2017-01-20 14:29     ` Hans Verkuil
2017-01-20 14:29     ` Hans Verkuil
2017-01-25  2:39     ` Steve Longerbeam
2017-01-25  2:39       ` Steve Longerbeam
2017-01-25  2:39       ` Steve Longerbeam
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-07  2:11 ` [PATCH v3 20/24] media: imx: Add Camera Interface subdev driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 14:38   ` Hans Verkuil
2017-01-20 14:38     ` Hans Verkuil
2017-01-20 14:38     ` Hans Verkuil
2017-01-24  2:15     ` Steve Longerbeam
2017-01-24  2:15       ` Steve Longerbeam
2017-01-31 13:42     ` Russell King - ARM Linux
2017-01-31 13:42       ` Russell King - ARM Linux
2017-01-31 13:42       ` Russell King - ARM Linux
2017-01-31 18:21       ` Steve Longerbeam
2017-01-31 18:21         ` Steve Longerbeam
2017-01-31 20:33         ` Russell King - ARM Linux
2017-01-31 20:33           ` Russell King - ARM Linux
2017-01-31 20:33           ` Russell King - ARM Linux
2017-01-31 21:55           ` Ian Arkver
2017-01-31 21:55             ` Ian Arkver
2017-01-31 21:55             ` Ian Arkver
2017-01-31 22:04             ` Russell King - ARM Linux
2017-01-31 22:04               ` Russell King - ARM Linux
2017-01-31 22:04               ` Russell King - ARM Linux
2017-01-31 22:33               ` Ian Arkver
2017-01-31 22:33                 ` Ian Arkver
2017-01-31 22:33                 ` Ian Arkver
2017-01-31 22:36               ` Steve Longerbeam
2017-01-31 22:36                 ` Steve Longerbeam
2017-01-31 22:36                 ` Steve Longerbeam
2017-01-31 23:30                 ` Russell King - ARM Linux
2017-01-31 23:30                   ` Russell King - ARM Linux
2017-01-31 23:30                   ` Russell King - ARM Linux
2017-01-31 23:41                   ` Steve Longerbeam
2017-01-31 23:41                     ` Steve Longerbeam
2017-01-31 23:41                     ` Steve Longerbeam
2017-02-02 22:35   ` Russell King - ARM Linux
2017-02-02 22:35     ` Russell King - ARM Linux
2017-02-02 22:35     ` Russell King - ARM Linux
2017-02-07  1:52     ` Steve Longerbeam
2017-02-07  1:52       ` Steve Longerbeam
2017-02-07  1:52       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 21/24] media: imx: Add MIPI CSI-2 Receiver " Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-30 22:30   ` Russell King - ARM Linux
2017-01-30 22:30     ` Russell King - ARM Linux
2017-01-30 22:30     ` Russell King - ARM Linux
2017-01-31  0:01   ` Russell King - ARM Linux
2017-01-31  0:01     ` Russell King - ARM Linux
2017-01-31  0:01     ` Russell King - ARM Linux
2017-01-31  9:49     ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-02-01  1:02       ` Steve Longerbeam
2017-02-01  1:02         ` Steve Longerbeam
2017-02-01  1:02         ` Steve Longerbeam
2017-02-01  1:13         ` Russell King - ARM Linux
2017-02-01  1:13           ` Russell King - ARM Linux
2017-02-01  1:13           ` Russell King - ARM Linux
2017-01-31  0:31   ` Russell King - ARM Linux
2017-01-31  0:31     ` Russell King - ARM Linux
2017-01-31  0:31     ` Russell King - ARM Linux
2017-01-31  2:11     ` Steve Longerbeam
2017-01-31  2:11       ` Steve Longerbeam
2017-01-31  2:11       ` Steve Longerbeam
2017-02-01 23:44   ` Russell King - ARM Linux
2017-02-01 23:44     ` Russell King - ARM Linux
2017-02-01 23:44     ` Russell King - ARM Linux
2017-02-02  0:04     ` Steve Longerbeam
2017-02-02  0:04       ` Steve Longerbeam
2017-02-02  0:04       ` Steve Longerbeam
2017-02-02 11:50   ` Philipp Zabel
2017-02-02 11:50     ` Philipp Zabel
2017-02-02 11:50     ` Philipp Zabel
2017-02-08 23:23     ` Steve Longerbeam
2017-02-08 23:23       ` Steve Longerbeam
2017-02-08 23:23       ` Steve Longerbeam
2017-02-08 23:42       ` Russell King - ARM Linux
2017-02-08 23:42         ` Russell King - ARM Linux
2017-02-08 23:42         ` Russell King - ARM Linux
2017-02-09 23:49         ` Steve Longerbeam
2017-02-09 23:49           ` Steve Longerbeam
2017-02-09 23:49           ` Steve Longerbeam
2017-02-09 23:51           ` Steve Longerbeam
2017-02-09 23:51             ` Steve Longerbeam
2017-02-09 23:51             ` Steve Longerbeam
2017-02-13  9:20             ` Philipp Zabel
2017-02-13  9:20               ` Philipp Zabel
2017-02-13  9:20               ` Philipp Zabel
2017-02-13 23:19               ` Steve Longerbeam
2017-02-13 23:20               ` Steve Longerbeam
2017-02-13 23:20                 ` Steve Longerbeam
2017-02-13 23:20                 ` Steve Longerbeam
2017-02-14 16:59                 ` Philipp Zabel
2017-02-14 16:59                   ` Philipp Zabel
2017-02-14 16:59                   ` Philipp Zabel
2017-02-09  9:43       ` Philipp Zabel
2017-02-09  9:43         ` Philipp Zabel
2017-02-09  9:43         ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 22/24] media: imx: Add MIPI CSI-2 OV5640 sensor " Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 14:48   ` Hans Verkuil
2017-01-20 14:48     ` Hans Verkuil
2017-01-25 19:10     ` Steve Longerbeam
2017-01-25 19:10       ` Steve Longerbeam
2017-01-30 23:29   ` Russell King - ARM Linux
2017-01-30 23:29     ` Russell King - ARM Linux
2017-01-30 23:29     ` Russell King - ARM Linux
2017-01-31  3:31     ` Steve Longerbeam
2017-01-31  3:31       ` Steve Longerbeam
2017-01-31  3:31       ` Steve Longerbeam
2017-02-02 10:36   ` Laurent Pinchart
2017-02-02 10:36     ` Laurent Pinchart
2017-02-02 10:36     ` Laurent Pinchart
2017-02-12 22:46     ` Steve Longerbeam
2017-02-12 22:53     ` Steve Longerbeam
2017-02-12 22:53       ` Steve Longerbeam
2017-02-12 22:53       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 23/24] media: imx: Add Parallel OV5642 " Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 24/24] ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-11 23:14 ` [PATCH v3 00/24] i.MX Media Driver Tim Harvey
2017-01-11 23:14   ` Tim Harvey
2017-01-11 23:14   ` Tim Harvey
2017-01-12  3:22   ` Steve Longerbeam
2017-01-12  3:22     ` Steve Longerbeam
2017-01-12  3:22     ` Steve Longerbeam
2017-01-12 21:13     ` Tim Harvey
2017-01-12 22:32       ` Steve Longerbeam [this message]
2017-01-13 21:04         ` Tim Harvey
2017-01-20 13:52 ` Hans Verkuil
2017-01-20 13:52   ` Hans Verkuil
2017-01-20 13:52   ` Hans Verkuil
2017-01-20 16:31   ` Philipp Zabel
2017-01-20 16:31     ` Philipp Zabel
2017-01-20 16:31     ` Philipp Zabel
2017-01-20 18:40     ` Steve Longerbeam
2017-01-20 18:40       ` Steve Longerbeam
2017-01-20 20:39       ` Hans Verkuil
2017-01-20 20:39         ` Hans Verkuil
2017-01-20 20:39         ` Hans Verkuil
2017-01-23 11:00         ` Philipp Zabel
2017-01-23 11:00           ` Philipp Zabel
2017-01-23 11:00           ` Philipp Zabel
2017-01-23 11:08           ` Hans Verkuil
2017-01-23 11:08             ` Hans Verkuil
2017-01-23 11:08             ` Hans Verkuil
2017-01-24 11:28             ` Philipp Zabel
2017-01-24 11:28               ` Philipp Zabel
2017-01-24 11:28               ` Philipp Zabel
2017-01-23 23:08           ` Steve Longerbeam
2017-01-23 23:08             ` Steve Longerbeam
2017-01-24 11:27             ` Philipp Zabel
2017-01-24 11:27               ` Philipp Zabel
2017-01-24 11:27               ` Philipp Zabel
2017-01-28 19:27               ` Steve Longerbeam
2017-01-28 19:27                 ` Steve Longerbeam
2017-01-28 19:27                 ` Steve Longerbeam
2017-01-30 13:06               ` Russell King - ARM Linux
2017-01-30 13:06                 ` Russell King - ARM Linux
2017-01-30 13:06                 ` Russell King - ARM Linux
2017-01-31 10:09                 ` Philipp Zabel
2017-01-31 10:09                   ` Philipp Zabel
2017-01-31 10:09                   ` Philipp Zabel
2017-01-31 13:14                   ` Russell King - ARM Linux
2017-01-31 13:14                     ` Russell King - ARM Linux
2017-01-31 13:14                     ` Russell King - ARM Linux
2017-01-31 13:35                     ` Philipp Zabel
2017-01-31 13:35                       ` Philipp Zabel
2017-01-31 13:35                       ` Philipp Zabel
2017-01-31 14:04                       ` Russell King - ARM Linux
2017-01-31 14:04                         ` Russell King - ARM Linux
2017-01-31 14:04                         ` Russell King - ARM Linux
2017-01-31  0:45 ` Russell King - ARM Linux
2017-01-31  0:45   ` Russell King - ARM Linux
2017-01-31  0:45   ` Russell King - ARM Linux
2017-01-31  1:06   ` Russell King - ARM Linux
2017-01-31  1:06     ` Russell King - ARM Linux
2017-01-31  1:06     ` Russell King - ARM Linux
2017-01-31  2:06     ` Steve Longerbeam
2017-01-31  2:06       ` Steve Longerbeam
2017-01-31  2:06       ` Steve Longerbeam
2017-01-31  1:22   ` Steve Longerbeam
2017-01-31  1:22     ` Steve Longerbeam
2017-01-31  1:22     ` Steve Longerbeam
2017-01-31  9:49     ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-01-31 10:21     ` Russell King - ARM Linux
2017-01-31 10:21       ` Russell King - ARM Linux
2017-01-31 10:21       ` Russell King - ARM Linux
2017-01-31 11:00     ` Russell King - ARM Linux
2017-01-31 11:00       ` Russell King - ARM Linux
2017-01-31 11:00       ` Russell King - ARM Linux
2017-01-31 23:43       ` Steve Longerbeam
2017-01-31 23:43         ` Steve Longerbeam
2017-01-31 23:43         ` Steve Longerbeam
2017-02-01  0:23         ` Russell King - ARM Linux
2017-02-01  0:23           ` Russell King - ARM Linux
2017-02-01  0:23           ` Russell King - ARM Linux
2017-02-01  1:54           ` Steve Longerbeam
2017-02-01  1:54             ` Steve Longerbeam
2017-02-01  1:54             ` Steve Longerbeam
2017-02-01  9:20             ` Russell King - ARM Linux
2017-02-01  9:20               ` Russell King - ARM Linux
2017-02-01  9:20               ` Russell King - ARM Linux
2017-01-31 13:54 ` Philipp Zabel
2017-01-31 13:54   ` Philipp Zabel
2017-01-31 13:54   ` Philipp Zabel
2017-01-31 14:25   ` Philipp Zabel
2017-01-31 14:25     ` Philipp Zabel
2017-01-31 14:25     ` Philipp Zabel
2017-01-31 15:03     ` Russell King - ARM Linux
2017-01-31 15:03       ` Russell King - ARM Linux
2017-01-31 15:03       ` Russell King - ARM Linux
2017-02-01  1:26   ` Steve Longerbeam
2017-02-01  1:26     ` Steve Longerbeam
2017-02-01  1:26     ` Steve Longerbeam
2017-02-01  9:30     ` Philipp Zabel
2017-02-01  9:30       ` Philipp Zabel
2017-02-01  9:30       ` Philipp Zabel
2017-02-01 10:11       ` Russell King - ARM Linux
2017-02-01 10:11         ` Russell King - ARM Linux
2017-02-01 10:11         ` Russell King - ARM Linux
2017-02-01 10:42         ` Philipp Zabel
2017-02-01 10:42           ` Philipp Zabel
2017-02-01 10:42           ` Philipp Zabel
2017-02-01 10:53           ` Russell King - ARM Linux
2017-02-01 10:53             ` Russell King - ARM Linux
2017-02-01 10:53             ` Russell King - ARM Linux
2017-02-02  0:19       ` Steve Longerbeam
2017-02-02  0:19         ` Steve Longerbeam
2017-02-02  0:19         ` Steve Longerbeam
2017-02-03 14:41         ` Laurent Pinchart
2017-02-03 14:41           ` Laurent Pinchart
2017-02-03 14:41           ` Laurent Pinchart
2017-02-03 17:56           ` Steve Longerbeam
2017-02-03 17:56             ` Steve Longerbeam
2017-02-03 17:56             ` Steve Longerbeam
2017-02-15  2:27   ` Steve Longerbeam
2017-02-15  2:27     ` Steve Longerbeam
2017-02-15  2:27     ` Steve Longerbeam
2017-02-15  9:33     ` Philipp Zabel
2017-02-15  9:33       ` Philipp Zabel
2017-02-15  9:33       ` Philipp Zabel
2017-02-02 17:22 ` Russell King - ARM Linux
2017-02-02 17:22   ` Russell King - ARM Linux
2017-02-02 17:22   ` Russell King - ARM Linux
2017-02-02 17:31   ` Steve Longerbeam
2017-02-02 17:31     ` Steve Longerbeam
2017-02-02 17:31     ` Steve Longerbeam
2017-02-02 17:56   ` Russell King - ARM Linux
2017-02-02 17:56     ` Russell King - ARM Linux
2017-02-02 17:56     ` Russell King - ARM Linux
2017-02-02 18:26     ` Steve Longerbeam
2017-02-02 18:26       ` Steve Longerbeam
2017-02-02 18:26       ` Steve Longerbeam
2017-02-02 18:58       ` Russell King - ARM Linux
2017-02-02 18:58         ` Russell King - ARM Linux
2017-02-02 18:58         ` Russell King - ARM Linux
2017-02-02 19:12         ` Steve Longerbeam
2017-02-02 19:12           ` Steve Longerbeam
2017-02-02 19:12           ` Steve Longerbeam
2017-02-02 22:29           ` Russell King - ARM Linux
2017-02-02 22:29             ` Russell King - ARM Linux
2017-02-02 22:29             ` Russell King - ARM Linux
2017-02-03 18:49             ` Steve Longerbeam
2017-02-03 18:49               ` Steve Longerbeam
2017-02-03 18:49               ` Steve Longerbeam
2017-02-03 14:21           ` vb2 queue_setup documentation clarification (was "Re: [PATCH v3 00/24] i.MX Media Driver") Laurent Pinchart
2017-02-03 14:31             ` Hans Verkuil

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=f956170a-38d9-ce97-51df-e88f59e4ac17@gmail.com \
    --to=slongerbeam@gmail.com \
    --cc=fabio.estevam@nxp.com \
    --cc=hverkuil@xs4all.nl \
    --cc=kernel@pengutronix.de \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=steve_longerbeam@mentor.com \
    --cc=tharvey@gateworks.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.