Hi all,
We made a customized board. There is a hdmi-to-edp converter chip on our board.
The converter chip shows the timing values of video recieved in debug messgaes.
We find the timing values of hdmi port are wrong according to these debug messages.
This problem sometimes will casue no video output on monitors.
Hi WayneWWW,
tegra_edid.txt is the edid dumped from /sys/kernel/debug/edid1 and hdmi_edid.txt is edid from monitor.
The horizontal timing values are not stable. I did’t find vertical timing value changed.
I dumped the register of tegradc.1 when I got the different H timing values. Basically they are same.
H_Sync_W_40.txt is register dumped when h sync width is 40. H_Sync_W_50.txt is in 50.
The EDIDs match and are valid (they’re formatted differently in terms of bytes listed per line, but they are the same bytes). You might add this to the “/etc/X11/xorg.conf” Section “Device”:
Option "ModeDebug"
If you boot with that option you will find increased detailed information in “/var/log/Xorg.0.conf” after a reboot. Perhaps it may say something about the mode you are looking at.
Could you elaborate more about how this HDMI-eDP converter works? It looks like tegra side receive a correct EDID, however, your chip does not output correctly.
The HDMI-eDP converter receives hdmi signals from tk1 and coverts hdmi to edp.
There is a uart interface on the converter chip.
We can connect this uart interface via UART to USB module and receive debug messages from the chip.
The chip will print the timing values of the hdmi signal once it get hdmi input.
We check these debug messages and find the H timing values are unstable.
This problem sometimes will cause no video output on monitors or sometimes output blur images.
I believe this converter is out of tegra scope. In previous data you provided, I see tk1 receive the correct EDID from eDP (it should be eDP but not HDMI in #2, sorry for this) and set the mode correctly.
It may be the issue of that chip driver. Could you check it first? Is tk1 output signal unstable as well?
Hi All,
I got a hdmi-to-dp reference board and tested it with jetson TK1.
I found when I set the resoultion to 3840x2160, the timing values of hdmi port would be unstable as well as our customized board.
So I think there might be some timing problem in hdmi port when resolution is high.
No issues occur in testing with LG 24UD58. Images output is OK and no blur images.
But when I test Tk1 with AUSU PB279Q, no images output on monitor.
Because I don’t have HDMI analyzer, I can’t measure the timing values of hdmi port.
I am not sure if this is caused by wrong timing value.
Do you have HDMI analyzer or can you see what’s wrong with hdmi port from attached logs? Asus_cat_edid1.txt (1 KB) Asus_cat_regs.txt (13.9 KB) Asus_cat_mode.txt (269 Bytes) Xorg.log.txt (19.2 KB) xrandr_verbose.txt (8.26 KB) Asus_dmesg.txt (58.1 KB)
Just a tip…if a signal goes to a monitor, and the monitor does not like the signal, it will typically make a brief complaint about “signal out of range”. Unplug the monitor and plug it back in…note carefully if there is a brief complaint from the monitor, or if it simply does not find a signal. There is a difference between the two.
Also, I mentioned “ModeDebug” earlier. Booting with the monitor which does not work, and then looking at the “/var/log/Xorg.0.log” from serial console or ssh would tell you exactly what the NVIDIA driver thinks of the mode being attempted with that monitor. It could have nothing to do with timing and the test does not require any special equipment. It is so much easier to simply ask the driver what it thinks than to try to figure it out with other methods.
Hi WayneWWW,
I used another hdmi cable for testing and tk1 can show images on ASUS monitor correctly.
I found another thing. On our customize board, the pixel clock value required in edid is 275.27MHz. But I see the pixel clock set in hdmi port is 273000000 hz.
This value is calculated by dc driver and maybe rounded because of parent clock. Could you trace “tegra_dc_pclk_round_rate” and see why this value changes?
Hi WayneWWW,
I trace the drivers/video/tegra/dc/hdmi.c. There is a function “tegra12x_hdmi_determine_parent” and it adjusts parent clock as a multiples of 12000000Hz.
parentClk = 12000000*m (m=1,1.5,2,2.5....)
That’s why the pclk can’t be the exact value required in edid.
My question is:
Is this a restriction of hardware or is there any way I can set the pclk as the exact value required in edid?