Display Port Address Problem on Jetston TX2 with JetPack 3.2.1

Hello,

I had the display port working on my custom board with JetPack 3.2. Now I’m trying to use JetPack 3.2.1 and the display port isn’t working. I’m using display port 0 at nvdisplay@1520000, but in the syslogs, when I plug in or unplug the display port, the status messages are report 15210000. I’m using the stock tegra186-quill-p3310-1000-a00-00-dp-primary.dtb

*UNPLUG*
tegradc 15210000.nvdisplay: dp: unplug event received
Jun 22 12:12:54 custom-board-v1 kernel: [  721.352467] hpd: state 3 (Disabled), hpd 0, pending_hpd_evt 1
Jun 22 12:12:54 custom-board-v1 kernel: [  721.358326] hpd: switching from state 3 (Disabled) to state 0 (Reset)
Jun 22 12:12:54 custom-board-v1 kernel: [  721.402216] hpd: state 0 (Reset), hpd 0, pending_hpd_evt 0
Jun 22 12:12:54 custom-board-v1 kernel: [  721.407779] tegradc 15210000.nvdisplay: blank - powerdown
Jun 22 12:12:54 custom-board-v1 kernel: [  721.413350] hpd: hpd_switch 0
Jun 22 12:12:54 custom-board-v1 kernel: [  721.416762] hpd: switching from state 0 (Reset) to state 1 (Check Plug)
Jun 22 12:12:54 custom-board-v1 kernel: [  721.426189] tegradc 15210000.nvdisplay: blank - powerdown
Jun 22 12:12:54 custom-board-v1 kernel: [  721.431711] tegradc 15210000.nvdisplay: unblank
Jun 22 12:12:54 custom-board-v1 kernel: [  721.436333] tegradc 15210000.nvdisplay: unblank
Jun 22 12:12:54 custom-board-v1 kernel: [  721.440930] hpd: state 1 (Check Plug), hpd 0, pending_hpd_evt 0
Jun 22 12:12:54 custom-board-v1 kernel: [  721.440942] hpd: switching from state 1 (Check Plug) to state 3 (Disabled)

*PLUG IN*
Jun 22 12:13:08 custom-board-v1 kernel: [  735.896460] tegradc 15210000.nvdisplay: dp: plug event received
Jun 22 12:13:08 custom-board-v1 kernel: [  735.902528] hpd: state 3 (Disabled), hpd 1, pending_hpd_evt 1
Jun 22 12:13:08 custom-board-v1 kernel: [  735.908389] hpd: switching from state 3 (Disabled) to state 0 (Reset)
Jun 22 12:13:08 custom-board-v1 kernel: [  735.954291] hpd: state 0 (Reset), hpd 1, pending_hpd_evt 0
Jun 22 12:13:08 custom-board-v1 kernel: [  735.959860] tegradc 15210000.nvdisplay: blank - powerdown
Jun 22 12:13:08 custom-board-v1 kernel: [  735.965390] hpd: hpd_switch 0
Jun 22 12:13:08 custom-board-v1 kernel: [  735.968695] hpd: switching from state 0 (Reset) to state 1 (Check Plug)
Jun 22 12:13:08 custom-board-v1 kernel: [  735.978553] tegradc 15210000.nvdisplay: blank - powerdown
Jun 22 12:13:08 custom-board-v1 kernel: [  735.984128] tegradc 15210000.nvdisplay: unblank
Jun 22 12:13:08 custom-board-v1 kernel: [  735.986202] hpd: state 1 (Check Plug), hpd 1, pending_hpd_evt 0
Jun 22 12:13:08 custom-board-v1 kernel: [  735.986213] hpd: switching from state 1 (Check Plug) to state 2 (Check EDID)
Jun 22 12:13:08 custom-board-v1 kernel: [  736.001852] tegradc 15210000.nvdisplay: unblank
Jun 22 12:13:08 custom-board-v1 kernel: [  736.046240] hpd: state 2 (Check EDID), hpd 1, pending_hpd_evt 0
Jun 22 12:13:08 custom-board-v1 kernel: [  736.053002] tegradc 15210000.nvdisplay: dp: aux write retry (0x10000100) -- 1
Jun 22 12:13:08 custom-board-v1 kernel: [  736.074950] tegradc 15210000.nvdisplay: blank - powerdown
Jun 22 12:13:08 custom-board-v1 kernel: [  736.080765] hpd: Display connected, hpd_switch 1
Jun 22 12:13:08 custom-board-v1 kernel: [  736.085460] hpd: switching from state 2 (Check EDID) to state 4 (Enabled)
Jun 22 12:13:08 custom-board-v1 kernel: [  736.105190] tegradc 15210000.nvdisplay: blank - powerdown
Jun 22 12:13:08 custom-board-v1 kernel: [  736.110944] tegradc 15210000.nvdisplay: unblank
Jun 22 12:13:08 custom-board-v1 kernel: [  736.110967] PD DISP0 index2 UP
Jun 22 12:13:08 custom-board-v1 kernel: [  736.112191] PD DISP1 index3 UP
Jun 22 12:13:08 custom-board-v1 kernel: [  736.112326] PD DISP2 index4 UP
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114045] regulator_get() failed for (15210000.nvdisplay,vdd-dp-pwr), -19
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114054] tegradc 15210000.nvdisplay: dp: couldn't get regulator vdd-dp-pwr
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114069] regulator_get() failed for (15210000.nvdisplay,avdd-dp-pll), -19
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114075] tegradc 15210000.nvdisplay: dp: couldn't get regulator avdd-dp-pll
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114089] regulator_get() failed for (15210000.nvdisplay,vdd-edp-sec-mode), -19
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114096] tegradc 15210000.nvdisplay: dp: couldn't get regulator vdd-edp-sec-mode
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114109] regulator_get() failed for (15210000.nvdisplay,vdd-dp-pad), -19
Jun 22 12:13:08 custom-board-v1 kernel: [  736.114115] tegradc 15210000.nvdisplay: dp: couldn't get regulator vdd-dp-pad
Jun 22 12:13:11 custom-board-v1 kernel: [  736.114917] Parent Clock set for DC plld3
Jun 22 12:13:11 custom-board-v1 kernel: [  736.128571] dp lt: state 4 (link training fail/disable), hpd 1, pending_lt_evt 1
Jun 22 12:13:11 custom-board-v1 kernel: [  736.128579] dp lt: switching from state 4 (link training fail/disable) to state 0 (Reset)
Jun 22 12:13:11 custom-board-v1 kernel: [  736.128593] dp lt: state 0 (Reset), hpd 1, pending_lt_evt 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.129760] dp lt: switching from state 0 (Reset) to state 2 (clock recovery)
Jun 22 12:13:11 custom-board-v1 kernel: [  736.129776] dp lt: state 2 (clock recovery), hpd 1, pending_lt_evt 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.129986] dp lt: config: lane 0: vs level: 0, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.130003] dp lt: config: lane 1: vs level: 0, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.130019] dp lt: config: lane 2: vs level: 0, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.130035] dp lt: config: lane 3: vs level: 0, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.130043] dp lt: tx_pu: 0x22
Jun 22 12:13:11 custom-board-v1 kernel: [  736.131241] dp lt: CR done
Jun 22 12:13:11 custom-board-v1 kernel: [  736.131247] dp lt: switching from state 2 (clock recovery) to state 3 (channel equalization)
Jun 22 12:13:11 custom-board-v1 kernel: [  736.131262] dp lt: state 3 (channel equalization), hpd 1, pending_lt_evt 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.132880] dp lt: CE not done
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133451] dp lt: new config: lane 0: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133455] dp lt: new config: lane 1: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133459] dp lt: new config: lane 2: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133463] dp lt: new config: lane 3: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133480] dp lt: config: lane 0: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133496] dp lt: config: lane 1: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 rsyslogd-2007: action 'action 9' suspended, next retry is Fri Jun 22 12:14:11 2018 [v8.16.0 try http://www.rsyslog.com/e/2007 ]
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133512] dp lt: config: lane 2: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133527] dp lt: config: lane 3: vs level: 1, pe level: 0, pc2 level: 0
Jun 22 12:13:11 custom-board-v1 kernel: [  736.133534] dp lt: tx_pu: 0x33
Jun 22 12:13:11 custom-board-v1 kernel: [  736.134145] dp lt: CE retry
Jun 22 12:13:11 custom-board-v1 kernel: [  736.134151] dp lt: switching from state 3 (channel equalization) to state 3 (channel equalization)
Jun 22 12:13:11 custom-board-v1 kernel: [  736.134207] dp lt: state 3 (channel equalization), hpd 1, pending_lt_evt 0

I checked the device tree and verified that

:/proc/device-tree/host1x$ cat nvdisplay@15200000/status 
okay
ubuntu@akhita-v1
:/proc/device-tree/host1x$ cat nvdisplay@15210000/status 
disabled

Any idea what is going on?

Visionear,

You mentioned Jetpack3.2. Do you mean your display was good on jetpack3.2?

Could you check the whole structure in device tree is as expectation? That is, the nvidisplay@1520000 is using dc-or-node = /host1x/sor and sor has a “dp-display” node under it. Also, the status of dpaux should be okay.

Do you use a correct way to update your device-tree? Could you tell how you update the dtb?

The display port works when I use the JetPack 3.2 but now when I use JetPack 3.2.1. I’m guessing I’m missing a file or configuration from my custom BSP. But using a diff has not revealed any differences.

This is the command I’m using to update my dtb

sudo ./flash.sh -d kernel/dtb/tegra186-quill-p3310-1000-c03-00-dp-primary.dtb -k kernel-dtb jetson-tx2 mmcblk0p1

The device tree is reporting

/proc/device-tree/host1x/nvdisplay@15200000 :
     status = okay
     nvidia,dc-or-node = /host1x/sor
/proc/device-tree/host1x/nvdisplay@15210000 :
     status = disabled
     nvidia,dc-or-node = /host1x/sor1
/proc/device-tree/host1x/nvdisplay@15220000 :
     status = disabled
     nvidia,dc-or-node = /host1x/sor
/proc/device-tree/host1x/dpaux@15040000 :
     status = disabled
     name = dpaux
/proc/device-tree/host1x/dpaux@155c0000 :
     status = okay
     name = dpaux

$ ls /proc/device-tree/host1x/sor
bootloader-status  clocks      dp-display    name		 nvidia,hpd-gpio   pad-controllers  panel-a-edp-1080p-14-0  prod-settings  reset-names	status
clock-names	   compatible  hdmi-display  nvidia,ddc-i2c-bus  nvidia,xbar-ctrl  pad-names	    panel-s-edp-uhdtv-15-6  reg		   resets

I have also tried enabled dpaux@15040000 to no effect.

I tried to revert to my 3.2 configuration re-flashed the 3.2 dtb and u-boot, and put on the 3.2 kernel, and now the DP still doesn’t work. Is there any software configuration, dtb, pinmux, or other that could have cause a hardware fault, and thus kill the DP port?

Another thing to note, is that the display wakes up, and then says there isn’t any signal on the dp port, and then goes back to sleep, when the Jetson is booted.

The problem appears to have nothing to do with JetPack versions. The problem appears to be with some interaction with the ASUS monitor. The display port worked with a DELL monitor. Then I removed power from the ASUS monitor and it started working again.

Thanks for your help.