linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel
@ 2020-04-09 16:29 Fabio Estevam
  2020-04-09 16:29 ` [PATCH v2 2/4] media: imx.rst: Provide an example for unprocessed video capture Fabio Estevam
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Fabio Estevam @ 2020-04-09 16:29 UTC (permalink / raw)
  To: hverkuil-cisco; +Cc: slongerbeam, p.zabel, linux-media, Fabio Estevam

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(-)

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
 ------------
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/4] media: imx.rst: Provide an example for unprocessed video capture
  2020-04-09 16:29 [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Fabio Estevam
@ 2020-04-09 16:29 ` Fabio Estevam
  2020-04-09 16:29 ` [PATCH v2 3/4] media: imx.rst: Provide the OV560 module part number Fabio Estevam
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Fabio Estevam @ 2020-04-09 16:29 UTC (permalink / raw)
  To: hverkuil-cisco; +Cc: slongerbeam, p.zabel, linux-media, Fabio Estevam

The current example for imx6q-sabresd is for a direct conversion pipeline.

Provide an extra example using unprocessed video capture for completeness.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Steve Longerbeam <slongerbeam@gmail.com>
---
Changes since v1:
- None

 Documentation/media/v4l-drivers/imx.rst | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst
index b8df91f83f14..fb6e01976254 100644
--- a/Documentation/media/v4l-drivers/imx.rst
+++ b/Documentation/media/v4l-drivers/imx.rst
@@ -644,6 +644,26 @@ 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 unprocessed video capture pipeline to
+capture from the OV5640, transmitting on MIPI CSI-2 virtual channel 0:
+
+.. code-block:: none
+
+   # Setup links
+   media-ctl -l "'ov5640 1-003c':0 -> 'imx6-mipi-csi2':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':2 -> 'ipu1_csi0 capture':0[1]"
+   # Configure pads
+   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':0 [fmt:UYVY2X8/640x480]"
+   media-ctl -V "'ipu1_csi0':0 [fmt:AYUV32/640x480]"
+
+Streaming can then begin on "ipu1_csi0 capture" node. The v4l2-ctl
+tool can be used to select any supported pixelformat on the capture
+device node.
+
 The following example configures a direct conversion pipeline to capture
 from the OV5640, transmitting on MIPI CSI-2 virtual channel 0. It also
 shows colorspace conversion and scaling at IC output.
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/4] media: imx.rst: Provide the OV560 module part number
  2020-04-09 16:29 [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Fabio Estevam
  2020-04-09 16:29 ` [PATCH v2 2/4] media: imx.rst: Provide an example for unprocessed video capture Fabio Estevam
@ 2020-04-09 16:29 ` Fabio Estevam
  2020-04-09 16:29 ` [PATCH v2 4/4] media: imx.rst: Provide streaming examples for imx6q-sabresd Fabio Estevam
  2020-04-09 16:45 ` [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Steve Longerbeam
  3 siblings, 0 replies; 6+ messages in thread
From: Fabio Estevam @ 2020-04-09 16:29 UTC (permalink / raw)
  To: hverkuil-cisco; +Cc: slongerbeam, p.zabel, linux-media, Fabio Estevam

In order to improve the documentation, provide the OV5640 MIPI module
part number that is used on the imx6q-sabresd board.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Steve Longerbeam <slongerbeam@gmail.com>
---
Changes since v1:
- None

 Documentation/media/v4l-drivers/imx.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst
index fb6e01976254..955d27582e10 100644
--- a/Documentation/media/v4l-drivers/imx.rst
+++ b/Documentation/media/v4l-drivers/imx.rst
@@ -641,8 +641,8 @@ 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 OV5640 module connects to MIPI connector J5. The NXP part number
+for the OV5640 module that connects to the SabreSD board is H120729.
 
 The following example configures unprocessed video capture pipeline to
 capture from the OV5640, transmitting on MIPI CSI-2 virtual channel 0:
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 4/4] media: imx.rst: Provide streaming examples for imx6q-sabresd
  2020-04-09 16:29 [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Fabio Estevam
  2020-04-09 16:29 ` [PATCH v2 2/4] media: imx.rst: Provide an example for unprocessed video capture Fabio Estevam
  2020-04-09 16:29 ` [PATCH v2 3/4] media: imx.rst: Provide the OV560 module part number Fabio Estevam
@ 2020-04-09 16:29 ` Fabio Estevam
  2020-04-09 17:09   ` Steve Longerbeam
  2020-04-09 16:45 ` [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Steve Longerbeam
  3 siblings, 1 reply; 6+ messages in thread
From: Fabio Estevam @ 2020-04-09 16:29 UTC (permalink / raw)
  To: hverkuil-cisco; +Cc: slongerbeam, p.zabel, linux-media, Fabio Estevam

Improve the documentation by providing examples on how to test camera
capture on imx6q-sabresd via v4l2-ctl and Gstreamer.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
Changes since v1:
- Use media-ctl -e to determine the video node. (Steve)

 Documentation/media/v4l-drivers/imx.rst | 45 +++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst
index 955d27582e10..025f21def7dc 100644
--- a/Documentation/media/v4l-drivers/imx.rst
+++ b/Documentation/media/v4l-drivers/imx.rst
@@ -664,6 +664,28 @@ Streaming can then begin on "ipu1_csi0 capture" node. The v4l2-ctl
 tool can be used to select any supported pixelformat on the capture
 device node.
 
+To determine what is the /dev/video node correspondent to
+"ipu1_csi0 capture":
+
+.. code-block:: none
+
+   media-ctl -e "ipu1_csi0 capture"
+   /dev/video0
+
+/dev/video0 is the streaming element in this case.
+
+Starting the streaming via v4l2-ctl:
+
+.. code-block:: none
+
+   v4l2-ctl --stream-mmap -d /dev/video0
+
+Starting the streaming via Gstreamer and sending the content to the display:
+
+.. code-block:: none
+
+   gst-launch-1.0 v4l2src device=/dev/video0 ! kmssink
+
 The following example configures a direct conversion pipeline to capture
 from the OV5640, transmitting on MIPI CSI-2 virtual channel 0. It also
 shows colorspace conversion and scaling at IC output.
@@ -689,6 +711,29 @@ shows colorspace conversion and scaling at IC output.
 
 Streaming can then begin on "ipu1_ic_prpenc capture" node.
 
+To determine what is the /dev/video node correspondent to
+"ipu1_ic_prpenc capture":
+
+.. code-block:: none
+
+   media-ctl -e "ipu1_ic_prpenc capture"
+   /dev/video1
+
+
+/dev/video1 is the streaming element in this case.
+
+Starting the streaming via v4l2-ctl:
+
+.. code-block:: none
+
+   v4l2-ctl --stream-mmap -d /dev/video1
+
+Starting the streaming via Gstreamer and sending the content to the display:
+
+.. code-block:: none
+
+   gst-launch-1.0 v4l2src device=/dev/video1 ! kmssink
+
 Known Issues
 ------------
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel
  2020-04-09 16:29 [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Fabio Estevam
                   ` (2 preceding siblings ...)
  2020-04-09 16:29 ` [PATCH v2 4/4] media: imx.rst: Provide streaming examples for imx6q-sabresd Fabio Estevam
@ 2020-04-09 16:45 ` Steve Longerbeam
  3 siblings, 0 replies; 6+ messages in thread
From: Steve Longerbeam @ 2020-04-09 16:45 UTC (permalink / raw)
  To: Fabio Estevam, hverkuil-cisco; +Cc: p.zabel, linux-media



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
>   ------------


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 4/4] media: imx.rst: Provide streaming examples for imx6q-sabresd
  2020-04-09 16:29 ` [PATCH v2 4/4] media: imx.rst: Provide streaming examples for imx6q-sabresd Fabio Estevam
@ 2020-04-09 17:09   ` Steve Longerbeam
  0 siblings, 0 replies; 6+ messages in thread
From: Steve Longerbeam @ 2020-04-09 17:09 UTC (permalink / raw)
  To: Fabio Estevam, hverkuil-cisco; +Cc: p.zabel, linux-media



On 4/9/20 9:29 AM, Fabio Estevam wrote:
> Improve the documentation by providing examples on how to test camera
> capture on imx6q-sabresd via v4l2-ctl and Gstreamer.
>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>

Reviewed-by: Steve Longerbeam<slongerbeam@gmail.com>

> ---
> Changes since v1:
> - Use media-ctl -e to determine the video node. (Steve)
>
>   Documentation/media/v4l-drivers/imx.rst | 45 +++++++++++++++++++++++++
>   1 file changed, 45 insertions(+)
>
> diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst
> index 955d27582e10..025f21def7dc 100644
> --- a/Documentation/media/v4l-drivers/imx.rst
> +++ b/Documentation/media/v4l-drivers/imx.rst
> @@ -664,6 +664,28 @@ Streaming can then begin on "ipu1_csi0 capture" node. The v4l2-ctl
>   tool can be used to select any supported pixelformat on the capture
>   device node.
>   
> +To determine what is the /dev/video node correspondent to
> +"ipu1_csi0 capture":
> +
> +.. code-block:: none
> +
> +   media-ctl -e "ipu1_csi0 capture"
> +   /dev/video0
> +
> +/dev/video0 is the streaming element in this case.
> +
> +Starting the streaming via v4l2-ctl:
> +
> +.. code-block:: none
> +
> +   v4l2-ctl --stream-mmap -d /dev/video0
> +
> +Starting the streaming via Gstreamer and sending the content to the display:
> +
> +.. code-block:: none
> +
> +   gst-launch-1.0 v4l2src device=/dev/video0 ! kmssink
> +
>   The following example configures a direct conversion pipeline to capture
>   from the OV5640, transmitting on MIPI CSI-2 virtual channel 0. It also
>   shows colorspace conversion and scaling at IC output.
> @@ -689,6 +711,29 @@ shows colorspace conversion and scaling at IC output.
>   
>   Streaming can then begin on "ipu1_ic_prpenc capture" node.
>   
> +To determine what is the /dev/video node correspondent to
> +"ipu1_ic_prpenc capture":
> +
> +.. code-block:: none
> +
> +   media-ctl -e "ipu1_ic_prpenc capture"
> +   /dev/video1
> +
> +
> +/dev/video1 is the streaming element in this case.
> +
> +Starting the streaming via v4l2-ctl:
> +
> +.. code-block:: none
> +
> +   v4l2-ctl --stream-mmap -d /dev/video1
> +
> +Starting the streaming via Gstreamer and sending the content to the display:
> +
> +.. code-block:: none
> +
> +   gst-launch-1.0 v4l2src device=/dev/video1 ! kmssink
> +
>   Known Issues
>   ------------
>   


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-04-09 17:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-09 16:29 [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Fabio Estevam
2020-04-09 16:29 ` [PATCH v2 2/4] media: imx.rst: Provide an example for unprocessed video capture Fabio Estevam
2020-04-09 16:29 ` [PATCH v2 3/4] media: imx.rst: Provide the OV560 module part number Fabio Estevam
2020-04-09 16:29 ` [PATCH v2 4/4] media: imx.rst: Provide streaming examples for imx6q-sabresd Fabio Estevam
2020-04-09 17:09   ` Steve Longerbeam
2020-04-09 16:45 ` [PATCH v2 1/4] media: imx.rst: Fix the MIPI CSI-2 virtual channel Steve Longerbeam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).