i.MX8M Mini ISL79987 MIPI CSI ERROR

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8M Mini ISL79987 MIPI CSI ERROR

184 Views
cbl
Contributor IV

Hello,

I want to stream video from the camera using the ISL79987 Video Decoder IC on the i.MX8M Mini platform.

Yocto Version: Mickledore
Kernel Version: 6.1.36

I added the ISL79987 IC to my device tree as follows.

 

	isl7998x_mipi@44 {
		compatible = "isil,isl79987";
		reg = <0x44>;
		status = "okay";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				ov5640_mipi1_ep: endpoint {
					remote-endpoint = <&mipi1_sensor_ep>;
					data-lanes = <1>;
				};
			};

			port@1 {
				reg = <1>;
				
				endpoint {
				};
			};
		};
	};

&mipi_csi_1 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	port {
		mipi1_sensor_ep: endpoint@1 {
			remote-endpoint = <&ov5640_mipi1_ep>;
			data-lanes = <1>;
			csis-hs-settle = <13>;
			csis-clk-settle = <0>;
			csis-wclk;
		};

		csi1_mipi_ep: endpoint@2 {
			remote-endpoint = <&csi1_ep>;
		};
	};
};

&csi1_bridge {
	fsl,mipi-mode;
	status = "okay";

	port {
		csi1_ep: endpoint {
			remote-endpoint = <&csi1_mipi_ep>;
		};
	};
};

 

However, when I run this command "gst-launch-1.0 v4l2src device=/dev/video0 ! autovideosink" I get the following error. Could you please help me what is the reason for this?

 

root@imx8mm-var-dart:/dev# gst-launch-1.0 v4l2src device=/dev/video0 ! autovideosink
Setting pipeline to PAUSED ...
Pipeline is live and does not nee[  273.484183] ISL79987 - DEBUG isl7998x_enum_mbus_code: Entering isl7998x_enum_mbus_code function.LINE: 1194 
d PREROLL ...
Pipeline is PREROL[  273.496227] ISL79987 - DEBUG isl7998x_enum_mbus_code: MBus code set to 8198 LINE: 1202
LED ...
Setting pipeline to PLAY[  273.507006] mxc_mipi-csi 32e30000.mipi_csi: format not match
ING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
/usr/src/debug/gstreamer1.0/1.22.0.imx-r0/libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.032001250
Setting pipeline to NULL ...
Freeing pipeline ...
root@imx8mm-var-dart:/dev#

 

Best regards.

 

0 Kudos
Reply
4 Replies

148 Views
Chavira
NXP TechSupport
NXP TechSupport

Hi @cbl!

As mentioned @Wobaffet, I don't think that the video0 can be the device created for the ISL79987.

You can use the next command to see if the device was recognized by the kernel:

dmesg | grep isl799

 

The device tree looks good and you can refer to the documentation if you need to change it.

https://github.com/nxp-imx/linux-imx/blob/ccf0a99701a701fb48a04e31ffe3f9d585a8374a/Documentation/dev...

 

Best Regards!

Chavira

0 Kudos
Reply

77 Views
cbl
Contributor IV

Hi @Chavira,

I got the log the way you said, you can find it below. I also included logs in the driver isl7998x.c. If you have a chance to review the log, can you tell me what the problem is?

[    0.056316] platform 32e30000.mipi_csi: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a40000/isl7998x_mipi@44
[    2.314415] ISL79987 - DEBUG isl7998x_probe: Entering isl7998x_probe function.
[    2.321685] ISL79987 - DEBUG isl7998x_probe: Probing isl7998x device.
[    2.334976] ISL79987 - DEBUG isl7998x_probe: Initializing isl7998x struct.
[    2.348901] ISL79987 - DEBUG isl7998x_probe: Adapter address: (____ptrval____)
[    2.361355] ISL79987 - DEBUG isl7998x_probe: Checking I2C functionality.
[    2.368060] ISL79987 - DEBUG isl7998x_probe: Allocating memory for isl7998x struct.
[    2.375723] ISL79987 - DEBUG isl7998x_probe: isl7998x address: (____ptrval____)
[    2.383036] ISL79987 - DEBUG isl7998x_probe: Retrieving/Requesting PD GPIO.
[    2.390019] ISL79987 - DEBUG isl7998x_probe: pd_gpio address: 0000000000000000
[    2.397246] ISL79987 - ERROR isl7998x_probe: Retrieving/Requesting RSTB GPIO.
[    2.404398] ISL79987 - DEBUG isl7998x_probe: rstb_gpio address: 0000000000000000
[    2.411800] ISL79987 - DEBUG isl7998x_probe: Initializing register map.
[    2.418486] ISL79987 - DEBUG isl7998x_probe: Register map address: (____ptrval____)
[    2.426151] ISL79987 - DEBUG isl7998x_probe: Getting Fwnode endpoint.
[    2.432607] ISL79987 - DEBUG isl7998x_probe: Fwnode endpoint address: (____ptrval____)
[    2.440528] ISL79987 - DEBUG isl7998x_probe: Parsing Fwnode endpoint.
[    2.446979] ISL79987 - DEBUG isl7998x_probe: Parsing Fwnode endpoint: ret = 0
[    2.454120] ISL79987 - DEBUG isl7998x_probe: Checking MIPI lanes.
[    2.466230] ISL79987 - DEBUG isl7998x_probe: Setting number of MIPI lanes.
[    2.473114] ISL79987 - DEBUG isl7998x_probe: Setting number of MIPI lanes: nr_mipi_lanes = 1
[    2.481556] ISL79987 - DEBUG isl7998x_probe: Getting number of inputs.
[    2.488088] ISL79987 - DEBUG isl7998x_get_nr_inputs: Entering isl7998x_get_nr_inputs function.
[    2.496707] ISL79987 - DEBUG isl7998x_get_nr_inputs: Checking port with ID: 1
[    2.503849] ISL79987 - DEBUG isl7998x_get_nr_inputs: Checking port with ID: 2
[    2.510990] ISL79987 - ERROR isl7998x_get_nr_inputs: Port with ID 2 not found.
[    2.518217] ISL79987 - DEBUG isl7998x_get_nr_inputs: Checking port with ID: 3
[    2.525356] ISL79987 - ERROR isl7998x_get_nr_inputs: Port with ID 3 not found.
[    2.532583] ISL79987 - DEBUG isl7998x_get_nr_inputs: Checking port with ID: 4
[    2.539723] ISL79987 - ERROR isl7998x_get_nr_inputs: Port with ID 4 not found.
[    2.546953] ISL79987 - DEBUG isl7998x_get_nr_inputs: Detected 1 input.
[    2.553484] ISL79987 - DEBUG isl7998x_probe: Getting number of inputs: nr_inputs = 1
[    2.561232] ISL79987 - DEBUG isl7998x_probe: Initializing V4L2 subdev.
[    2.567767] ISL79987 - DEBUG isl7998x_probe: Initializing V4L2 subdev: subdev_flags = 0x5
[    2.575948] ISL79987 - DEBUG isl7998x_probe: Initializing media controller pads.
[    2.583349] ISL79987 - DEBUG isl7998x_mc_init: Entering isl7998x_mc_init function.
[    2.590927] ISL79987 - DEBUG isl7998x_mc_init: Subdevice entity initialization:
[    2.598242] ISL79987 - DEBUG isl7998x_mc_init: Operations pointer: (____ptrval____)
[    2.605903] ISL79987 - DEBUG isl7998x_mc_init: Function: 20482
[    2.611740] ISL79987 - DEBUG isl7998x_mc_init: Pad initialization:
[    2.617923] ISL79987 - DEBUG isl7998x_mc_init: Pad 1 flags set to MEDIA_PAD_FL_SINK.
[    2.625669] ISL79987 - DEBUG isl7998x_mc_init: Pad 2 flags set to MEDIA_PAD_FL_SINK.
[    2.633416] ISL79987 - DEBUG isl7998x_mc_init: Pad 3 flags set to MEDIA_PAD_FL_SINK.
[    2.641163] ISL79987 - DEBUG isl7998x_mc_init: Pad 4 flags set to MEDIA_PAD_FL_SINK.
[    2.648910] ISL79987 - DEBUG isl7998x_probe: Setting default format and norm.
[    2.656048] ISL79987 - DEBUG isl7998x_probe: Initializing mutex.
[    2.662059] ISL79987 - DEBUG isl7998x_probe: Initializing controls.
[    2.668328] ISL79987 - DEBUG isl7998x_init_controls: Entering isl7998x_init_controls function.
[    2.676949] ISL79987 - DEBUG isl7998x_init_controls: Control handler initialized successfully.
[    2.726119] ISL79987 - DEBUG isl7998x_init_controls: Calculating MIPI link frequency index.
[    2.734473] ISL79987 - DEBUG isl7998x_init_controls: MIPI lanes: 1
[    2.740657] ISL79987 - DEBUG isl7998x_init_controls: Inputs: 1
[    2.746493] ISL79987 - DEBUG isl7998x_init_controls: Link frequency index: 0
[    2.753545] ISL79987 - DEBUG isl7998x_init_controls: MIPI link frequency index calculated successfully.
[    2.762951] ISL79987 - DEBUG isl7998x_init_controls: Link frequency control created.
[    2.770698] ISL79987 - DEBUG isl7998x_init_controls: Link frequency control value: 1162082816
[    2.779234] ISL79987 - DEBUG isl7998x_init_controls: Creating standard menu items control for test pattern.
[    2.788977] ISL79987 - DEBUG isl7998x_init_controls: Control handler address: (____ptrval____)
[    2.797592] ISL79987 - DEBUG isl7998x_init_controls: Control operations address: (____ptrval____)
[    2.806471] ISL79987 - DEBUG isl7998x_init_controls: Control ID: 10422531
[    2.813265] ISL79987 - DEBUG isl7998x_init_controls: Menu items count: 1
[    2.819991] ISL79987 - DEBUG isl7998x_init_controls: Menu items address: (____ptrval____)
[    2.828182] ISL79987 - DEBUG isl7998x_set_ctrl: Entering isl7998x_set_ctrl function.
[    2.835930] ISL79987 - DEBUG isl7998x_set_ctrl: Received V4L2_CID_TEST_PATTERN_BARS control. Value: 0
[    2.845153] ISL79987 - DEBUG isl7998x_set_test_pattern: Entering isl7998x_set_test_pattern function.
[    2.854288] ISL79987 - DEBUG isl7998x_set_test_pattern: pm_runtime_get_if_in_use successful
[    2.862642] ISL79987 - DEBUG isl7998x_set_test_pattern: dev: (____ptrval____), regmap: (____ptrval____)
[    2.872040] ISL79987 - ERROR isl7998x_set_test_pattern: pm_runtime_get_if_in_use failed or device not in use
[    2.881870] ISL79987 - DEBUG isl7998x_set_ctrl: Returning from isl7998x_set_ctrl. Control ID: 9968258, Return value: 0
[    2.892569] ISL79987 - DEBUG isl7998x_set_ctrl: Entering isl7998x_set_ctrl function.
[    2.900314] ISL79987 - DEBUG isl7998x_set_ctrl: Received V4L2_CID_TEST_PATTERN_CHANNELS control. Value: 15
[    2.909972] ISL79987 - DEBUG isl7998x_set_test_pattern: Entering isl7998x_set_test_pattern function.
[    2.919106] ISL79987 - DEBUG isl7998x_set_test_pattern: pm_runtime_get_if_in_use successful
[    2.927458] ISL79987 - DEBUG isl7998x_set_test_pattern: dev: (____ptrval____), regmap: (____ptrval____)
[    2.936859] ISL79987 - ERROR isl7998x_set_test_pattern: pm_runtime_get_if_in_use failed or device not in use
[    2.946690] ISL79987 - DEBUG isl7998x_set_ctrl: Returning from isl7998x_set_ctrl. Control ID: 9968256, Return value: 0
[    2.957389] ISL79987 - DEBUG isl7998x_set_ctrl: Entering isl7998x_set_ctrl function.
[    2.965135] ISL79987 - DEBUG isl7998x_set_ctrl: Received V4L2_CID_TEST_PATTERN_COLOR control. Value: 0
[    2.974444] ISL79987 - DEBUG isl7998x_set_test_pattern: Entering isl7998x_set_test_pattern function.
[    2.983580] ISL79987 - DEBUG isl7998x_set_test_pattern: pm_runtime_get_if_in_use successful
[    2.991932] ISL79987 - DEBUG isl7998x_set_test_pattern: dev: (____ptrval____), regmap: (____ptrval____)
[    3.001329] ISL79987 - ERROR isl7998x_set_test_pattern: pm_runtime_get_if_in_use failed or device not in use
[    3.011160] ISL79987 - DEBUG isl7998x_set_ctrl: Returning from isl7998x_set_ctrl. Control ID: 9968257, Return value: 0
[    3.021858] ISL79987 - DEBUG isl7998x_set_ctrl: Entering isl7998x_set_ctrl function.
[    3.029603] ISL79987 - DEBUG isl7998x_set_ctrl: Received V4L2_CID_TEST_PATTERN control. Value: 0
[    3.038392] ISL79987 - DEBUG isl7998x_set_test_pattern: Entering isl7998x_set_test_pattern function.
[    3.047526] ISL79987 - DEBUG isl7998x_set_test_pattern: pm_runtime_get_if_in_use successful
[    3.055880] ISL79987 - DEBUG isl7998x_set_test_pattern: dev: (____ptrval____), regmap: (____ptrval____)
[    3.065281] ISL79987 - ERROR isl7998x_set_test_pattern: pm_runtime_get_if_in_use failed or device not in use
[    3.075111] ISL79987 - DEBUG isl7998x_set_ctrl: Returning from isl7998x_set_ctrl. Control ID: 10422531, Return value: 0
[    3.085897] ISL79987 - DEBUG isl7998x_probe: Controls initialized successfully (0).
[    3.093561] mxc_mipi-csi 32e30000.mipi_csi: Registered sensor subdevice: isl7998x 2-0044
[    3.101658] ISL79987 - DEBUG isl7998x_probe: V4L2 subdev registered successfully (0).
[    3.109491] ISL79987 - DEBUG isl7998x_probe: PM runtime enabled successfully.

Best regards.

0 Kudos
Reply

157 Views
Wobaffet
Senior Contributor I

Hello @cbl ,  

Do you these lines on your boot log? 

[    5.794896] mx8-img-md: Registered sensor subdevice: isl7998x 2-0044 (1)
[    5.815249] mx8-img-md: created link [isl7998x 2-0044] => [mxc-mipi-csi2.0]

Also can you please share what do you see when you run the:

 ls /dev/video*

 

0 Kudos
Reply

153 Views
cbl
Contributor IV

Hi @Wobaffet,

I have this log in my boot log.

[ 2.326789] mxc_mipi-csi 32e30000.mipi_csi: Registered sensor subdevice: isl7998x 2-003d

When I run "ls /dev/video*" I get the following output.

video0

video1

video2

Could you please help me with this?

Best regards.

0 Kudos
Reply