Active DP to Hdmi Adapter not working

Dear NVidia Team

We tried to use active dp-to-hdmi adapter with a custom carrier board. Sadly it is not working so far. Does this need extra configuration? Or can you suggest us a converter that works?
Thank you.

What do you see from this command:

sudo -s
cat `find /sys -name edid`
exit

Note that EDID is often the failing point in adapters, and that EDID contains the configuration data. Jetsons are a special case here because EDID is the only allowed method for setting up the monitor (you could get lucky and a default mode would work, but for actual working content, this is the only correct method of configuration).

If EDID is not present, then that would need to be debugged. EDID uses i2c for query, and if this fails, then EDID will fail even if the monitor is compliant.

If EDID is present, then it is still possible available modes are rejected. In that case we would add more debug content for logging and look at the logs.

Hi linuxdev

thank you for your help.
The command gives out “No EDID”. Can we leave the configuration as it is (as DP monitors are working) or is there any other configuration in the device tree necessary, when an active adapter is used?

Kind regards

Basically you need to find a way to provide the EDID. There are ways to modify the kernel itself to change what fallback mode is used when no EDID is found, but this in turn still works only with EDID modes. I know of no other method within embedded systems to change or specify the monitor specifications.

Incidentally, an “active” adapter should pass through EDID. No EDID implies either an i2c error or some other failure. Are you certain the adapter is actually functioning?

In the case that you believe the adapter is functioning you might want to include a boot log (preferably through serial console since it logs prior to Linux loading) so i2c errors can be examined.

Hi linuxdev

Attached two the boot logs of different adapters. There are in fact dp aux write errors and HPD is not detected errors. We know not for sure that the adapter is actually working, but we already tested many different kinds. Can NVidia suggest any out-of-the-box working adapters?

Thank you.
bootlog.txt (260 KB)
bootlog2.txt (253 KB)

An excerpt of the logs:

[   10.615663] hpd: switching from state 1 (Check Plug) to state 2 (Check EDID)
[   10.628042] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[   10.630427] tegradc 15210000.nvdisplay: dp: aux read defer (0x10020000) -- 6

Once booted do you still see “No EDID” from #2? This is the key to whether any kind of adapter will work or not. I couldn’t tell you of a specific adapter, but if EDID is passed through, then it should work. Some adapters are for monitors without an EDID, and those require custom programming of the EDID into the adapter (and then the custom programmed EDID is sent as if it is from the monitor).

There may be other issues as well, but I don’t know enough about the logs to say. Any i2c error (if the controller reading the monitor is the one being examined) would also prevent EDID from being sent even if the EDID is present. For example, if the device tree were wrong for a custom board, then perhaps the i2c controller would not be correctly coupled to the right HDMI PHY.

In case #2, EDID data is there:

cat `find /sys -name edid`
No EDID
 00 ff ff ff ff ff ff 00 04 72 79 00 59 83 90 92
 1d 13 01 03 80 33 1d 78 2a ee 95 a3 54 4c 99 26
 0f 50 54 23 08 00 81 c0 81 00 81 40 81 80 b3 00
 01 01 01 01 01 01 3b 3d 00 a0 80 80 21 40 30 20
 35 00 fe 1f 11 00 00 1a 00 00 00 fd 00 38 3c 1f
 5e 11 00 0a 20 20 20 20 20 20 00 00 00 fc 00 41
 63 65 72 20 42 32 33 33 48 55 0a 20 00 00 00 ff
 00 4c 46 31 30 57 30 30 34 34 33 30 30 0a 01 dd
 02 03 20 70 46 01 02 03 04 05 10 23 09 07 07 83
 01 00 00 6c 03 0c 00 10 00 b8 2d 00 00 00 00 00
 02 3a 80 d0 72 38 2d 40 10 2c 96 80 fe 1f 11 00
 00 18 01 1d 80 18 71 1c 16 20 58 2c 25 00 fe 1f
 11 00 00 9e 01 1d 00 72 51 00 1e 20 6e 28 55 00
 fe 1f 11 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e
 96 00 fe 1f 11 00 00 18 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02

Upon display connection, we get non-stop the following error messages:

[  348.019244] tegradc 15210000.nvdisplay: dp: aux write got error (0x10000100)
[  348.019249] tegradc 15210000.nvdisplay: dp: Failed to write DPCD data. CMD 0x102, Status 0x10000100
[  348.024341] tegradc 15210000.nvdisplay: dp: aux write got error (0x10000100)
[  348.040994] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.041000] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x10000100
[  348.046068] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.046073] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x10000100
[  348.051128] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.051132] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x10000100
[  348.056175] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.056179] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x10000100
[  348.061382] tegradc 15210000.nvdisplay: dp: aux write got error (0x10000100)
[  348.076953] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.076958] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x10000100
[  348.082004] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.082008] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x10000100
[  348.087059] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.087064] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x10000100
[  348.092112] tegradc 15210000.nvdisplay: dp: aux read got error (0x10000100)
[  348.092116] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x10000100
[  348.097355] tegradc 15210000.nvdisplay: dp: aux write got error (0x10000100)
[  348.107922] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.107926] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.107936] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.107939] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.107953] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.107956] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.107969] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.107971] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.108059] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.119947] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.119958] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.119970] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.119973] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.119993] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.119996] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.120006] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.120008] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.120108] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.131929] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.131934] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.131945] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.131948] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.131984] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.131987] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.131998] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.132001] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.133848] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.133854] tegradc 15210000.nvdisplay: dp: Failed to write DPCD data. CMD 0x100, Status 0x100
[  348.134090] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.134095] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x101, Status 0x100
[  348.134227] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.143911] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.143939] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.143951] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.143955] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.143970] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.143973] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.143986] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.143989] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.144108] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.155907] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.155912] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.155924] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.155928] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.155966] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.155969] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.155982] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.155985] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.156104] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.167907] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.167912] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.167924] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.167927] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.167955] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.167959] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.167971] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.167975] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.168120] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.179905] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.179909] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.179921] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.179925] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.179938] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.179942] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.179954] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.179958] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.180100] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.191906] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.191910] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.191922] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.191926] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.191966] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.191970] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.191981] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.191985] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.192878] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.192883] tegradc 15210000.nvdisplay: dp: Failed to write DPCD data. CMD 0x100, Status 0x100
[  348.193116] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.193120] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x101, Status 0x100
[  348.193280] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.203906] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.203911] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.203923] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.203926] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.203940] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.203944] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.203955] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.203959] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.204079] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.215910] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.215939] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.215951] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.215955] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.215969] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.215973] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.215984] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.215988] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.216107] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.227909] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.227913] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.227925] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.227928] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.227967] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.227972] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.227983] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.227987] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.228104] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.239906] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.239910] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.239922] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.239926] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.239940] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.239943] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.239955] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.239958] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.240101] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.251907] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.251912] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x202, Status 0x100
[  348.251923] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.251927] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x203, Status 0x100
[  348.251941] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.251945] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x206, Status 0x100
[  348.251956] tegradc 15210000.nvdisplay: dp: HPD is not detected
[  348.251960] tegradc 15210000.nvdisplay: dp: Failed to read DPCD data. CMD 0x207, Status 0x100
[  348.252368] dp lt: NULL state handler in state 4

Thank you for your help.

So it looks like one monitor is showing up, and that there is another monitor port which is either failing or is activated, but without the monitor connected. If you run this to also list the file name, which file has EDID content?

sudo -s
egrep -l '*' `find /sys -name edid`
exit

Is the case where there is one monitor’s EDID showing up a case where things work as expected? Those errors you get upon plugin…which port, and is another monitor connected and working prior to this? Is the working EDID from a monitor without an adapter (a monitor running directly with HDMI)?

Knowing which one is failing would help. Hot plug detect is something which would be configurable in device tree, but I’m not sure if perhaps something in your adapter is the source of the error.

Hi linuxdev

I get the following output:

root@nvidia-desktop:/home/nvidia# egrep -l '*' `find /sys -name edid`
/sys/kernel/debug/tegradc.1/edid
/sys/kernel/debug/tegradc.0/edid
root@nvidia-desktop:/home/nvidia# cat /sys/kernel/debug/tegradc.1/edid
No EDID
root@nvidia-desktop:/home/nvidia# cat /sys/kernel/debug/tegradc.0/edid
 00 ff ff ff ff ff ff 00 04 72 79 00 59 83 90 92
 1d 13 01 03 80 33 1d 78 2a ee 95 a3 54 4c 99 26
 0f 50 54 23 08 00 81 c0 81 00 81 40 81 80 b3 00
 01 01 01 01 01 01 3b 3d 00 a0 80 80 21 40 30 20
 35 00 fe 1f 11 00 00 1a 00 00 00 fd 00 38 3c 1f
 5e 11 00 0a 20 20 20 20 20 20 00 00 00 fc 00 41
 63 65 72 20 42 32 33 33 48 55 0a 20 00 00 00 ff
 00 4c 46 31 30 57 30 30 34 34 33 30 30 0a 01 dd
 02 03 20 70 46 01 02 03 04 05 10 23 09 07 07 83
 01 00 00 6c 03 0c 00 10 00 b8 2d 00 00 00 00 00
 02 3a 80 d0 72 38 2d 40 10 2c 96 80 fe 1f 11 00
 00 18 01 1d 80 18 71 1c 16 20 58 2c 25 00 fe 1f
 11 00 00 9e 01 1d 00 72 51 00 1e 20 6e 28 55 00
 fe 1f 11 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e
 96 00 fe 1f 11 00 00 18 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02

EDID is showing up, but nothing is displayed on the HDMI Monitor. There is no other monitor connected. So the EDID has to be from the HDMI Monitor which is connected via the DP-to-HDMI Adapter. What could we try with the hot plug detection in the device tree to make it work?
Thank you.

In summary (tell me if this is correct or not), the first controller (tegradc.0) should be HDMI, and this is what is showing EDID. You can validate if what I said is correct or not by seeing if the EDID data disappears when you unplug the HDMI monitor.

The other monitor (on “tegradc.1”, the second monitor…I think eDP), we have EDID failure. Despite EDID failing, it sounds like this monitor is working, but perhaps I’ve reversed this. At times it sounds like you are using only one monitor, but at other times it sounds like there are two monitors involved. Can we verify that we have only one monitor attached at any one time, and that this is to the HDMI port?

Either way, you probably now need to see the verbose output from the X server log. If you go to the file “/etc/X11/xorg.conf”, then you will find this code block:

Section "Device"
...
EndSection

Somewhere in that block add this:

Section "Device"
   Option "ModeDebug"
...
EndSection

After you’ve booted, for the case where there is a failure, save a copy of the Jetson’s Xorg log file. If there is more than one display associated, then there might actually be both a “.0.log” and a “.1.log”. Go to “/var/log”, run “ls -ltr Xorg*”, and the sort order will place the most recent files at the bottom of the scroll. If only the last log has a time stamp of this boot, then that is all you need; if there are two log files with a time stamp from that boot, then you will need both logs (the “.old…” logs are rotated and don’t matter to us). You can rename them with a “.txt” if the forum doesn’t allow a “.log” attached.

When the driver has Option “ModeDebug”, then the driver will give detailed information about every mode the EDID has reported, along with its logic on which modes the final mode pool contains, or if the mode is entirely a fallback mode.

PS: You might find this URL useful:
https://elinux.org/Jetson_TX2/r28_Display_debug

Hi linuxdev

We only use the first controller (tegradc.0) in our system. It is normally used as Display Port and with a Display Port Monitor, we do not have any display problems. The other monitor you can ignore (tegradc.1), as nothing gets connected to it.

So as a conclusion, we use only one monitor attached at a time. If it is a monitor with a DP input, everything is fine. If we use a dp-to-hdmi adapter and a monitor with hdmi input, nothing appears on the screen.
With the adapter that we get edid data, the edid data stays there also if we disconnect the monitor. So it seems that we have a problem with the hotplug detection. The errors we get are the one in post #5. Until now we saw edid data using an active and a passive dp-to-hdmi adapter.

The X server log i will verbose next week.

Thank you for your help so far.

The log should help clarify. Btw, if you have a controller which is not used, then this might conceivably cause issues, and disabling the controller in the device tree could simplify debugging. If the device tree or something else triggers an attempt to query i2c on the non-existent monitor (such as via misidentifying which hot plug event goes to which controller), then hardware errors could exist. If the controller is disabled in the device tree, then you will at least know there is no extraneous event going to the wrong controller.

Your note about hot plug is on target. If a hot plug is detected, then the i2c query looks for the EDID. When the disconnect occurs, then the EDID will stick around until another hot plug event overwrites this. Sometimes people with VGA monitors get them to work by first connecting an HDMI monitor with the same resolution, disconnecting the HDMI, and then adding the VGA adapter monitor…since no EDID updates (or since no new HDMI hot plug is detected), things might work. DP does have EDID, but it doesn’t mean the adapter is working correctly with this, nor does it mean the EDID is something the driver accepts (those logs will say what the driver thinks).

There are also times when hot plug detect and i2c/DDC/EDID update are disabled, e.g., maybe for energy savings after the system is booted. In that case knowing if the DDC wire is not updating due to some sort of savings mode might point something out. The logs will no doubt be revealing.

Hi linuxdev

We disabled the second controller in the device tree, the behavior is still the same.
Attached you can find the Xorg Log File.

Thank you.
Xorg.0.log.zip (46.6 KB)

This excerpt of the log shows a fairly large list of available modes from EDID which should work:

[    57.034] (II) NVIDIA(GPU-0): --- Modes in ModePool for Acer B233HU (DFP-0) ---
[    57.034] (II) NVIDIA(GPU-0): "nvidia-auto-select" : 2048 x 1152 @  59.9 Hz  (from: EDID, Detailed)
[    57.034] (II) NVIDIA(GPU-0): "2048x1152"          : 2048 x 1152 @  59.9 Hz  (from: EDID, Detailed)
[    57.034] (II) NVIDIA(GPU-0): "2048x1152_60"       : 2048 x 1152 @  59.9 Hz  (from: EDID, Detailed)
[    57.034] (II) NVIDIA(GPU-0): "1920x1080"          : 1920 x 1080 @  60.0 Hz  (from: EDID, CEA)
[    57.034] (II) NVIDIA(GPU-0): "1920x1080_60"       : 1920 x 1080 @  60.0 Hz  (from: EDID, CEA)
[    57.034] (II) NVIDIA(GPU-0): "1920x1080_60_0"     : 1920 x 1080 @  59.9 Hz  (from: EDID, CEA)
[    57.034] (II) NVIDIA(GPU-0): "1920x1080_50"       : 1920 x 1080 @  50.0 Hz  (from: EDID, Detailed)
[    57.034] (II) NVIDIA(GPU-0): "1680x1050"          : 1680 x 1050 @  60.0 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1680x1050_60"       : 1680 x 1050 @  60.0 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x1024"          : 1280 x 1024 @  60.0 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x1024_60"       : 1280 x 1024 @  60.0 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x960"           : 1280 x  960 @  60.0 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x960_60"        : 1280 x  960 @  60.0 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x800"           : 1280 x  800 @  59.8 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x800_60"        : 1280 x  800 @  59.8 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x720"           : 1280 x  720 @  60.0 Hz  (from: EDID, CEA)
[    57.034] (II) NVIDIA(GPU-0): "1280x720_60"        : 1280 x  720 @  60.0 Hz  (from: EDID, CEA)
[    57.034] (II) NVIDIA(GPU-0): "1280x720_60_0"      : 1280 x  720 @  60.0 Hz  (from: EDID)
[    57.034] (II) NVIDIA(GPU-0): "1280x720_60_1"      : 1280 x  720 @  59.9 Hz  (from: EDID, CEA)
[    57.034] (II) NVIDIA(GPU-0): "1280x512"           : 1280 x  512 @  83.0 Hz  (from: EDID, Detailed)
[    57.034] (II) NVIDIA(GPU-0): "1280x512_83"        : 1280 x  512 @  83.0 Hz  (from: EDID, Detailed)
[    57.034] (II) NVIDIA(GPU-0): "1024x768"           : 1024 x  768 @  60.0 Hz  (from: EDID)
[    57.035] (II) NVIDIA(GPU-0): "1024x768_60"        : 1024 x  768 @  60.0 Hz  (from: EDID)
[    57.035] (II) NVIDIA(GPU-0): "800x600"            :  800 x  600 @  60.3 Hz  (from: EDID)
[    57.035] (II) NVIDIA(GPU-0): "800x600_60"         :  800 x  600 @  60.3 Hz  (from: EDID)
[    57.035] (II) NVIDIA(GPU-0): "800x600_56"         :  800 x  600 @  56.3 Hz  (from: EDID)
[    57.035] (II) NVIDIA(GPU-0): "720x480"            :  720 x  480 @  59.9 Hz  (from: EDID, CEA, Detailed)
[    57.035] (II) NVIDIA(GPU-0): "720x480_60"         :  720 x  480 @  59.9 Hz  (from: EDID, CEA, Detailed)
[    57.035] (II) NVIDIA(GPU-0): "720x480_60_0"       :  720 x  480 @  59.9 Hz  (from: EDID, CEA)
[    57.035] (II) NVIDIA(GPU-0): "640x480"            :  640 x  480 @  59.9 Hz  (from: EDID, CEA)
[    57.035] (II) NVIDIA(GPU-0): "640x480_60"         :  640 x  480 @  59.9 Hz  (from: EDID, CEA)
[    57.035] (II) NVIDIA(GPU-0): "640x480_60_0"       :  640 x  480 @  59.9 Hz  (from: EDID)
[    57.035] (II) NVIDIA(GPU-0): --- End of ModePool for Acer B233HU (DFP-0): ---

However, the log then ends as if it never used those modes despite having and detecting a monitor we know has acceptable modes:

[    57.035] (--) NVIDIA(GPU-0): Acer B233HU (DFP-0): connected
[    57.035] (--) NVIDIA(GPU-0): Acer B233HU (DFP-0): External TMDS
[    57.035] (--) NVIDIA(GPU-0): Acer B233HU (DFP-0) Name Aliases:
[    57.035] (--) NVIDIA(GPU-0):   DFP
[    57.035] (--) NVIDIA(GPU-0):   DFP-0
[    57.035] (--) NVIDIA(GPU-0):   DPY-0
[    57.035] (--) NVIDIA(GPU-0):   DP-0
[    57.035] (--) NVIDIA(GPU-0):   DPY-EDID-4e24a028-08d3-e46b-60e7-79a44a74abcc
[    57.035] (--) NVIDIA(GPU-0):   DP-0
[    57.058] (II) NVIDIA(0): Setting mode "NULL"
[    59.009] (II) NVIDIA(0): Setting mode "NULL"
[    62.334] (II) NVIDIA(0): Setting mode "NULL"
[    62.335] (II) NVIDIA(0): Setting mode "NULL"
[    63.597] (II) NVIDIA(0): Setting mode "NULL"
[    65.720] (II) NVIDIA(0): Setting mode "NULL"
[    65.721] (II) NVIDIA(0): Setting mode "NULL"

Has there been any modification of “/etc/X11/xorg.conf”? If not, then someone else will need to investigate since I do not know why a monitor with many validated and accepted modes (as stated by the video driver itself) would result in failing to set a mode. The xorg.conf could be a reason for this since modes cannot be set from here (only EDID modes are accepted…manually set modes within this file are not allowed in the same way as a desktop PC).

Hi linuxdev

We did not modify “/etc/X11/xorg.conf”.
Can someone of NVidia provide additional help?
Thank you.

Hi sevm89,

Our team is checking what adapter is verified. I will share the list once we get the result.
Are you using a USB typeC → DP → HDMI adatper on devkit?

Hi WayneWWW

No, we use an active DP-to-HDMI Adapter on our own carrier board.
Ok thank you.

Kind regards

Hi sevm89,

Just want to confirm… does the native DP monitor works fine on your custom carrier board?

Hi WayneWWW

Yes, the native DP monitor works fine on our custom carrier board.

Hi sevm89,

Need your help to confirm:

  1. Whether these adapters are all working on other platforms/DP source (x86 host)?

  2. Have you tried different HDMI monitors too?