On Wed, Jan 9, 2019 at 10:30 AM Steve Longerbeam <slongerbeam@xxxxxxxxx> wrote: > > Also add an example pipeline for unconverted capture with interweave > on SabreAuto. > > Cleanup some language in various places in the process. > > Signed-off-by: Steve Longerbeam <slongerbeam@xxxxxxxxx> > Reviewed-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> > --- > Changes since v4: > - Make clear that it is IDMAC channel that does pixel reordering and > interweave, not the CSI. Caught by Philipp Zabel. > Changes since v3: > - none. > Changes since v2: > - expand on idmac interweave behavior in CSI subdev. > - switch second SabreAuto pipeline example to PAL to give > both NTSC and PAL examples. > - Cleanup some language in various places. > --- > Documentation/media/v4l-drivers/imx.rst | 103 +++++++++++++++--------- > 1 file changed, 66 insertions(+), 37 deletions(-) > <snip> > Capture Pipelines > ----------------- > @@ -516,10 +522,33 @@ 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 > -"interlaced". $outputfmt can be any format supported by the ipu1_ic_prpvf > -entity at its output pad: > +video decoder, assuming NTSC 720x480 input signals, using simple > +interweave (unconverted and without motion compensation). The adv7180 > +must output sequential or alternating fields (field type 'seq-bt' for > +NTSC, or 'alternate'): > + > +.. code-block:: none > + > + # Setup links > + media-ctl -l "'adv7180 3-0021':0 -> 'ipu1_csi0_mux':1[1]" > + media-ctl -l "'ipu1_csi0_mux':2 -> 'ipu1_csi0':0[1]" > + media-ctl -l "'ipu1_csi0':2 -> 'ipu1_csi0 capture':0[1]" > + # Configure pads > + media-ctl -V "'adv7180 3-0021':0 [fmt:UYVY2X8/720x480 field:seq-bt]" > + media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x480]" > + media-ctl -V "'ipu1_csi0':2 [fmt:AYUV32/720x480]" > + # Configure "ipu1_csi0 capture" interface (assumed at /dev/video4) > + v4l2-ctl -d4 --set-fmt-video=field=interlaced_bt > + > +Streaming can then begin on /dev/video4. The v4l2-ctl tool can also be > +used to select any supported YUV pixelformat on /dev/video4. > + Hi Steve, I'm testing 4.20 with this patchset on top. I'm on a GW5104 which has an IMX6Q with the adv7180 on ipu1_csi0 like the SabeAuto example above I can't get the simple interveave example to work: media-ctl -r # reset all links # Setup links (ADV7180 IPU1_CSI0) 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":2 -> "ipu1_csi0 capture":0[1]' # /dev/video4 # Configure pads media-ctl -V "'adv7180 2-0020':0 [fmt:UYVY2X8/720x480 field:seq-bt]" media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x480]" media-ctl -V "'ipu1_csi0':0 [fmt:AYUV32/720x480]" # Configure 'ipu1_csi0 capture' interface (/dev/video4) v4l2-ctl -d4 --set-fmt-video=field=interlaced_bt # streaming can now begin on the raw capture device node at /dev/video4 v4l2-ctl -d4 --stream-mmap --stream-to=/x.raw --stream-count=1 # capture 1 frame [ 5547.354460] ipu1_csi0: pipeline start failed with -32 VIDIOC_STREAMON: failed: Broken pipe Any ideas what is causing this pipeline failure. > +This example configures a pipeline to capture from the ADV7180 > +video decoder, assuming PAL 720x576 input signals, with Motion > +Compensated de-interlacing. The adv7180 must output sequential or > +alternating fields (field type 'seq-tb' for PAL, or 'alternate'). > +$outputfmt can be any format supported by the ipu1_ic_prpvf entity > +at its output pad: > > .. code-block:: none > > @@ -531,11 +560,11 @@ entity at its output pad: > media-ctl -l "'ipu1_ic_prp':2 -> 'ipu1_ic_prpvf':0[1]" > media-ctl -l "'ipu1_ic_prpvf':1 -> 'ipu1_ic_prpvf capture':0[1]" > # Configure pads > - media-ctl -V "'adv7180 3-0021':0 [fmt:UYVY2X8/720x480]" > - media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x480 field:interlaced]" > - media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/720x480 field:interlaced]" > - media-ctl -V "'ipu1_vdic':2 [fmt:AYUV32/720x480 field:none]" > - media-ctl -V "'ipu1_ic_prp':2 [fmt:AYUV32/720x480 field:none]" > + media-ctl -V "'adv7180 3-0021':0 [fmt:UYVY2X8/720x576 field:seq-tb]" > + media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x576]" > + media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/720x576]" > + media-ctl -V "'ipu1_vdic':2 [fmt:AYUV32/720x576 field:none]" > + media-ctl -V "'ipu1_ic_prp':2 [fmt:AYUV32/720x576 field:none]" > media-ctl -V "'ipu1_ic_prpvf':1 [fmt:$outputfmt field:none]" > > Streaming can then begin on the capture device node at The above motion-compensation example pipeline does now work with this patch series - thanks for addressing this! Regards, Tim