Under my jetson Linux R35.4.1 environment , custom developed driver & device tree works well.
So, I try to port device tree and device drivers in new R36.4.3 environment, but it doesn’t works it…
Device driver works as normal and tegra-capture-vi bind success, but media-pad link fail. Like below
So I checked this media link fail issue from dmesg, I found a cause which is seems to nvcsi issue from dmesg’s log.
dmesg:
[ 8.326267] platform 13e00000.host1x:nvcsi@15a00000: Fixing up cyclic dependency with 16-0010
[ 8.326284] platform 13e00000.host1x:nvcsi@15a00000: Fixing up cyclic dependency with tegra-capture-vi
I tested to change sensor node like below for check my device tree’s remote-endpoint setting .
When test device tree setted that node, media link construct success and find /dev/video0
Questions:
・What reason do you think about media link fail cause at R36.4.3, when cam0 connect to sensor_a throug tca9546?
・I think this fail caused by device tree’s remote-endpoint issue (or graph.c driver isuue),how to fix it at R36.4.3?
Thank for your replay!
I already checked and corresponded JP5-JP6 changes.
I modified my custom device trees are based on “tegra234-camera-imx219.dtsi” , “tegra234-p3767-camera-p3768-imx219-dual.dts”.
In our case, Sensor node position is under cam_i2cmux and tca9546(mux), So I device tree modified .
But If sensor driver probing success, media bus ctrl path connections seems to fail and /dev/video0 is not created.
*media ctrl error
Media controller API version 5.15.148
Media device information
------------------------
driver tegra-camrtc-ca
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 5.15.148
Device topology
- entity 1: sensor_a 16-0010 (1 pad, 0 link)
type V4L2 subdev subtype Sensor flags 0
pad0: Source
In JP6, dose sensor must put under cam_i2cmux?
If I want to put sensor node like below, how I should modify my device tree?
your device topology looks incorrect, did you load the device tree overlay blob correctly?
please see-also r36.4.4 release note, see-also [4.1. Camera] and [4.2. Device Registration] section for more details.
I will check release note and confirm my device tree node settings !
Is it incorrect way of build and applying a dtbo?
All i2c devices works well and enable to access these devices throw a i2c protocol.
But construction of media control path between sink and source are always failed.
[To build dtbo file]
I build as a overlay file “tegra234-p3767-camera-p3768-sensor_a-dual.dtbo” which is consist of “tegra234-p3767-camera-p3768-sensor_a-dual.dts” included with “tegra234-camera-sensor_a.dtsi”.
“tegra234-camera-sensor_a.dtsi” is a code shown you previous comment.
[Applying a dtbo file to jetson system]
I putted in to the /boot directory at that overlay file(.dtbo). And I activated that overlay file by a jetoson-io tool.
After that, I reboot jetson system entirely.
I confirm to that jetson-io tool add a new line in a jetson’s extlinux file, like below.
please also note that, You can specify FDT alone. You can specify FDT + OVERLAYS. You cannot do only OVERLAYS though.
Overlays from Rootfs are processed only if DTB is coming from Rootfs. when FDT entry is not present in extlinux.conf UEFI DTB is used.
I found that when a sensor port node put under “cam_i2cmux/i2c@0/tca9456_a@70/mod_i2c@1/sensor_a@10” media-link between sensor ports and nvcsi must be failed some reason.
( Do not appear a device topology like that , “- entity 1: 13e00000.host1x:nvcsi@15a00000- (2 pads, 2 links”)
)
But it putted under “cam_i2cmux/i2c@0/sensor_a@10” , media link construction between sensor ports and nvcsi were always succeed.
( nvcsi media device topology appeared. )
I think ,It seems to can not track sensor port’s remote end point where is put under cam_i2cmux and tca9546 node by nvcsi driver or of_graph driver.
On the other hands, I2c bus node construction and connection with i2c protocol successes in a case which is under “cam_i2cmux/i2c@0/tca9456_a@70/mod_i2c@1/sensor_a@10”.
In “cam_i2cmux/i2c@0/tca9456_a@70/mod_i2c@1/sensor_a@10” case, How I should done succeed media link connection between nvcsi and sensor ports? Or is it my mistakes at device tree settings?