linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* IMX219 MIPI Sensor (meda-tree) with vaniila I.MX6Q media drivers
@ 2020-03-26  8:28 Михайлов Алексей Анатольевич
  2020-03-26 18:56 ` Fabio Estevam
  2020-03-26 19:17 ` Fabio Estevam
  0 siblings, 2 replies; 9+ messages in thread
From: Михайлов Алексей Анатольевич @ 2020-03-26  8:28 UTC (permalink / raw)
  To: linux-media

Hi!

We build custom CPU Module with NXP/Freescale IMX6QuadPlus CPU.I use 
latest stable kernel from kernel.org. This time kernel version 5.5.11. 
Also I connect to I.MX MIPI cameras from RaspberryPI (Rev 2.1 with Sony 
IMX219). For IMX219 used actual driver from [1]. Usersapce based on 
Gentoo Linux, have media-utils version 1.2.1, v4l2-utils version 1.18.0, 
gstreamer version 1.14.5 with v4l2 plugins. Also Wayland version 1.17 
based graphics with XWayland.

Camera write in DTB:
==== cut: DTB fragments ====
/ {
[skiped]
	imx219_clk: camera-clk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24000000>;
	};

	imx219_1v2_reg: cam1v2_regulator {
		compatible = "regulator-fixed";
		regulator-name = "IMX219_1V2";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		vin-supply = <&p3v3_reg>;
		regulator-always-on;
	};

	imx219_1v8_reg: cam1v8_regulator {
		compatible = "regulator-fixed";
		regulator-name = "IMX219_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&p3v3_reg>;
		regulator-always-on;
	};

	imx219_2v8_reg: cam2v8_regulator {
		compatible = "regulator-fixed";
		regulator-name = "IMX219_2V8";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		vin-supply = <&p3v3_reg>;
		regulator-always-on;
	};
[skiped]
csi_i2c: i2c-mux@1 { /* CSI camera */
	#address-cells = <1>;
	#size-cells = <0>;
	reg = <1>;
	sensor@10 {	/* Raspberry Camera V2 */
		compatible = "sony,imx219";
		reg = <0x10>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&imx219_clk>;
		clock-names = "xclk";
		DOVDD-supply = <&imx219_1v8_reg>; /* 1.8v */
		AVDD-supply = <&imx219_2v8_reg>;  /* 2.8v */
		DVDD-supply = <&imx219_1v2_reg>;  /* 1.2v */

		port {
			csi_sensor_out: endpoint {
				remote-endpoint = <&csi_port_in>;
				link-frequencies = /bits/ 64 <456000000>;
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};
	};
};
[skiped]
&mipi_csi {
	status = "okay";

	port@0 {
		reg = <0>;
		csi_port_in: endpoint {
			remote-endpoint = <&csi_sensor_out>;
			clock-lanes = <0>;
			data-lanes = <1 2>;
		};
	};
};
[skiped]
==== cut: DTB fragments ====

I use script for init connected camera

==== cut: Camera init script ===
#!/bin/bash

# sensor output format and resolutions
# RaspberryPI Camera rev 2.1 (Sony I.MX219)
I_FORMAT=SRGGB10_1X10
I_RESOLUTION=1920x1080
CROP=(0,0)/640x480

# capture format and resolution
O_FORMAT=AYUV32
O_RESOLUTION=640x480

# viewport format and resolution
V_FORMAT=AYUV32
V_RESOLUTION=640x480

# Reset all media links
media-ctl -r

# Sersor to IPU and PRP path
# RaspberryPI Camera rev 2.1 (Sony I.MX219)
media-ctl -l "'imx219 9-0010':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 "'ipu1_csi1':2 -> 'ipu1_csi1 capture':0[1]" # /dev/video3 
(unused, unprocessed)
# IPU to capture
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]" # 
/dev/video1
# IPU to viewport
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]" # 
/dev/video2

# RaspberryPI Camera rev 2.1 (Sony I.MX219)
media-ctl -V "'imx219 9-0010':0 [fmt:${I_FORMAT}/${I_RESOLUTION} 
field:none]"
media-ctl -V "'imx6-mipi-csi2':2 [fmt:${I_FORMAT}/${I_RESOLUTION} 
field:none]"
media-ctl -V "'ipu1_csi1':0 [crop:${CROP}]"
media-ctl -V "'ipu1_csi1':1 [fmt:${I_FORMAT}/${O_RESOLUTION} field:none]"

media-ctl -V "'ipu1_ic_prp':1 [fmt:${O_FORMAT}/${O_RESOLUTION} field:none]"
media-ctl -V "'ipu1_ic_prpenc':1 [fmt:${O_FORMAT}/${O_RESOLUTION} 
field:none]"

media-ctl -V "'ipu1_ic_prp':2 [fmt:${V_FORMAT}/${V_RESOLUTION} field:none]"
media-ctl -V "'ipu1_ic_prpvf':1 [fmt:${V_FORMAT}/${V_RESOLUTION} 
field:none]"
==== cut: Camera init script ===

I try start system with V2.1 camera and start capture frames:
[...]
# ./camera_init.sh
# gst-launch-1.0 -v v4l2src device=/dev/video2 ! fakesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = 
video/x-raw, format=(string)YUY2, framerate=(fraction)30000/1001, 
width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, 
interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = 
video/x-raw, format=(string)YUY2, framerate=(fraction)30000/1001, 
width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, 
interlace-mode=(string)progressive
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed 
to allocate required memory.
Additional debug info:
/var/tmp/portage/media-plugins/gst-plugins-v4l2-1.14.5/work/gst-plugins-good-1.14.5/sys/v4l2/gstv4l2src.c(656): 
gst_v4l2src_decide_allocation (): 
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.014952667
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
# media-ctl -p
Media controller API version 5.5.13

Media device information
------------------------
driver          imx-media
model           imx-media
serial
bus info
hw revision     0x0
driver version  5.5.13

Device topology
[...]
- entity 15: ipu1_ic_prp (3 pads, 5 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev2
         pad0: Sink
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 <- "ipu1_csi0":1 []
                 <- "ipu1_vdic":2 []
                 <- "ipu1_csi1":1 [ENABLED]
         pad1: Source
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_ic_prpenc":0 [ENABLED]
         pad2: Source
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_ic_prpvf":0 [ENABLED]

- entity 19: ipu1_ic_prpenc (2 pads, 2 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev3
         pad0: Sink
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 <- "ipu1_ic_prp":1 [ENABLED]
         pad1: Source
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:lim-range]
                 -> "ipu1_ic_prpenc capture":0 [ENABLED]

- entity 22: ipu1_ic_prpenc capture (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video1
         pad0: Sink
                 <- "ipu1_ic_prpenc":1 [ENABLED]

- entity 28: ipu1_ic_prpvf (2 pads, 2 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev4
         pad0: Sink
                 [fmt:AYUV8_1X32/640x480@1001/30000 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                 <- "ipu1_ic_prp":2 [ENABLED]
         pad1: Source
                 [fmt:AYUV8_1X32/640x480@1001/30000 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                 -> "ipu1_ic_prpvf capture":0 [ENABLED]

- entity 31: ipu1_ic_prpvf capture (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video2
         pad0: Sink
                 <- "ipu1_ic_prpvf":1 [ENABLED]

- entity 47: ipu1_csi1 (3 pads, 4 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev5
         pad0: Sink
                 [fmt:SRGGB10_1X10/1920x1080@1/30 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
                  crop.bounds:(0,0)/1920x1080
                  crop:(0,0)/640x480
                  compose.bounds:(0,0)/640x480
                  compose:(0,0)/640x480]
                 <- "imx6-mipi-csi2":2 [ENABLED]
         pad1: Source
                 [fmt:SRGGB10_1X10/640x480@1/30 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_ic_prp":0 [ENABLED]
                 -> "ipu1_vdic":0 []
         pad2: Source
                 [fmt:SRGGB10_1X10/640x480@1/30 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_csi1 capture":0 []
[...]
- entity 121: imx6-mipi-csi2 (5 pads, 5 links)
               type V4L2 subdev subtype Unknown flags 0
               device node name /dev/v4l-subdev12
         pad0: Sink
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 <- "imx219 9-0010":0 [ENABLED]
         pad1: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_csi0_mux":0 []
         pad2: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_csi1":0 [ENABLED]
         pad3: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu2_csi0":0 []
         pad4: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu2_csi1_mux":0 []
[...]
- entity 135: imx219 9-0010 (1 pad, 1 link)
               type V4L2 subdev subtype Sensor flags 0
               device node name /dev/v4l-subdev15
         pad0: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "imx6-mipi-csi2":0 [ENABLED]
localhost ~ # dmesg -c
[...]
[   51.941858] ipu1_ic_prpvf: pipeline start failed with -32
localhost ~ #

I think EPIPE (-32) caused by link between pad1 ipu1_csi1 
(fmt:SRGGB10_1X10/640x480@1/30) and pad0 ipu1_ic_prp 
(fmt:AYUV8_1X32/640x480@1/30) - format mismatch. But I don't know how 
fix this trouble. Theory, I also have RaspberryPI camera rev 1.3 with 
OmniVision OV5647 camera. Unfortunately, she did not work either.

Anybody can help me?

[1] https://git.linuxtv.org/media_tree.git/tree/drivers/media/i2c/imx219.c

^ permalink raw reply	[flat|nested] 9+ messages in thread
* IMX219 MIPI Sensor (meda-tree) with vaniila I.MX6Q media drivers
@ 2020-03-26 18:45 Alex Mihaylov
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Mihaylov @ 2020-03-26 18:45 UTC (permalink / raw)
  To: linux-media

Hi!

We build custom CPU Module with NXP/Freescale IMX6QuadPlus CPU.I use 
latest stable kernel from kernel.org. This time kernel version 5.5.11. 
Also I connect to I.MX MIPI cameras from RaspberryPI (Rev 2.1 with Sony 
IMX219). For IMX219 used actual driver from [1]. Usersapce based on 
Gentoo Linux, have media-utils version 1.2.1, v4l2-utils version 1.18.0, 
gstreamer version 1.14.5 with v4l2 plugins. Also Wayland version 1.17 
based graphics with XWayland.

Camera write in DTB:
==== cut: DTB fragments ====
/ {
[skiped]
     imx219_clk: camera-clk {
         compatible = "fixed-clock";
         #clock-cells = <0>;
         clock-frequency = <24000000>;
     };

     imx219_1v2_reg: cam1v2_regulator {
         compatible = "regulator-fixed";
         regulator-name = "IMX219_1V2";
         regulator-min-microvolt = <1200000>;
         regulator-max-microvolt = <1200000>;
         vin-supply = <&p3v3_reg>;
         regulator-always-on;
     };

     imx219_1v8_reg: cam1v8_regulator {
         compatible = "regulator-fixed";
         regulator-name = "IMX219_1V8";
         regulator-min-microvolt = <1800000>;
         regulator-max-microvolt = <1800000>;
         vin-supply = <&p3v3_reg>;
         regulator-always-on;
     };

     imx219_2v8_reg: cam2v8_regulator {
         compatible = "regulator-fixed";
         regulator-name = "IMX219_2V8";
         regulator-min-microvolt = <2800000>;
         regulator-max-microvolt = <2800000>;
         vin-supply = <&p3v3_reg>;
         regulator-always-on;
     };
[skiped]
csi_i2c: i2c-mux@1 { /* CSI camera */
     #address-cells = <1>;
     #size-cells = <0>;
     reg = <1>;
     sensor@10 {    /* Raspberry Camera V2 */
         compatible = "sony,imx219";
         reg = <0x10>;
         #address-cells = <1>;
         #size-cells = <0>;
         clocks = <&imx219_clk>;
         clock-names = "xclk";
         DOVDD-supply = <&imx219_1v8_reg>; /* 1.8v */
         AVDD-supply = <&imx219_2v8_reg>;  /* 2.8v */
         DVDD-supply = <&imx219_1v2_reg>;  /* 1.2v */

         port {
             csi_sensor_out: endpoint {
                 remote-endpoint = <&csi_port_in>;
                 link-frequencies = /bits/ 64 <456000000>;
                 clock-lanes = <0>;
                 data-lanes = <1 2>;
             };
         };
     };
};
[skiped]
&mipi_csi {
     status = "okay";

     port@0 {
         reg = <0>;
         csi_port_in: endpoint {
             remote-endpoint = <&csi_sensor_out>;
             clock-lanes = <0>;
             data-lanes = <1 2>;
         };
     };
};
[skiped]
==== cut: DTB fragments ====

I use script for init connected camera

==== cut: Camera init script ===
#!/bin/bash

# sensor output format and resolutions
# RaspberryPI Camera rev 2.1 (Sony I.MX219)
I_FORMAT=SRGGB10_1X10
I_RESOLUTION=1920x1080
CROP=(0,0)/640x480

# capture format and resolution
O_FORMAT=AYUV32
O_RESOLUTION=640x480

# viewport format and resolution
V_FORMAT=AYUV32
V_RESOLUTION=640x480

# Reset all media links
media-ctl -r

# Sersor to IPU and PRP path
# RaspberryPI Camera rev 2.1 (Sony I.MX219)
media-ctl -l "'imx219 9-0010':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 "'ipu1_csi1':2 -> 'ipu1_csi1 capture':0[1]" # /dev/video3 
(unused, unprocessed)
# IPU to capture
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]" # 
/dev/video1
# IPU to viewport
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]" # 
/dev/video2

# RaspberryPI Camera rev 2.1 (Sony I.MX219)
media-ctl -V "'imx219 9-0010':0 [fmt:${I_FORMAT}/${I_RESOLUTION} 
field:none]"
media-ctl -V "'imx6-mipi-csi2':2 [fmt:${I_FORMAT}/${I_RESOLUTION} 
field:none]"
media-ctl -V "'ipu1_csi1':0 [crop:${CROP}]"
media-ctl -V "'ipu1_csi1':1 [fmt:${I_FORMAT}/${O_RESOLUTION} field:none]"

media-ctl -V "'ipu1_ic_prp':1 [fmt:${O_FORMAT}/${O_RESOLUTION} field:none]"
media-ctl -V "'ipu1_ic_prpenc':1 [fmt:${O_FORMAT}/${O_RESOLUTION} 
field:none]"

media-ctl -V "'ipu1_ic_prp':2 [fmt:${V_FORMAT}/${V_RESOLUTION} field:none]"
media-ctl -V "'ipu1_ic_prpvf':1 [fmt:${V_FORMAT}/${V_RESOLUTION} 
field:none]"
==== cut: Camera init script ===

I try start system with V2.1 camera and start capture frames:
[...]
# ./camera_init.sh
# gst-launch-1.0 -v v4l2src device=/dev/video2 ! fakesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = 
video/x-raw, format=(string)YUY2, framerate=(fraction)30000/1001, 
width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, 
interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = 
video/x-raw, format=(string)YUY2, framerate=(fraction)30000/1001, 
width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, 
interlace-mode=(string)progressive
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed 
to allocate required memory.
Additional debug info:
/var/tmp/portage/media-plugins/gst-plugins-v4l2-1.14.5/work/gst-plugins-good-1.14.5/sys/v4l2/gstv4l2src.c(656): 
gst_v4l2src_decide_allocation (): 
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.014952667
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
# media-ctl -p
Media controller API version 5.5.13

Media device information
------------------------
driver          imx-media
model           imx-media
serial
bus info
hw revision     0x0
driver version  5.5.13

Device topology
[...]
- entity 15: ipu1_ic_prp (3 pads, 5 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev2
         pad0: Sink
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 <- "ipu1_csi0":1 []
                 <- "ipu1_vdic":2 []
                 <- "ipu1_csi1":1 [ENABLED]
         pad1: Source
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_ic_prpenc":0 [ENABLED]
         pad2: Source
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_ic_prpvf":0 [ENABLED]

- entity 19: ipu1_ic_prpenc (2 pads, 2 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev3
         pad0: Sink
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 <- "ipu1_ic_prp":1 [ENABLED]
         pad1: Source
                 [fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:lim-range]
                 -> "ipu1_ic_prpenc capture":0 [ENABLED]

- entity 22: ipu1_ic_prpenc capture (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video1
         pad0: Sink
                 <- "ipu1_ic_prpenc":1 [ENABLED]

- entity 28: ipu1_ic_prpvf (2 pads, 2 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev4
         pad0: Sink
                 [fmt:AYUV8_1X32/640x480@1001/30000 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                 <- "ipu1_ic_prp":2 [ENABLED]
         pad1: Source
                 [fmt:AYUV8_1X32/640x480@1001/30000 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                 -> "ipu1_ic_prpvf capture":0 [ENABLED]

- entity 31: ipu1_ic_prpvf capture (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video2
         pad0: Sink
                 <- "ipu1_ic_prpvf":1 [ENABLED]

- entity 47: ipu1_csi1 (3 pads, 4 links)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev5
         pad0: Sink
                 [fmt:SRGGB10_1X10/1920x1080@1/30 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
                  crop.bounds:(0,0)/1920x1080
                  crop:(0,0)/640x480
                  compose.bounds:(0,0)/640x480
                  compose:(0,0)/640x480]
                 <- "imx6-mipi-csi2":2 [ENABLED]
         pad1: Source
                 [fmt:SRGGB10_1X10/640x480@1/30 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_ic_prp":0 [ENABLED]
                 -> "ipu1_vdic":0 []
         pad2: Source
                 [fmt:SRGGB10_1X10/640x480@1/30 field:none 
colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_csi1 capture":0 []
[...]
- entity 121: imx6-mipi-csi2 (5 pads, 5 links)
               type V4L2 subdev subtype Unknown flags 0
               device node name /dev/v4l-subdev12
         pad0: Sink
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 <- "imx219 9-0010":0 [ENABLED]
         pad1: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_csi0_mux":0 []
         pad2: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu1_csi1":0 [ENABLED]
         pad3: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu2_csi0":0 []
         pad4: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "ipu2_csi1_mux":0 []
[...]
- entity 135: imx219 9-0010 (1 pad, 1 link)
               type V4L2 subdev subtype Sensor flags 0
               device node name /dev/v4l-subdev15
         pad0: Source
                 [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb 
xfer:srgb ycbcr:601 quantization:full-range]
                 -> "imx6-mipi-csi2":0 [ENABLED]
localhost ~ # dmesg -c
[...]
[   51.941858] ipu1_ic_prpvf: pipeline start failed with -32
localhost ~ #

I think EPIPE (-32) caused by link between pad1 ipu1_csi1 
(fmt:SRGGB10_1X10/640x480@1/30) and pad0 ipu1_ic_prp 
(fmt:AYUV8_1X32/640x480@1/30) - format mismatch. But I don't know how 
fix this trouble. Theory, I also have RaspberryPI camera rev 1.3 with 
OmniVision OV5647 camera. Unfortunately, she did not work either.

Anybody can help (fix???) me?

[1] https://git.linuxtv.org/media_tree.git/tree/drivers/media/i2c/imx219.c

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

end of thread, other threads:[~2020-03-28  4:46 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-26  8:28 IMX219 MIPI Sensor (meda-tree) with vaniila I.MX6Q media drivers Михайлов Алексей Анатольевич
2020-03-26 18:56 ` Fabio Estevam
2020-03-27  7:45   ` Philipp Zabel
2020-03-27  8:12     ` Alex Mihaylov
2020-03-27 21:18       ` Steve Longerbeam
2020-03-28  4:45         ` Михайлов Алексей Анатольевич
2020-03-26 19:17 ` Fabio Estevam
2020-03-27  7:49   ` Alex Mihaylov
2020-03-26 18:45 Alex Mihaylov

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