TX2 EDID HDMI I2C errors - Disable EDID read

Hi,

I am running Jetpack 4.6.3, kernel 4.9.299, on a TX2 on a system, with no HDMI display connected, and have noticed I2C errors due to attempts to read the HDMI EDID - (shown below). I’d like to therefore disable this feature.

There are some clues in the following post,

https://forums.developer.nvidia.com/t/tx2-use-i2c4-dp1-aux-ch/54904

however, this is a different kernel, and the suggested device tree changes don’t match up with the 4.9.299 kernel.

Could someone explain how to disable the EDID read in the device tree please?

Thanks.

[  134.396815] Parent Clock set for DC plld2
[  134.400403] tegradc 15210000.nvdisplay: hdmi: tmds rate:25180K prod-setting:prod_c_hdmi_0m_54m
[  134.404877] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  144.466899] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  144.466912] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  144.466926] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  144.466937] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  144.466949] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  144.466959] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  144.466970] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  144.466981] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  144.467025] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  144.471512] extcon-disp-state external-connection:disp-state: cable 47 state 1
[  144.471521] Extcon AUX1(HDMI) enable
[  144.524515] tegradc 15210000.nvdisplay: unblank
[  144.601677] tegradc 15210000.nvdisplay: blank - powerdown
[  144.663329] extcon-disp-state external-connection:disp-state: cable 47 state 0
[  144.663332] Extcon AUX1(HDMI) disable
[  144.689956] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[  144.690068] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[  144.690914] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[  144.691236] tegradc 15210000.nvdisplay: unblank
[  144.694324] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[  144.698630] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[  144.698809] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[  144.705072] Parent Clock set for DC plld2
[  144.709825] tegradc 15210000.nvdisplay: hdmi: tmds rate:74250K prod-setting:prod_c_hdmi_54m_111m
[  144.713675] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  154.962827] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  154.962842] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  154.962856] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  154.962868] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  154.962879] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  154.962889] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  154.962900] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  154.962910] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  154.962954] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50

I can’t answer that, but are you using a custom carrier board? Or is this a dev kit? If it is a custom board, then the device tree will likely need to be from the manufacturer. If it is wrong, then there is a significant chance that the i2c power rails or routing is simply mismatched to that carrier board layout. Using the manufacturer’s BSP instead of the dev kit BSP could “fix” everything should this not be a dev kit.

Also, the GPU driver works only with the EDID for configuration. There are cases where people have disabled this and more or less set a fallback configuration which works with their monitor, and this does prevent an EDID failure, but it also means no other configuration will ever be used. It also means that every attempt to update a kernel probably requires you to modify it again.

Same question as @linuxdev. What is the board in use here? Is that your custom board or devkit?

Also, I think what we need to do here is not “disable the edid read”. There is no such control in device tree. What you should control is whether the display should be enabled or not.

The edid read is triggered by display driver. So there is no option to just disable “edid read”.

Thanks very much for the responses. We have our in house board but the design, as far as I know, is based on the devkit board. However, I can replicate the problem on the devkit.

Disabling the display from the device tree sounds like a good option and I would be grateful for advice on how to do this in the 4.9.299 kernel. I have no problem building and flashing the device tree but my knowledge of the device modules is not that great.

If I can disable the edid feature by rebuilding the kernel driver and still have the display, this would also be a good option because sometimes it is useful to connect a display and keyboard to the jetson. Again, I have no problem building the kernel but some direction on where to make the changes would be appreciated.

Thanks.

I am more curious about this.

I can replicate the problem on the devkit.

How did you reproduce this issue on device tree?

If I can disable the edid feature by rebuilding the kernel driver and still have the display, this would also be a good option because sometimes it is useful to connect a display and keyboard to the jetson

And this is basically not supported. Our display driver must work with edid read.

I can tell what to modify after we clarify the situation on devkit.

To replicate the problem using the devkit, I powered up the Jetson, with no monitor connected and observed the ‘dmesg’ output, which reported the I2C errors shown in my post. I then connected a monitor, and performed a restart. I again looked at the ‘dmesg’ output and confirmed that the I2C errors were no longer reported. From this, I deduced that the absence of a display was causing the I2C errors due to attempts to communicate with a display device that was not connected.

How did you reproduce this issue on device tree?

I haven’t done anything to the device tree as yet. I would like to know how to modify the device tree, or some kernel module so that the I2C errors no longer occur when a display is not connected. If the display driver requires the edid read, then it might be better to disable the display driver from the device tree, or not to do anything, as long as the I2C errors are not causing problems, i.e. if the driver fails to read edid information, and handles this gracefully, recognising that no display is connected, then it may not be an issue. I’d still like to be able to disable the display from the device tree because our production systems have no display connected, but it will still be useful to have the ability enable the display during development.

Thanks again.

Sorry. It is a typo. I was trying to ask how to reproduce this on devkit.

Could you do me a help here… please reflash your board with any previous jetpack version and see if any of them have similar log showing up?

I can confirm that running a jetson using Jetpack 4.6.2, Kernel 4.9.253 will also produce something similar

[   42.068119] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[   42.074588] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   42.081323] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   42.086488] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   42.093218] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[   42.098760] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[   42.104563] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[   42.109745] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   42.115028] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[   51.575532] _IOCX_FTS_SET_TRANSMIT_SELECT i2c_wait:11
[   52.308037] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[   52.308450] spmic-ldo0: disabling
[   52.314539] spmic-ldo1: disabling
[   52.314570] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   52.321318] en-vdd-sd: disabling
[   52.321322] vdd-usb0-5v: disabling
[   52.321326] vdd-usb1-5v: disabling
[   52.321329] vdd-3v3: disabling
[   52.321333] en-vdd-vcm-2v8: disabling
[   52.321337] vdd-sys-bl: disabling
[   52.321358] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   52.326526] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   52.333287] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[   52.338830] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[   52.344613] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[   52.349821] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   52.355113] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[   53.245047] cmd:0x6647  minor:0
[   53.245052] DisableInt
[   53.245053] free_irq 0
[   53.245064] pci_disable_msi
[   53.245270] cmd:0x6646  minor:0
[   53.245272] EnableInt
[   53.245346] GPU Beamformer 0000:01:00.0: pci_enable_msi_range() returned: 1
[   53.245349] GPU Beamformer 0000:01:00.0: pci_enable_msi_range() allocated 1 successfully
[   53.245358] Set irq0  dma_isr_1 0
[   53.245361] GPU Beamformer 0000:01:00.0: Successfully requested MSI IRQ: 460
[   53.245365] ssp_gpio_disable_int: ssp_gpio_disable_int
[   62.547884] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[   62.554516] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   62.563249] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   62.568365] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   62.575024] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[   62.580544] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[   62.586408] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[   62.591579] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   62.596866] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[   72.787817] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[   72.794276] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   72.801009] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   72.806176] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   72.812896] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[   72.818425] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[   72.824205] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[   72.829389] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   72.834687] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[   83.027699] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[   83.034191] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   83.043016] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   83.048132] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   83.054820] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[   83.060342] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[   83.066113] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[   83.071290] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   83.076626] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[   93.267585] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[   93.274086] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[   93.280925] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[   93.286091] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[   93.292765] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[   93.298277] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[   93.304059] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[   93.309235] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[   93.314525] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  103.507429] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  103.514020] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  103.520723] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  103.525872] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  103.532529] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  103.538071] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  103.543841] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  103.549015] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  103.554315] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  113.747302] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  113.753824] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  113.760937] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  113.779241] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  113.786141] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  113.791887] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  113.797702] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  113.802885] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  113.808176] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  123.987298] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  123.993818] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  124.000630] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  124.005778] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  124.012483] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  124.018035] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  124.023825] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  124.029083] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  124.034385] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  124.043764] tegradc 15210000.nvdisplay: hdmi: edid read failed
[  124.049669] tegradc 15210000.nvdisplay: hdmi: using fallback edid
[  124.049784] tegradc 15210000.nvdisplay: blank - powerdown
[  124.104770] extcon-disp-state external-connection:disp-state: cable 47 state 0
[  124.104773] Extcon AUX1(HDMI) disable
[  124.126766] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[  124.126851] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[  124.127509] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[  124.136088] tegradc 15210000.nvdisplay: unblank
[  124.137114] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[  124.137241] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[  124.137348] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[  124.138883] Parent Clock set for DC plld2
[  124.142032] tegradc 15210000.nvdisplay: hdmi: tmds rate:74250K prod-setting:prod_c_hdmi_54m_111m
[  124.143295] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  134.227087] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  134.227101] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  134.227116] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  134.227158] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  134.227171] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  134.227183] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  134.227194] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  134.227204] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  134.227250] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  134.231370] extcon-disp-state external-connection:disp-state: cable 47 state 1
[  134.231373] Extcon AUX1(HDMI) enable
[  134.284514] extcon-disp-state external-connection:disp-state: cable 51 state 1
[  134.284517] Extcon HDMI: HPD enabled
[  134.284563] tegradc 15210000.nvdisplay: hdmi: plugged
[  134.313061] tegradc 15210000.nvdisplay: blank - powerdown
[  134.376836] extcon-disp-state external-connection:disp-state: cable 47 state 0
[  134.376844] Extcon AUX1(HDMI) disable
[  134.400502] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[  134.400600] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[  134.401381] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[  134.401639] tegradc 15210000.nvdisplay: unblank
[  134.407599] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[  134.407735] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[  134.407829] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[  134.413211] Parent Clock set for DC plld2
[  134.416984] tegradc 15210000.nvdisplay: hdmi: tmds rate:25180K prod-setting:prod_c_hdmi_0m_54m
[  134.418931] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  144.467037] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  144.467052] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  144.467067] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  144.467079] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  144.467090] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  144.467100] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  144.467111] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  144.467122] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  144.467166] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  144.471508] extcon-disp-state external-connection:disp-state: cable 47 state 1
[  144.471516] Extcon AUX1(HDMI) enable
[  144.525309] tegradc 15210000.nvdisplay: unblank
[  144.564771] tegradc 15210000.nvdisplay: blank - powerdown
[  144.632227] extcon-disp-state external-connection:disp-state: cable 47 state 0
[  144.632230] Extcon AUX1(HDMI) disable
[  144.650401] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[  144.650477] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[  144.651063] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd
[  144.651192] tegradc 15210000.nvdisplay: unblank
[  144.651951] tegra_nvdisp_handle_pd_enable: Unpowergated Head0 pd
[  144.653969] tegra_nvdisp_handle_pd_enable: Unpowergated Head1 pd
[  144.654143] tegra_nvdisp_handle_pd_enable: Unpowergated Head2 pd
[  144.659849] Parent Clock set for DC plld2
[  144.663547] tegradc 15210000.nvdisplay: hdmi: tmds rate:74250K prod-setting:prod_c_hdmi_54m_111m
[  144.664847] tegradc 15210000.nvdisplay: hdmi: get YCC quant from EDID.
[  154.706937] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
[  154.706951] tegra-i2c 3190000.i2c: --- register dump for debugging ----
[  154.706964] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
[  154.706976] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[  154.706987] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
[  154.706999] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
[  154.707010] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
[  154.707020] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
[  154.707065] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50
[  154.711480] extcon-disp-state external-connection:disp-state: cable 47 state 1
[  154.711485] Extcon AUX1(HDMI) enable
[  154.764518] tegradc 15210000.nvdisplay: unblank
[  343.326230] tegradc 15210000.nvdisplay: blank - powerdown
[  343.382038] extcon-disp-state external-connection:disp-state: cable 47 state 0
[  343.382042] Extcon AUX1(HDMI) disable
[  343.405391] tegra_nvdisp_handle_pd_disable: Powergated Head2 pd
[  343.405494] tegra_nvdisp_handle_pd_disable: Powergated Head1 pd
[  343.406237] tegra_nvdisp_handle_pd_disable: Powergated Head0 pd

Hi,

Just let me double confirm again. Are you sure this behavior is on devkit?

This sounds abnormal. We will use our devkit to check whether this is software issue or not. If it is not, it could be some hardware issue on your side.

The output just posted is on our production system, so not the devkit, however the original pasted output was while running on the devkit board.

As I said, I only concern about the devkit situation right now. This should not be a software problem on devkit.

If you want to disable display driver in DT, just set nvdisplay node status to disabled for your custom board.

You’re using a different kernel. I’m wondering if the drivers there do not work the same with device tree entries. Think of device tree entries as arguments to pass to drivers at load. If your board is stock, and you add a new kernel, then it is possible to have device tree errors even though it is a stock tree. The driver itself could have changed.

Note that i2c errors for EDID (the DDC wire) won’t interfere if you don’t have a display connected, but it may indicate that your setup thinks there is a display connected. The GPU driver might not load correctly. Incidentally, the X server is often related to running CUDA applications even when no display is used, and so a mismatch between the GPU driver’s ABI and the expected ABI of the X server can cause CUDA failures. The X server is far more than a GUI. If you want to run without a GUI you should still have the X server and the GPU driver working together. I am quite curious if there is an Xorg log for boots which do not have an HDMI cable connected? Typically the log would be found from:
ls -ltr /var/log/Xorg.*.log | tail -n 1
(does the Xorg log, if present, show compatibility with the GPU driver?)

It is likely that if this fails on the dev kit too, then it is a kernel compatibility issue as the tree is not modified.

Agreed, I’ll flash an older jetpack version onto a Jetson and test this on the devkit also.

Excuse my lack of device tree knowledge. I performed a grep for nvdisplay in the device tree sources and this reported a many instances. Would it be possible to advise where I should disable nvdisplay? This will save me a long time searching through the sources.

platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000-kexec.dts:103:		nvdisplay@15200000 {
platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000-kexec.dts:106:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-hdmi-imx274-hdmiin.dts:27:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-hdmi-imx274-hdmiin.dts:33:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-hdmi-imx274-hdmiin.dts:39:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-dp.dts:25:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-dp.dts:30:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-dp.dts:35:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts:332:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts:336:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-edp.dts:47:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c00-00-auo-1080p-edp.dts:49:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-as-0888-base.dts:294:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-as-0888-base.dts:298:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-imx185_v1.dts:314:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-imx185_v1.dts:318:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3489-0888-a00-00-base.dts:310:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3489-0888-a00-00-base.dts:314:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-dsi-dp.dts:25:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-dsi-dp.dts:30:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-dp.dts:25:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-dp.dts:30:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-hdmi-primary-p3310-1000-a00-00.dts:25:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-hdmi-primary-p3310-1000-a00-00.dts:30:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-hdmi-primary-p3310-1000-a00-00.dts:35:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-hdmi-primary-p3310-1000-c03-00.dts:25:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-hdmi-primary-p3310-1000-c03-00.dts:30:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-hdmi-primary-p3310-1000-c03-00.dts:35:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-dsi-hdmi-dp.dts:25:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-dsi-hdmi-dp.dts:30:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-dsi-hdmi-dp.dts:35:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3489-1000-a00-00-base.dts:310:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3489-1000-a00-00-base.dts:314:		nvdisplay@15220000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-hdmi.dts:25:		nvdisplay@15200000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-hdmi.dts:31:		nvdisplay@15210000 {
platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-dsi-hdmi-hdmi.dts:37:		nvdisplay@15220000 {
platform/t18x/lanai/kernel-dts/tegra186-p3636-0002-lanai.dts:167:		nvdisplay@15200000 {
platform/t18x/lanai/kernel-dts/tegra186-p3636-0002-lanai.dts:171:		nvdisplay@15210000 {
platform/t18x/lanai/kernel-dts/tegra186-p3636-0002-lanai.dts:174:		nvdisplay@15220000 {
platform/t18x/lanai/kernel-dts/tegra186-p3636-0002-p3509-0000-a01.dts:167:		nvdisplay@15200000 {
platform/t18x/lanai/kernel-dts/tegra186-p3636-0002-p3509-0000-a01.dts:174:		nvdisplay@15210000 {
platform/t18x/lanai/kernel-dts/tegra186-p3636-0001-p3509-0000-a01.dts:171:		nvdisplay@15200000 {
platform/t18x/lanai/kernel-dts/tegra186-p3636-0001-p3509-0000-a01.dts:178:		nvdisplay@15210000 {


soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:110:					<&bpmp_clks TEGRA194_CLK_NVDISPLAYHUB>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:111:					<&bpmp_clks TEGRA194_CLK_NVDISPLAY_DISP>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:112:					<&bpmp_clks TEGRA194_CLK_NVDISPLAY_P0>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:113:					<&bpmp_clks TEGRA194_CLK_NVDISPLAY_P1>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:114:					<&bpmp_clks TEGRA194_CLK_NVDISPLAY_P2>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:210:					<&bpmp_clks TEGRA194_CLK_NVDISPLAY_P3>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:234:					<&bpmp_clks TEGRA194_CLK_NAFLL_NVDISPLAYHUB>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:426:					"nvdisplayhub",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:427:					"nvdisplay_disp",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:428:					"nvdisplay_p0",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:429:					"nvdisplay_p1",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:430:					"nvdisplay_p2",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:526:					"nvdisplay_p3",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:550:					"nafll_nvdisplayhub",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:696:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD0>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:697:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD1>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:698:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD2>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:699:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD3>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:700:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_MISC>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:701:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP0>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:702:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP1>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:703:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP2>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:704:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP3>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:705:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP4>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:706:					<&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP5>,
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:842:					"nvdisplay0_head0",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:843:					"nvdisplay0_head1",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:844:					"nvdisplay0_head2",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:845:					"nvdisplay0_head3",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:846:					"nvdisplay0_misc",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:847:					"nvdisplay0_wgrp0",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:848:					"nvdisplay0_wgrp1",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:849:					"nvdisplay0_wgrp2",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:850:					"nvdisplay0_wgrp3",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:851:					"nvdisplay0_wgrp4",
soc/t19x/kernel-dts/tegra194-soc/mods-simple-bus.dtsi:852:					"nvdisplay0_wgrp5",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:401:			nvdisplay_domain {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:402:				address-space = <&nvdisplay_as>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:403:				sid-list = <TEGRA_SID(NVDISPLAY)>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:549:			nvdisplay_as: nvdisplay {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1060:		head0: nvdisplay@15200000 {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1066:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1073:			clock-names = "nvdisplay_disp",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1074:				      "nvdisplayhub", "nvdisplay_p0",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1075:				      "nvdisplay_p1", "nvdisplay_p2",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1076:				      "nvdisplay_p3", "pllp_display",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1080:			clocks = <&bpmp_clks TEGRA194_CLK_NVDISPLAY_DISP>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1081:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAYHUB>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1082:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1083:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1084:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1085:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1094:			resets = <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_MISC>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1095:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1096:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1097:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1098:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1099:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP4>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1100:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP5>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1101:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD0>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1118:		}; //nvdisplay@15200000
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1120:		head1: nvdisplay@15210000 {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1126:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1133:			clock-names = "nvdisplay_disp",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1134:				      "nvdisplayhub", "nvdisplay_p0",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1135:				      "nvdisplay_p1", "nvdisplay_p2",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1136:				      "nvdisplay_p3", "pllp_display",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1140:			clocks = <&bpmp_clks TEGRA194_CLK_NVDISPLAY_DISP>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1141:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAYHUB>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1142:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1143:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1144:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1145:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1154:			resets = <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_MISC>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1155:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1156:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1157:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1158:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1159:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP4>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1160:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP5>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1161:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD1>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1178:		}; //nvdisplay@15210000
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1180:		head2: nvdisplay@15220000 {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1186:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1193:			clock-names = "nvdisplay_disp",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1194:				      "nvdisplayhub", "nvdisplay_p0",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1195:				      "nvdisplay_p1", "nvdisplay_p2",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1196:				      "nvdisplay_p3", "pllp_display",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1200:			clocks = <&bpmp_clks TEGRA194_CLK_NVDISPLAY_DISP>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1201:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAYHUB>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1202:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1203:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1204:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1205:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1214:			resets = <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_MISC>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1215:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1216:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1217:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1218:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1219:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP4>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1220:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP5>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1221:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD2>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1238:		}; //nvdisplay@15220000
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1240:		head3: nvdisplay@15230000 {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1246:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1253:			clock-names = "nvdisplay_disp",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1254:				      "nvdisplayhub", "nvdisplay_p0",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1255:				      "nvdisplay_p1", "nvdisplay_p2",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1256:				      "nvdisplay_p3", "pllp_display",
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1260:			clocks = <&bpmp_clks TEGRA194_CLK_NVDISPLAY_DISP>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1261:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAYHUB>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1262:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1263:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1264:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1265:				 <&bpmp_clks TEGRA194_CLK_NVDISPLAY_P3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1274:			resets = <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_MISC>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1275:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP0>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1276:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP1>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1277:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP2>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1278:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP3>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1279:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP4>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1280:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_WGRP5>,
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1281:				 <&bpmp_resets TEGRA194_RESET_NVDISPLAY0_HEAD3>;
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi:1298:		}; //nvdisplay@15230000
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-presi/tegra194-presi-prod-reference.dtsi:1483:					0 0x00000014 0x00001800 0x00000000>;            //TSA_CONFIG_STATIC0_CSR_NVDISPLAYR_0
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-virt.dtsi:69:	 * nvdisplay, vi and vi-thi */
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-virt.dtsi:71:		nvdisplay@15200000 {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-virt.dtsi:76:		nvdisplay@15210000 {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-virt.dtsi:81:		nvdisplay@15220000 {
soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-virt.dtsi:86:		nvdisplay@15230000 {
soc/t18x/kernel-dts/tegra186-soc/mods-simple-bus.dtsi:110:					 <&tegra_car TEGRA186_CLK_NVDISPLAY_P0>,
soc/t18x/kernel-dts/tegra186-soc/mods-simple-bus.dtsi:111:					 <&tegra_car TEGRA186_CLK_NVDISPLAY_P1>,
soc/t18x/kernel-dts/tegra186-soc/mods-simple-bus.dtsi:112:					 <&tegra_car TEGRA186_CLK_NVDISPLAY_P2>,
soc/t18x/kernel-dts/tegra186-soc/mods-simple-bus.dtsi:247:					"nvdisplay_p0",
soc/t18x/kernel-dts/tegra186-soc/mods-simple-bus.dtsi:248:					"nvdisplay_p1",
soc/t18x/kernel-dts/tegra186-soc/mods-simple-bus.dtsi:249:					"nvdisplay_p2",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:247:					    TEGRA_SID(NVDISPLAY) TEGRA_SID(NVCSI)
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:920:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:926:		head0: nvdisplay@15200000 {
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:931:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:935:			clocks = <&tegra_car TEGRA186_CLK_NVDISPLAY_DISP>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:936:				 <&tegra_car TEGRA186_CLK_NVDISPLAYHUB>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:937:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P0>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:938:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P1>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:939:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P2>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:940:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_DSC>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:947:			clock-names = "nvdisplay_disp",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:948:				      "nvdisplayhub", "nvdisplay_p0",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:949:				      "nvdisplay_p1", "nvdisplay_p2", "nvdisp_dsc",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:952:			resets = <&tegra_car TEGRA186_RESET_NVDISPLAY0_MISC>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:953:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP0>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:954:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP1>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:955:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP2>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:956:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP3>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:957:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP4>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:958:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP5>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:959:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_HEAD0>;
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:984:		head1: nvdisplay@15210000 {
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:989:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:993:			clocks = <&tegra_car TEGRA186_CLK_NVDISPLAY_DISP>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:994:				 <&tegra_car TEGRA186_CLK_NVDISPLAYHUB>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:995:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P0>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:996:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P1>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:997:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P2>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:998:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_DSC>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1005:			clock-names = "nvdisplay_disp",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1006:				      "nvdisplayhub", "nvdisplay_p0",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1007:				      "nvdisplay_p1", "nvdisplay_p2", "nvdisp_dsc",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1010:			resets = <&tegra_car TEGRA186_RESET_NVDISPLAY0_MISC>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1011:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP0>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1012:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP1>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1013:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP2>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1014:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP3>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1015:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP4>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1016:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP5>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1017:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_HEAD1>;
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1042:		head2: nvdisplay@15220000 {
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1047:			iommus = <&smmu TEGRA_SID_NVDISPLAY>;
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1051:			clocks = <&tegra_car TEGRA186_CLK_NVDISPLAY_DISP>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1052:				 <&tegra_car TEGRA186_CLK_NVDISPLAYHUB>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1053:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P0>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1054:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P1>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1055:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_P2>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1056:				 <&tegra_car TEGRA186_CLK_NVDISPLAY_DSC>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1061:			clock-names = "nvdisplay_disp",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1062:				      "nvdisplayhub", "nvdisplay_p0",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1063:				      "nvdisplay_p1", "nvdisplay_p2", "nvdisp_dsc",
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1066:			resets = <&tegra_car TEGRA186_RESET_NVDISPLAY0_MISC>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1067:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP0>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1068:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP1>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1069:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP2>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1070:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP3>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1071:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP4>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1072:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_WGRP5>,
soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi:1073:				 <&tegra_car TEGRA186_RESET_NVDISPLAY0_HEAD2>;
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi:43:		nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi:56:		nvdisplay@15210000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi:61:		nvdisplay@15220000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/mods-display.dtsi:20:		nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/mods-display.dtsi:31:		nvdisplay@15210000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/mods-display.dtsi:42:		nvdisplay@15220000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-common.dtsi:258:		nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-common.dtsi:271:		nvdisplay@15210000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-common.dtsi:285:		nvdisplay@15220000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3489-1000-a00-00.dtsi:43:		nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3489-1000-a00-00.dtsi:56:		nvdisplay@15210000 {
platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3489-1000-a00-00.dtsi:61:		nvdisplay@15220000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3489-1000-a00-plugin-manager.dtsi:67:					nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3489-1000-a00-plugin-manager.dtsi:72:					nvdisplay@15210000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3489-1000-a00-plugin-manager.dtsi:77:					nvdisplay@15220000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-odm-data-plugin-manager.dtsi:98:					nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-odm-data-plugin-manager.dtsi:102:					nvdisplay@15210000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-odm-data-plugin-manager.dtsi:106:					nvdisplay@15220000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi:320:					nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi:325:					nvdisplay@15210000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi:330:					nvdisplay@15220000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi:35:					nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi:86:					nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi:145:					nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-display-plugin-manager.dtsi:161:					nvdisplay@15200000 {
platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3489-0888-mimic-plugin-manager.dtsi:277:					nvdisplay@15220000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-a00-power-tree.dtsi:66:		nvdisplay@15200000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-a00-power-tree.dtsi:82:		nvdisplay@15210000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-a00-power-tree.dtsi:98:		nvdisplay@15220000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-a00-disp.dtsi:25:		nvdisplay@15200000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-a00-disp.dtsi:38:		nvdisplay@15210000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-a00-disp.dtsi:52:		nvdisplay@15220000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-odm-data-plugin-manager.dtsi:99:                        		nvdisplay@15200000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-odm-data-plugin-manager.dtsi:107:                        		nvdisplay@15210000 {
platform/t18x/lanai/kernel-dts/common/tegra186-p3636-0001-odm-data-plugin-manager.dtsi:115:                        		nvdisplay@15220000 {

Hi,

No, you should not rely on me to share a direct answer here. Please either check your flash log or check your dmesg |grep dts to know which dts is in use. And then start to trace the code.

Such check is basic if you want to make your own custom board…

I can tell you why and how the directories/folders/naming of the source code are designed like that, but I am not able to directly tell you something like “you have to modify file xxxx”.

Thanks for your response. I see, so it is not so straightforward as changing the some nvdisplay module status to disable. It would really help me if you could you provide me with an example? If, I was running a jetson TX2 on the devkit board, how would I disable nvdisplay?

There are 3 display controllers on jetson TX2. Their register address are on 0x15200000, 0x15210000 and 0x15220000. That is what nvdisplay@xxxx means here.

What I meant was to disable these 3 in DT. As for which files to change, honestly, it could be lots of answers/ways. If you really understand how device tree works, then you would know what I want to say…

The kernel I built was 4.9.299, which is the kernel associated with Jetpack 4.6.3. Is this the wrong version?

Below is a copy of the xorg log, without the display connected, as requested.

cat /var/log/Xorg.0.log
[     9.392] (--) Log file renamed from "/var/log/Xorg.pid-5976.log" to "/var/log/Xorg.0.log"
[     9.395] 
X.Org X Server 1.19.6
Release Date: 2017-12-20
[     9.395] X Protocol Version 11, Revision 0
[     9.395] Build Operating System: Linux 5.4.0-121-generic aarch64 Ubuntu
[     9.395] Current Operating System: Linux gopher3a 4.9.299-tegra #3 SMP PREEMPT Mon Jan 23 07:33:47 PST 2023 aarch64
[     9.395] Kernel command line: console=ttyS0,115200 androidboot.presilicon=true firmware_class.path=/etc/firmware root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2  video=tegrafb earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2772e0000 gpt rootfs.slot_suffix= usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 no_console_suspend boot.slot_suffix= boot.ratchetvalues=0.2031647.1 vpr_resize bl_prof_dataptr=0x10000@0x275840000 sdhci_tegra.en_boot_part_access=1 vmalloc=512M cma=256M coherent_pool=192M root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2 
[     9.395] Build Date: 07 July 2022  05:16:29PM
[     9.396] xorg-server 2:1.19.6-1ubuntu4.11 (For technical support please see http://www.ubuntu.com/support) 
[     9.396] Current version of pixman: 0.34.0
[     9.396] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[     9.396] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[     9.396] (==) Log file: "/var/log/Xorg.0.log", Time: Thu Feb  9 17:36:01 2023
[     9.397] (==) Using config file: "/etc/X11/xorg.conf"
[     9.397] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[     9.400] (==) No Layout section.  Using the first Screen section.
[     9.400] (==) No screen section available. Using defaults.
[     9.400] (**) |-->Screen "Default Screen Section" (0)
[     9.400] (**) |   |-->Monitor "<default monitor>"
[     9.400] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[     9.400] (**) |   |-->Device "Tegra0"
[     9.400] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[     9.400] (==) Automatically adding devices
[     9.400] (==) Automatically enabling devices
[     9.400] (==) Automatically adding GPU devices
[     9.400] (==) Automatically binding GPU devices
[     9.400] (==) Max clients allowed: 256, resource mask: 0x1fffff
[     9.404] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[     9.404] 	Entry deleted from font path.
[     9.404] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[     9.404] 	Entry deleted from font path.
[     9.404] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[     9.404] 	Entry deleted from font path.
[     9.405] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[     9.405] 	Entry deleted from font path.
[     9.405] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[     9.405] 	Entry deleted from font path.
[     9.405] (==) FontPath set to:
	/usr/share/fonts/X11/misc,
	/usr/share/fonts/X11/Type1,
	built-ins
[     9.405] (==) ModulePath set to "/usr/lib/xorg/modules"
[     9.405] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[     9.405] (II) Loader magic: 0x5566513010
[     9.405] (II) Module ABI versions:
[     9.405] 	X.Org ANSI C Emulation: 0.4
[     9.405] 	X.Org Video Driver: 23.0
[     9.405] 	X.Org XInput driver : 24.1
[     9.405] 	X.Org Server Extension : 10.0
[     9.406] (++) using VT number 1

[     9.417] (II) systemd-logind: took control of session /org/freedesktop/login1/session/c1
[     9.418] (II) no primary bus or device found
[     9.418] (WW) "dri" will not be loaded unless you've specified it to be loaded elsewhere.
[     9.418] (II) "glx" will be loaded by default.
[     9.418] (II) LoadModule: "extmod"
[     9.418] (II) Module "extmod" already built-in
[     9.418] (II) LoadModule: "glx"
[     9.420] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     9.435] (II) Module glx: vendor="X.Org Foundation"
[     9.435] 	compiled for 1.19.6, module version = 1.0.0
[     9.436] 	ABI class: X.Org Server Extension, version 10.0
[     9.436] (II) LoadModule: "nvidia"
[     9.437] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[     9.450] (II) Module nvidia: vendor="NVIDIA Corporation"
[     9.450] 	compiled for 4.0.2, module version = 1.0.0
[     9.450] 	Module class: X.Org Video Driver
[     9.452] (II) NVIDIA dlloader X Driver  32.7.3  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-5494-d8000)  Tue Nov 22 09:24:32 PST 2022
[     9.452] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[     9.452] (WW) Falling back to old probe method for NVIDIA
[     9.453] (II) Loading sub module "fb"
[     9.453] (II) LoadModule: "fb"
[     9.453] (II) Loading /usr/lib/xorg/modules/libfb.so
[     9.455] (II) Module fb: vendor="X.Org Foundation"
[     9.455] 	compiled for 1.19.6, module version = 1.0.0
[     9.455] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     9.455] (II) Loading sub module "wfb"
[     9.455] (II) LoadModule: "wfb"
[     9.455] (II) Loading /usr/lib/xorg/modules/libwfb.so
[     9.458] (II) Module wfb: vendor="X.Org Foundation"
[     9.458] 	compiled for 1.19.6, module version = 1.0.0
[     9.458] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     9.458] (II) Loading sub module "ramdac"
[     9.458] (II) LoadModule: "ramdac"
[     9.458] (II) Module "ramdac" already built-in
[     9.459] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[     9.459] (II) NVIDIA(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[     9.459] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[     9.459] (==) NVIDIA(0): RGB weight 888
[     9.459] (==) NVIDIA(0): Default visual is TrueColor
[     9.459] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[     9.459] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[     9.460] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "true"
[     9.460] (**) NVIDIA(0): Enabling 2D acceleration
[     9.460] (II) Loading sub module "glxserver_nvidia"
[     9.460] (II) LoadModule: "glxserver_nvidia"
[     9.460] (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
[     9.542] (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
[     9.542] 	compiled for 4.0.2, module version = 1.0.0
[     9.542] 	Module class: X.Org Server Extension
[     9.542] (II) NVIDIA GLX Module  32.7.3  Release Build  (integ_stage_rel)  (buildbrain@mobile-u64-5494-d8000)  Tue Nov 22 09:23:55 PST 2022
[     9.555] (--) NVIDIA(0): Valid display device(s) on GPU-0 at SoC
[     9.555] (--) NVIDIA(0):     DFP-0
[     9.555] (II) NVIDIA(0): NVIDIA GPU NVIDIA Tegra X2 (nvgpu) (GP10B) at SoC (GPU-0)
[     9.555] (--) NVIDIA(0): Memory: 8046468 kBytes
[     9.555] (--) NVIDIA(0): VideoBIOS: 
[     9.555] (==) NVIDIA(0): 
[     9.555] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[     9.555] (==) NVIDIA(0):     will be used as the requested mode.
[     9.555] (==) NVIDIA(0): 
[     9.555] (--) NVIDIA(0): No enabled display devices found; starting anyway because
[     9.555] (--) NVIDIA(0):     AllowEmptyInitialConfiguration is enabled
[     9.555] (II) NVIDIA(0): Validated MetaModes:
[     9.555] (II) NVIDIA(0):     "NULL"
[     9.555] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
[     9.556] (WW) NVIDIA(0): Unable to get display device for DPI computation.
[     9.556] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
[     9.556] (--) Depth 24 pixmap format is 32 bpp
[     9.556] (II) NVIDIA: Reserving 24576.00 MB of virtual memory for indirect memory
[     9.556] (II) NVIDIA:     access.
[     9.560] (EE) NVIDIA(0): Failed to allocate NVIDIA Error Handler
[     9.560] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[     9.560] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[     9.560] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[     9.560] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[     9.560] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[     9.560] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[     9.560] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[     9.560] (II) NVIDIA(0):     Config Options in the README.
[     9.605] (II) NVIDIA(0): Setting mode "NULL"
[     9.610] (==) NVIDIA(0): Disabling shared memory pixmaps
[     9.610] (==) NVIDIA(0): Backing store enabled
[     9.610] (==) NVIDIA(0): Silken mouse enabled
[     9.611] (==) NVIDIA(0): DPMS enabled
[     9.611] (II) Loading sub module "dri2"
[     9.611] (II) LoadModule: "dri2"
[     9.611] (II) Module "dri2" already built-in
[     9.611] (II) NVIDIA(0): [DRI2] Setup complete
[     9.611] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[     9.611] (--) RandR disabled
[     9.619] (II) SELinux: Disabled on system
[     9.619] (II) Initializing extension GLX
[     9.620] (II) Indirect GLX disabled.
[     9.741] (II) config/udev: Adding input device tegra-hda HDMI/DP,pcm=3 (/dev/input/event0)
[     9.741] (II) No input driver specified, ignoring this device.
[     9.741] (II) This device may have been added with another device file.
[     9.742] (II) config/udev: Adding input device tegra-hda HDMI/DP,pcm=7 (/dev/input/event1)
[     9.742] (II) No input driver specified, ignoring this device.
[     9.742] (II) This device may have been added with another device file.
[    10.148] (II) config/udev: Adding input device gpio-keys (/dev/input/event2)
[    10.148] (**) gpio-keys: Applying InputClass "libinput keyboard catchall"
[    10.148] (II) LoadModule: "libinput"
[    10.148] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[    10.164] (II) Module libinput: vendor="X.Org Foundation"
[    10.164] 	compiled for 1.19.6, module version = 0.27.1
[    10.164] 	Module class: X.Org XInput Driver
[    10.164] 	ABI class: X.Org XInput driver, version 24.1
[    10.164] (II) Using input driver 'libinput' for 'gpio-keys'
[    10.167] (II) systemd-logind: got fd for /dev/input/event2 13:66 fd 31 paused 0
[    10.168] (**) gpio-keys: always reports core events
[    10.168] (**) Option "Device" "/dev/input/event2"
[    10.168] (**) Option "_source" "server/udev"
[    10.169] (II) event2  - gpio-keys: is tagged by udev as: Keyboard
[    10.169] (II) event2  - gpio-keys: device is a keyboard
[    10.169] (II) event2  - gpio-keys: device removed
[    10.169] (**) Option "config_info" "udev:/sys/devices/gpio-keys/input/input2/event2"
[    10.169] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 6)
[    10.169] (**) Option "xkb_model" "pc105"
[    10.170] (**) Option "xkb_layout" "gb"
[    10.170] (WW) Option "xkb_variant" requires a string value
[    10.170] (WW) Option "xkb_options" requires a string value
[    10.211] (II) event2  - gpio-keys: is tagged by udev as: Keyboard
[    10.211] (II) event2  - gpio-keys: device is a keyboard

Yes, I totally agree, as I mentioned previously, my knowledge of device trees is not great and I was hoping this would be straightforward change. I’ll need to spend time investigating this. Thanks for your help.

Sorry, I was mixing in the 4.6.3 wrong, looked like a kernel version when you meant JetPack release. But I am still confused about something from the Xorg log which seems inconsistent:

[     9.395] Build Operating System: Linux 5.4.0-121-generic aarch64 Ubuntu
[     9.395] Current Operating System: Linux gopher3a 4.9.299-tegra #3 SMP PREEMPT Mon Jan 23 07:33:47 PST 2023 aarch64

What do you see from “cat /etc/issue”? It could be nothing, but I’m thinking the “Linux 5.4.0-121-generic” seems odd when mixed with a TX2. I have an older TX2 here, and I would expect this to differ, but not necessarily via a major release:

[    13.235] Build Operating System: Linux 4.4.0-168-generic aarch64 Ubuntu
[    13.235] Current Operating System: Linux x2 4.9.140-tegra #1 SMP PREEMPT Wed Mar 13 00:30:11 PDT 2019 aarch64
1 Like

I’m not sure where the build operating system is coming from and why it is reporting Linux 5.4.0-121. cat /etc/issue reports “Ubuntu 18.04.6 LTS \n \l”

I managed to disable the hdmi-display by modifying

nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
as follows


		sor1 {
			status = "disabled";
			nvidia,active-panel = <&sor1_hdmi_display>;
			hdmi-display {
				status = "disabled";
			};
			dp-display {
				status = "disabled";
			};
		};

as described in the following post

https://forums.developer.nvidia.com/t/disable-hdmi-in-device-tree-tx2/53367

My understanding is that this file is associated with the jetson TX2.
Following the change, there were no more attempted I2C reads and this is convenient because I can make a single change to enable this again if I need to connect a monitor.

Thanks for your strong support.