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!