Yavta hangs after mapping buffers when attempting to stream from AR1337 sensor (OnCamera mezzanine)

Hello,
I’m running into an issue attempting to stream from an AR1337 sensor using the OnCamera mezzanine on the 20.11 kernel using a driver I previously found (unsure how well it worked in the first place).
Currently I’m attempting to use yavta to see if I can get it working in the first place, but I’m running into some issues. After issuing the command, the following is displayed in the terminal where it then hangs:


Old details

I made a mistake in the original post, where the VFE errors were only occurring after I used crtl+c to stop the stuck yavta command:

Then by running dmesg -c after, the following camss VFE errors are seen:


I’ve set up my pipeline as:

sudo media-ctl -d /dev/media0 -l '"msm_csiphy0":1->"msm_csid0":0[1],"msm_csid0":1- 
>"msm_ispif0":0[1],"msm_ispif0":1->"msm_vfe0_rdi0":0[1]'

sudo media-ctl -d /dev/media0 -V '"ar1337 4-0036":0[fmt:SGRBG10_1X10/2104x1560 
field:none],"msm_csiphy0":0[fmt:SGRBG10_1X10/2104x1560 
field:none],"msm_csid0":0[fmt:SGRBG10_1X10/2104x1560 
field:none],"msm_ispif0":0[fmt:SGRBG10_1X10/2104x1560 
field:none],"msm_vfe0_rdi0":0[fmt:SGRBG10_1X10/2104x1560 field:none]'

And this is the yavta command I am issuing:

yavta /dev/video0 -B capture-mplane -c10 -n 5 -f SGRBG10P -s 2104x1560 -F ~/Desktop/video.raw

Apart from additional debug messages and changes to the power up sequence, the driver I have is functionally identical to the one here: manivannan.sadhasivam/96b-common.git - [no description]
(Modified driver: https://pastebin.com/qH0ZVG5M)

Here is relevant part of the device tree, where I have configured the the sensor for 4-lane MIPI (full here: device tree - Pastebin.com):

&camss {
	status = "okay";
	ports {
		#address-cells = <1>;
		#size-cells = <0>;
		port@0 {
			reg = <0>;
			csiphy0_ep: endpoint {
				clock-lanes = <1>;
				data-lanes = <0 2 3 4>;
				remote-endpoint = <&ar1337_ep>;
				status = "okay";
			};
		};
	};
};

&cci {
	status = "okay";
};

&cci_i2c0 {
	camera_rear@36 {
		compatible = "onsemi,ar1337";
		reg = <0x36>;

		enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
		
		pinctrl-names = "default";
		pinctrl-0 = <&camera_rear_default>;

		clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
		clock-names = "xclk";
		clock-frequency = <24000000>;\

		vdddo-supply = <&camera_vdddo_1v8>;
		vdda-supply = <&camera_vdda_2v8>;
		vddd-supply = <&camera_vddd_1v5>;

		/* No camera mezzanine by default */
		status = "okay";

		port {
			ar1337_ep: endpoint {
				clock-lanes = <1>;
				data-lanes = <0 2 3 4>;
				remote-endpoint = <&csiphy0_ep>;
			};
		};
	};
};

Additionally here is a cutdown-version of the media-ctl output, but I do not believe it is an issue with the pipeline but I may be wrong (full here: full media-ctl output - Pastebin.com):

Media controller API version 5.9.9

Media device information
------------------------
driver          qcom-camss
model           Qualcomm Camera Subsystem
serial          
bus info        
hw revision     0x0
driver version  5.9.9

Device topology
- entity 1: msm_csiphy0 (2 pads, 3 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
	pad0: Sink
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		<- "ar1337 4-0036":0 [ENABLED,IMMUTABLE]
	pad1: Source
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		-> "msm_csid0":0 [ENABLED]
		-> "msm_csid1":0 []

- entity 7: msm_csid0 (2 pads, 4 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev2
	pad0: Sink
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		<- "msm_csiphy0":1 [ENABLED]
		<- "msm_csiphy1":1 []
	pad1: Source
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		-> "msm_ispif0":0 [ENABLED]
		-> "msm_ispif1":0 []

- entity 13: msm_ispif0 (2 pads, 6 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev4
	pad0: Sink
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		<- "msm_csid0":1 [ENABLED]
		<- "msm_csid1":1 []
	pad1: Source
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		-> "msm_vfe0_rdi0":0 [ENABLED]
		-> "msm_vfe0_rdi1":0 []
		-> "msm_vfe0_rdi2":0 []
		-> "msm_vfe0_pix":0 []

- entity 19: msm_vfe0_rdi0 (2 pads, 3 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev6
	pad0: Sink
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		<- "msm_ispif0":1 [ENABLED]
		<- "msm_ispif1":1 []
	pad1: Source
		[fmt:SGRBG10_1X10/2104x1560 field:none colorspace:srgb]
		-> "msm_vfe0_video0":0 [ENABLED,IMMUTABLE]

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

- entity 87: ar1337 4-0036 (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev10
	pad0: Source
		[fmt:SGRBG10_1X10/2104x1560 field:none]
		-> "msm_csiphy0":0 [ENABLED,IMMUTABLE]

The pipeline and driver are currently configured to stream in a 10-bit raw SGRBG format at 2104x1560 with a framerate of 30FPS. I’ve tried using an 8-bit raw SGRBG format, 1920x1080, and varying pixel rates (unsure if I’m setting the rate correctly) in combination but none have yielded any differences.

I don’t have very much experience with camera drivers in the first place, so I’ve been poking around rather aimlessly, and was hoping someone may have some insight/recommendations on things to try.

Please let me know if there is any other info I can provide that may be useful.
Thanks for any help!

Hi I am having the same issue, where yavta cause kernel to hang, and I don’t get to see any debug messages either on dmesg or messages. I am using a different board and different sensor, but I’m trying to achieve the exact same thing. Please update if you have any solution for this.