HDMI Signal after about 90 seconds with 7"Chalkboard Capacitive Touch

Hello

I am using my Jetson with the 7" Capacitive Touch Display from Chalkboard electronics and I ran into some troubles. ( http://www.chalk-elec.com/?page_id=1283#!/7-open-frame-universal-HDMI-LCD-with-capacitive-multi-touch/p/21750207 )

When connecting the Jetson to the display via HDMI, at first there is no image on the display. When I wait long enough ( about 90 to 100 seconds) the image appears. This happens if I hotplug the screen as well as boot the Jetson with the screen connected.

From my research up to now, I suspect it has something to do with the EDID settings of the Screen but I did not find any viable solution for me =/

This is the output of my latest dmesg log, when I disconnected and connected the screen:

[  625.782564] tegra_dc_hdmi_irq: start
[  625.782905] tegra_dc_hdmi_irq: end
[  625.783663] hdmi_state_machine_worker (tid eb96c0c0): state 4 (Enabled), hpd 0, pending_hpd_evt 1
[  625.783816] hdmi_state_machine_set_state_l: switching from state 4 (Enabled) to state 5 (Wait for HPD reassert)
[  627.289590] hdmi_state_machine_worker (tid eb96c0c0): state 5 (Wait for HPD reassert), hpd 0, pending_hpd_evt 0
[  627.289800] hdmi_state_machine_set_state_l: switching from state 5 (Wait for HPD reassert) to state 0 (Reset)
[  627.290481] hdmi_state_machine_worker (tid eb96c0c0): state 0 (Reset), hpd 0, pending_hpd_evt 0
[  627.299760] hdmi_disable_l: audio_switch 0
[  627.300679] hdmi_disable_l: hpd_switch 0
[  627.300789] HDMI from connected to disconnected
[  627.311573] hdmi_state_machine_set_state_l: switching from state 0 (Reset) to state 1 (Check Plug)
[  627.321060] hdmi_state_machine_worker (tid eb96c0c0): state 1 (Check Plug), hpd 0, pending_hpd_evt 0
[  627.321089] hdmi_disable_l: audio_switch 0
[  627.321096] hdmi_disable_l: hpd_switch 0
[  627.321105] hdmi_state_machine_set_state_l: switching from state 1 (Check Plug) to state 3 (Disabled)
[  627.731783] p,wuxga-10-1 panel dt support not available
[  628.015644] tegradc tegradc.0: nominal-pclk:154679000 parent:464000000 div:3.0 pclk:154666666 153132210~168600110
[  628.083411] tegradc tegradc.0: DSI pad calibration done
[  630.650583] tegra_dc_hdmi_irq: start
[  630.650595] tegra_dc_hdmi_irq: end
[  630.650606] hdmi_state_machine_worker (tid eb96c0c0): state 3 (Disabled), hpd 1, pending_hpd_evt 1
[  630.650610] hdmi_state_machine_set_state_l: switching from state 3 (Disabled) to state 0 (Reset)
[  630.689903] hdmi_state_machine_worker (tid eb96c0c0): state 0 (Reset), hpd 1, pending_hpd_evt 0
[  630.689910] hdmi_disable_l: audio_switch 0
[  630.689912] hdmi_disable_l: hpd_switch 0
[  630.689916] hdmi_state_machine_set_state_l: switching from state 0 (Reset) to state 1 (Check Plug)
[  630.699919] hdmi_state_machine_worker (tid eb96c0c0): state 1 (Check Plug), hpd 1, pending_hpd_evt 0
[  630.699924] hdmi_state_machine_set_state_l: switching from state 1 (Check Plug) to state 2 (Check EDID)
[  630.759904] hdmi_state_machine_worker (tid eb96c0c0): state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[  630.785803] panel size 115 by 65
[  630.785979] handle_check_edid_l: audio_switch 1
[  630.785991] Display connected, hpd_switch 1
[  630.786000] hdmi_state_machine_set_state_l: switching from state 2 (Check EDID) to state 4 (Enabled)
[  630.786010] hdmi_state_machine_worker (tid eb96c0c0): state 4 (Enabled), hpd 1, pending_hpd_evt 0
[  630.786135] mc-err: [mcerr] (dcb) csr_display0ab: EMEM decode error on PDE or PTE entry
[  630.794119] mc-err: [mcerr]   status = 0x60044002; addr = 0x00753d00
[  630.800281] mc-err: [mcerr]   secure: no, access-type: read, SMMU fault: nr-nw-s
[  630.838445] tegradc tegradc.1: nominal-pclk:82176000 parent:244000000 div:3.0 pclk:81333333 81354240~89571840
[  630.838452] tegradc tegradc.1: pclk out of range!
[  630.847500] tegradc tegradc.1: tegra_dc_init: tegra_dc_program_mode failed
[  630.847557] tegradc tegradc.1: _tegra_dc_controller_enable: tegra_dc_init failed
[  630.957027] p,wuxga-10-1 panel dt support not available
[  631.236402] tegradc tegradc.0: nominal-pclk:154679000 parent:464000000 div:3.0 pclk:154666666 153132210~168600110
[  631.375203] tegradc tegradc.0: DSI pad calibration done
[  631.532595] tegradc tegradc.1: nominal-pclk:148500000 parent:594000000 div:4.0 pclk:148500000 147015000~161865000
[  631.536128] tegra_dc_hdmi_enable: HDMI clock already configured to target frequency, skipping clk setup.
[  631.536187] mc-err: [mcerr] (dcb) csr_display0ab: EMEM decode error on PDE or PTE entry
[  631.536192] mc-err: [mcerr]   status = 0x60000002; addr = 0x00010000
[  631.536192] mc-err: [mcerr]   secure: no, access-type: read, SMMU fault: nr-nw-s
[  631.544235] mc-err: [mcerr] (dcb) csr_display0ab: EMEM decode error on PDE or PTE entry
[  631.544238] mc-err: [mcerr]   status = 0x60007002; addr = 0x000961c0
[  631.544238] mc-err: [mcerr]   secure: no, access-type: read, SMMU fault: nr-nw-s
[  631.544243] mc-err: [mcerr] (dcb) csr_display0ab: EMEM decode error on PDE or PTE entry
[  631.544246] mc-err: [mcerr]   status = 0x60046002; addr = 0x00373f80
[  631.544246] mc-err: [mcerr]   secure: no, access-type: read, SMMU fault: nr-nw-s
[  631.544251] mc-err: [mcerr] (dcb) csr_display0ab: EMEM decode error on PDE or PTE entry
[  631.544253] mc-err: [mcerr]   status = 0x60046002; addr = 0x003bdf80
[  631.544254] mc-err: [mcerr]   secure: no, access-type: read, SMMU fault: nr-nw-s
[  631.544259] mc-err: Too many MC errors; throttling prints

This is the EDID Parse:

This is read-edid version 3.0.1. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
1 potential busses found: 3
256-byte EDID successfully retrieved from i2c bus 3
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
        Identifier "EP-HDMI-RX"
        ModelName "EP-HDMI-RX"
        VendorName "EXP"
        # Monitor Manufactured week 0 of 2004
        # EDID version 1.3
        # Digital Display
        DisplaySize 1150 650
        Gamma 2.20
        Option "DPMS" "true"
        Horizsync 15-46
        VertRefresh 59-61
        # Maximum pixel clock is 80MHz

        #Extension block found. Parsing...
        Modeline        "Mode 2" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
        Modeline        "Mode 0" 82.17 1280 1390 1430 1650 800 805 810 830 +hsync +vsync
        Modeline        "Mode 1" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
        Modeline        "Mode 3" 74.25 1920 2008 2052 2200 540 542 547 562 +hsync +vsync interlace
        Modeline        "Mode 4" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
        Modeline        "Mode 5" 74.25 1920 2448 2492 2640 540 542 547 562 +hsync +vsync interlace
        Option "PreferredMode" "Mode 2"
EndSection

I am totally out of Ideas =/ any help would be greatly appreciated!

Thanks and best regards
Gerald

There would normally be a lot of state change log messages, but I do not know about the mc-err messages, I have not encountered that.

If the edid-parse succeeded (and it looks like it did) there may be something in the configuration found which X11 is unable to deal with. Normally I would think of parse-edid catching a new monitor’s data scheme as some fringe case where it did not parse correctly, or the inverse where correct parse means X11 should handle it. My suspicion is therefore that the “Monitor” section itself (and not the binary format decode) has something at issue.

One test possibility is to tell the /etc/X11/xorg.conf to use this specific Monitor data and ignore automated probing of monitor. Normally you will see this in the xorg.conf:

Section "Monitor"
   Identifier "DSI-0"
   Option    "Ignore"
EndSection

Try to mouse copy and paste the Monitor section of the parse-edid as a replacement of the small default Monitor section. See if the error changes. Also check the Xorg.0.log while the system runs and fails to see what it says.

I have tried this approach different times, as it is suggested by many other forum posts. But it does not help =/

I now also tried different Firmware Versions from the manufacturer. Unfortunately I cannot get the display to work any more, at all.

When connecting it to a laptop with Xubuntu it works (Display + Touch) as well as with a Raspberry PI (also Display + Touch)

But at the moment there is no way to get the display working with the Jetson. =( The manufacturer suggested it is a hardware problem, and I am currently in communication about that, so I will keep you updated on that. The strange thing though is that the get-edid command results in an output indicating that the display is recognized but no image appears on it.

This is an output of the “sudo get-edid | parse-edid” command:

ubuntu@tegra-ubuntu:~$ sudo get-edid | parse-edid
This is read-edid version 3.0.1. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
1 potential busses found: 3
256-byte EDID successfully retrieved from i2c bus 3
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
        Identifier "EP-HDMI-RX"
        ModelName "EP-HDMI-RX"
        VendorName "EXP"
        # Monitor Manufactured week 0 of 2004
        # EDID version 1.3
        # Digital Display
        DisplaySize 1150 650
        Gamma 2.20
        Option "DPMS" "true"
        Horizsync 15-46
        VertRefresh 59-61
        # Maximum pixel clock is 80MHz

        #Extension block found. Parsing...
        Modeline        "Mode 2" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
        Modeline        "Mode 0" 82.17 1280 1390 1430 1650 800 805 810 830 +hsync +vsync
        Modeline        "Mode 1" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync
        Modeline        "Mode 3" 74.25 1920 2008 2052 2200 540 542 547 562 +hsync +vsync interlace
        Modeline        "Mode 4" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
        Modeline        "Mode 5" 74.25 1920 2448 2492 2640 540 542 547 562 +hsync +vsync interlace
        Option "PreferredMode" "Mode 2"
EndSection

Also the display triggers differnt dmesg outputs depending on when it is connected.

If the jetson is started with the display connected the “dmesg” command produces following output:

[   13.672020] tegradc tegradc.0: nominal-pclk:154679000 parent:464000000 div:3.0 pclk:154666666 153132210~168600110
[   13.761670] tegradc tegradc.0: DSI pad calibration done
[   13.831212] tegradc tegradc.1: nominal-pclk:82176000 parent:244000000 div:3.0 pclk:81333333 81354240~89571840
[   13.831237] tegradc tegradc.1: pclk out of range!
[   13.831325] tegradc tegradc.1: tegra_dc_init: tegra_dc_program_mode failed
[   13.832127] tegradc tegradc.1: _tegra_dc_controller_enable: tegra_dc_init failed
[   13.853431] tegradc tegradc.1: nominal-pclk:82176000 parent:244000000 div:3.0 pclk:81333333 81354240~89571840
[   13.853459] tegradc tegradc.1: pclk out of range!
[   13.853487] tegradc tegradc.1: tegra_dc_init: tegra_dc_program_mode failed
[   13.854532] tegradc tegradc.1: _tegra_dc_controller_enable: tegra_dc_init failed
[   15.119348] r8169 0000:01:00.0 eth0: link up
[   15.119375] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   16.780284] HDMI: No HDMI device connected
[   16.840949] HDMI: No HDMI device connected
[   17.432779] nvmap_background_zero_allocator: PP alloc thread starting.
[   17.903101] HDMI: No HDMI device connected
[   19.437567] HDMI: No HDMI device connected
[   21.033281] NOHZ: local_softirq_pending 100
[   21.033454] NOHZ: local_softirq_pending 202
[   21.424394] HDMI: No HDMI device connected
[   23.490144] HDMI: No HDMI device connected
[   23.523648] HDMI: No HDMI device connected
[   25.494405] HDMI: No HDMI device connected
[   27.421780] HDMI: No HDMI device connected
[   29.483637] HDMI: No HDMI device connected
[   31.481540] HDMI: No HDMI device connected

And if the display is connected after the Jetson is started (hot plug) the “dmesg” command produces following output:

[  139.031329] tegra_dc_hdmi_irq: start
[  139.031982] tegra_dc_hdmi_irq: end
[  139.033785] hdmi_state_machine_worker (tid ee0a2a80): state 4 (Enabled), hpd 0, pending_hpd_evt 1
[  139.033950] hdmi_state_machine_set_state_l: switching from state 4 (Enabled) to state 5 (Wait for HPD reassert)
[  140.537611] hdmi_state_machine_worker (tid ee0a2a80): state 5 (Wait for HPD reassert), hpd 0, pending_hpd_evt 0
[  140.537672] hdmi_state_machine_set_state_l: switching from state 5 (Wait for HPD reassert) to state 0 (Reset)
[  140.537730] hdmi_state_machine_worker (tid ee0a2a80): state 0 (Reset), hpd 0, pending_hpd_evt 0
[  140.537933] hdmi_disable_l: audio_switch 0
[  140.538051] hdmi_disable_l: hpd_switch 0
[  140.538079] HDMI from connected to disconnected
[  140.543602] hdmi_state_machine_set_state_l: switching from state 0 (Reset) to state 1 (Check Plug)
[  140.553721] hdmi_state_machine_worker (tid ee0a2a80): state 1 (Check Plug), hpd 0, pending_hpd_evt 0
[  140.553744] hdmi_disable_l: audio_switch 0
[  140.553749] hdmi_disable_l: hpd_switch 0
[  140.553755] hdmi_state_machine_set_state_l: switching from state 1 (Check Plug) to state 3 (Disabled)
[  140.933650] p,wuxga-10-1 panel dt support not available
[  141.217075] tegradc tegradc.0: nominal-pclk:154679000 parent:464000000 div:3.0 pclk:154666666 153132210~168600110
[  141.322077] tegradc tegradc.0: DSI pad calibration done
[  141.809230] p,wuxga-10-1 panel dt support not available
[  142.091242] tegradc tegradc.0: nominal-pclk:154679000 parent:464000000 div:3.0 pclk:154666666 153132210~168600110
[  142.167777] tegradc tegradc.0: DSI pad calibration done
[  143.881130] HDMI: No HDMI device connected
[  150.297806] tegra_dc_hdmi_irq: start
[  150.298157] tegra_dc_hdmi_irq: end
[  150.298895] hdmi_state_machine_worker (tid ee0a2a80): state 3 (Disabled), hpd 1, pending_hpd_evt 1
[  150.299043] hdmi_state_machine_set_state_l: switching from state 3 (Disabled) to state 0 (Reset)
[  150.339341] hdmi_state_machine_worker (tid ee0a2a80): state 0 (Reset), hpd 1, pending_hpd_evt 0
[  150.341708] hdmi_disable_l: audio_switch 0
[  150.341841] hdmi_disable_l: hpd_switch 0
[  150.341988] hdmi_state_machine_set_state_l: switching from state 0 (Reset) to state 1 (Check Plug)
[  150.351964] hdmi_state_machine_worker (tid ee0a2a80): state 1 (Check Plug), hpd 1, pending_hpd_evt 0
[  150.352162] hdmi_state_machine_set_state_l: switching from state 1 (Check Plug) to state 2 (Check EDID)
[  150.412302] hdmi_state_machine_worker (tid ee0a2a80): state 2 (Check EDID), hpd 1, pending_hpd_evt 0
[  150.441408] panel size 115 by 65
[  150.462776] handle_check_edid_l: audio_switch 1
[  150.474402] Display connected, hpd_switch 1
[  150.474419] hdmi_state_machine_set_state_l: switching from state 2 (Check EDID) to state 4 (Enabled)
[  150.474470] hdmi_state_machine_worker (tid ee0a2a80): state 4 (Enabled), hpd 1, pending_hpd_evt 0
[  150.474660] mc-err: [mcerr] (dcb) csr_display0ab: EMEM decode error on PDE or PTE entry
[  150.482651] mc-err: [mcerr]   status = 0x60046002; addr = 0x019ec980
[  150.488816] mc-err: [mcerr]   secure: no, access-type: read, SMMU fault: nr-nw-s
[  150.496419] mc-err: [mcerr] (dcb) csr_display0ab: EMEM decode error on PDE or PTE entry
[  150.504404] mc-err: [mcerr]   status = 0x60007002; addr = 0x02197fc0
[  150.510568] mc-err: [mcerr]   secure: no, access-type: read, SMMU fault: nr-nw-s
[  150.545705] tegradc tegradc.1: nominal-pclk:82176000 parent:244000000 div:3.0 pclk:81333333 81354240~89571840
[  150.545719] tegradc tegradc.1: pclk out of range!
[  150.550836] tegradc tegradc.1: tegra_dc_init: tegra_dc_program_mode failed
[  150.550951] tegradc tegradc.1: _tegra_dc_controller_enable: tegra_dc_init failed
[  150.700757] p,wuxga-10-1 panel dt support not available
[  150.982069] tegradc tegradc.0: nominal-pclk:154679000 parent:464000000 div:3.0 pclk:154666666 153132210~168600110
[  151.088081] tegradc tegradc.0: DSI pad calibration done
[  151.608921] p,wuxga-10-1 panel dt support not available
[  151.890078] tegradc tegradc.0: nominal-pclk:154679000 parent:464000000 div:3.0 pclk:154666666 153132210~168600110
[  151.955770] tegradc tegradc.0: DSI pad calibration done
[  152.020947] tegradc tegradc.1: nominal-pclk:82176000 parent:244000000 div:3.0 pclk:81333333 81354240~89571840
[  152.020971] tegradc tegradc.1: pclk out of range!
[  152.020997] tegradc tegradc.1: tegra_dc_init: tegra_dc_program_mode failed
[  152.021502] tegradc tegradc.1: _tegra_dc_controller_enable: tegra_dc_init failed
[  152.030047] tegradc tegradc.1: nominal-pclk:82176000 parent:244000000 div:3.0 pclk:81333333 81354240~89571840
[  152.030067] tegradc tegradc.1: pclk out of range!
[  152.030089] tegradc tegradc.1: tegra_dc_init: tegra_dc_program_mode failed
[  152.030519] tegradc tegradc.1: _tegra_dc_controller_enable: tegra_dc_init failed

In the meantime? Is there anyone else here who purchased and used the 7" Chalboard Capacitive Touch Display? Any experience?

Thanks

It probably doesn’t help much, but one thing I see in common within the logs and which is indirectly the cause of failure is that the pixel clock (pclk) always shows out of range. Normally the listings returned with EDID would have at least one resolution with a pixel clock which is acceptable. Back in the days of VGA with no EDID/DDC this would typically be the case when trying to set too high of a scan rate on too large of a resolution…but I can actually see the possibility on video hardware designed for fast and large displays to actually fail when a small touchscreen has an odd low resolution mode. I can’t convert modelines in my head, but I’d suggest checking if there is a published list of resolutions which the manufacturer claims to work.

Thanks for your suggestion linuxdev. Yesterday a collegue helped me and together we were able to bring the display at least back to life. I used the exact xconf configuration as Rentheil used with his display in his thread. https://devtalk.nvidia.com/default/topic/800294/?comment=4411244

This brought the display back to life, allthough with a very poor solution =/ the maximum solution I can get it to work with is 1024x768 and it still has the 90 seconds delay. But at least I can use it again.

I already emailed the manufacturer and asked if they have a xconf file with proven resolution values, since they ought to have tested it in their company ^^ and if they do not have that, maybe they now a proven resolution.

IN the meantime I will try to connect the display to other ubuntu systems to see if it works there and try to extract the xconf/EDID parameters. Does now work with a PI though =/

I will keep you updated ;)