Message ID | 20200409162945.3559-1-festevam@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel | expand |
On 4/9/20 9:29 AM, Fabio Estevam wrote: > The current instructions for imx6q-sabresd do not lead to functional > capture on OV5640 MIPI CSI-2. > > The reason for this, as explained by Steve Longerbeam, is that OV5640 by > default transmits on virtual channel 0, not channel 1 as is given in the > instructions. > > Adapt the instructions to use virtual channel 0 so that a working > camera setup can be achieved on imx6q-sabresd. > > Also, since we are using an IC direct conversion pipeline, improve > the example by demonstrating colorspace and scaling. > > Signed-off-by: Fabio Estevam <festevam@gmail.com> Reviewed-by: Steve Longerbeam<slongerbeam@gmail.com> > --- > Changes since v1: > - Demonstrate colorspace and scaling. (Steve) > > Documentation/media/v4l-drivers/imx.rst | 31 ++++++++++++------------- > 1 file changed, 15 insertions(+), 16 deletions(-) > > diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst > index 1246573c1019..b8df91f83f14 100644 > --- a/Documentation/media/v4l-drivers/imx.rst > +++ b/Documentation/media/v4l-drivers/imx.rst > @@ -645,30 +645,29 @@ 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 direct conversion pipeline to capture > -from the OV5640, transmitting on MIPI CSI-2 virtual channel 1. $sensorfmt > -can be any format supported by the OV5640. $sensordim is the frame > -dimension part of $sensorfmt (minus the mbus pixel code). $outputfmt can > -be any format supported by the ipu1_ic_prpenc entity at its output pad: > +from the OV5640, transmitting on MIPI CSI-2 virtual channel 0. It also > +shows colorspace conversion and scaling at IC output. > > .. code-block:: none > > # Setup links > media-ctl -l "'ov5640 1-003c':0 -> 'imx6-mipi-csi2':0[1]" > - media-ctl -l "'imx6-mipi-csi2':2 -> 'ipu1_csi1':0[1]" > - media-ctl -l "'ipu1_csi1':1 -> 'ipu1_ic_prp':0[1]" > + media-ctl -l "'imx6-mipi-csi2':1 -> 'ipu1_csi0_mux':0[1]" > + media-ctl -l "'ipu1_csi0_mux':2 -> 'ipu1_csi0':0[1]" > + media-ctl -l "'ipu1_csi0':1 -> 'ipu1_ic_prp':0[1]" > media-ctl -l "'ipu1_ic_prp':1 -> 'ipu1_ic_prpenc':0[1]" > media-ctl -l "'ipu1_ic_prpenc':1 -> 'ipu1_ic_prpenc capture':0[1]" > # Configure pads > - media-ctl -V "'ov5640 1-003c':0 [fmt:$sensorfmt field:none]" > - media-ctl -V "'imx6-mipi-csi2':2 [fmt:$sensorfmt field:none]" > - media-ctl -V "'ipu1_csi1':1 [fmt:AYUV32/$sensordim field:none]" > - media-ctl -V "'ipu1_ic_prp':1 [fmt:AYUV32/$sensordim field:none]" > - media-ctl -V "'ipu1_ic_prpenc':1 [fmt:$outputfmt field:none]" > - > -Streaming can then begin on "ipu1_ic_prpenc capture" node. The v4l2-ctl > -tool can be used to select any supported YUV or RGB pixelformat on the > -capture device node. > - > + media-ctl -V "'ov5640 1-003c':0 [fmt:UYVY2X8/640x480]" > + media-ctl -V "'imx6-mipi-csi2':1 [fmt:UYVY2X8/640x480]" > + media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/640x480]" > + media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/640x480]" > + media-ctl -V "'ipu1_ic_prp':1 [fmt:AYUV32/640x480]" > + media-ctl -V "'ipu1_ic_prpenc':1 [fmt:ARGB8888_1X32/800x600]" > + # Set a format at the capture interface > + v4l2-ctl -d /dev/video1 --set-fmt-video=pixelformat=RGB3 > + > +Streaming can then begin on "ipu1_ic_prpenc capture" node. > > Known Issues > ------------
diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst index 1246573c1019..b8df91f83f14 100644 --- a/Documentation/media/v4l-drivers/imx.rst +++ b/Documentation/media/v4l-drivers/imx.rst @@ -645,30 +645,29 @@ 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 direct conversion pipeline to capture -from the OV5640, transmitting on MIPI CSI-2 virtual channel 1. $sensorfmt -can be any format supported by the OV5640. $sensordim is the frame -dimension part of $sensorfmt (minus the mbus pixel code). $outputfmt can -be any format supported by the ipu1_ic_prpenc entity at its output pad: +from the OV5640, transmitting on MIPI CSI-2 virtual channel 0. It also +shows colorspace conversion and scaling at IC output. .. code-block:: none # Setup links media-ctl -l "'ov5640 1-003c':0 -> 'imx6-mipi-csi2':0[1]" - media-ctl -l "'imx6-mipi-csi2':2 -> 'ipu1_csi1':0[1]" - media-ctl -l "'ipu1_csi1':1 -> 'ipu1_ic_prp':0[1]" + media-ctl -l "'imx6-mipi-csi2':1 -> 'ipu1_csi0_mux':0[1]" + media-ctl -l "'ipu1_csi0_mux':2 -> 'ipu1_csi0':0[1]" + media-ctl -l "'ipu1_csi0':1 -> 'ipu1_ic_prp':0[1]" media-ctl -l "'ipu1_ic_prp':1 -> 'ipu1_ic_prpenc':0[1]" media-ctl -l "'ipu1_ic_prpenc':1 -> 'ipu1_ic_prpenc capture':0[1]" # Configure pads - media-ctl -V "'ov5640 1-003c':0 [fmt:$sensorfmt field:none]" - media-ctl -V "'imx6-mipi-csi2':2 [fmt:$sensorfmt field:none]" - media-ctl -V "'ipu1_csi1':1 [fmt:AYUV32/$sensordim field:none]" - media-ctl -V "'ipu1_ic_prp':1 [fmt:AYUV32/$sensordim field:none]" - media-ctl -V "'ipu1_ic_prpenc':1 [fmt:$outputfmt field:none]" - -Streaming can then begin on "ipu1_ic_prpenc capture" node. The v4l2-ctl -tool can be used to select any supported YUV or RGB pixelformat on the -capture device node. - + media-ctl -V "'ov5640 1-003c':0 [fmt:UYVY2X8/640x480]" + media-ctl -V "'imx6-mipi-csi2':1 [fmt:UYVY2X8/640x480]" + media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/640x480]" + media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/640x480]" + media-ctl -V "'ipu1_ic_prp':1 [fmt:AYUV32/640x480]" + media-ctl -V "'ipu1_ic_prpenc':1 [fmt:ARGB8888_1X32/800x600]" + # Set a format at the capture interface + v4l2-ctl -d /dev/video1 --set-fmt-video=pixelformat=RGB3 + +Streaming can then begin on "ipu1_ic_prpenc capture" node. Known Issues ------------
The current instructions for imx6q-sabresd do not lead to functional capture on OV5640 MIPI CSI-2. The reason for this, as explained by Steve Longerbeam, is that OV5640 by default transmits on virtual channel 0, not channel 1 as is given in the instructions. Adapt the instructions to use virtual channel 0 so that a working camera setup can be achieved on imx6q-sabresd. Also, since we are using an IC direct conversion pipeline, improve the example by demonstrating colorspace and scaling. Signed-off-by: Fabio Estevam <festevam@gmail.com> --- Changes since v1: - Demonstrate colorspace and scaling. (Steve) Documentation/media/v4l-drivers/imx.rst | 31 ++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-)