Inquiry about Linux Driver for HDMI2CSI Module with Toshiba TC358840 chipsets

I try to make new HDMI2CSI module board offers 4K HDMI video streams that can be processed by the NVidia Jetson TX2 processor using Toshiba TC358840 chipsets.
The OS is Linux4Tegra based on the Linux kernel 4.4. (L4T versions 24.2.1). I used the open source driver provided on the website (https://github.com/InES-HPMM/linux-l4t-4.4/wiki/hdmi2csi#drivers)
But I failed to get 4k streaming from a sony 4k camcoder with the error “tc358840 2-001f: enable_stream: Timeout: HDMI input sync failed.”
I guess the problem is due to 4K HDMI timing sync parameters, so I’d like to know the detail timing spec of the NVidia Jetson TX2 module. Also, I wonder how to merge two 4-lanes for CSI to get 4k video streams.
Thank you.

It’s better to capture the test pattern first.

Hi,

Before try to capture using 4K you could try capture a lower resolution (i.g. 1080p) in order to confirm if the driver is capturing using only 4 lanes.

About the error reported, it could be the EDID configuration, I have seen that you driver has a definition of EDID here:

https://github.com/InES-HPMM/linux-l4t-4.4-kernel/blob/f64be34fb58995ffa8f33144abfa6965160e0fef/drivers/media/i2c/tc358840.c#L62

I don’t know which resolutions are negotiated with this EDID but if you HDMI video source is producing a resolution that is not defined in this EDID, Your source will not generate frames trough the HDMI.
If you HDMI video source ignores the EDID, then EDID configuration is not problem.

Thanks, I tried to get logs from tc358840.c.

For the Normally working module, the log shows hdmi_int1 = 0x02 (one of the EDID). tc358840_format_change() was called with New format: 3840x2160p30.0.

[ 17.506594] tc358840 2-000f: tc358840_isr: hdmi_int0 = 0x00
[ 17.506596] tc358840 2-000f: tc358840_isr: hdmi_int1 = 0x02

But for my module, the log shows hdmi_int1 = 0x01 and tc358840_format_change() was not called. (MASK_CLK was not set as well)

[ 15.783923] tc358840 2-001f: tc358840_isr: hdmi_int0 = 0x00
[ 15.783924] tc358840 2-001f: tc358840_isr: hdmi_int1 = 0x01

Anybody know the reason for that? I guess int means interrupts. How to make it interrupt? Do I have to do something on the chip tc358840?