HDMI Hot Plug Detect

Dear Community,

We are facing an issue on HDMI connection detection:
When the cable is connected once, the signal cable_state toggles from plugout to plugin, but when we disconnect the cable, the cable_state remains in plugin state.
Linux version: 5.4

To reproduce:

root@apalis-imx6:~# cat /sys/devices/soc0/soc.0/20e0000.hdmi_video/cable_state
plugout

Voltage : 0.16v on HPD pin 232
From iMX6 datasheet : Hot plug detect low range — 0 — 0.8 V
→ OK

root@apalis-imx6:~# cat /sys/devices/soc0/soc.0/20e0000.hdmi_video/cable_state
plugin

Voltage : 2,9v on HPD pin 232
From iMX6 datasheet : Hot plug detect high range — 2.0 — 5.3 V
→ OK

root@apalis-imx6:~# cat /sys/devices/soc0/soc.0/20e0000.hdmi_video/cable_state
plugin

Voltage : 0.16v on HPD pin 232
From iMX6 datasheet : Hot plug detect low range — 0 — 0.8 V
→ NOK

dmesg log when the monitor is connected:

root@apalis-imx6:~# [   86.462202] mxc_hdmi 20e0000.hdmi_video: Read EDID again
[   86.675867] mxc_sdc_fb fb.18: 640x480 h_sync,r,l: 96,16,48  v_sync,l,u: 2,10,33 pixclock=25175000 Hz
[   86.753395] mxc_hdmi 20e0000.hdmi_video: create default modelist
[   86.775371] mxc_sdc_fb fb.18: 640x480 h_sync,r,l: 96,16,48  v_sync,l,u: 2,10,33 pixclock=25175000 Hz
[   86.841942] mxc_sdc_fb fb.18: 1280x720 h_sync,r,l: 40,110,220  v_sync,l,u: 5,5,20 pixclock=74250000 Hz

Is that behavior known from your side ?

Br, Vincent

Hi @Vincentt,

Sorry for the delay in answering you.

I’ll try to reproduce your scenario and then I’ll come back with feedback about it.

In the meantime, can you also provide more information about your environment like:

  • Which carrier board are you using?
  • Are you using a custom Yocto BSP Build or Torizon? Please provide version.
  • The V1.1B is the Apalis iMX6 version, right? Is it the Apalis iMX6DL or iMX6Q?

Best regards,
André Curvello

Hi @andrecurvello.tx ,

  • We are using a custom carrier board
    by following Application Note for
    HDMI design.
  • We are using a custom Yocto BSP
    based on Linux 5.4 and build with
    oe-core framework
  • Toradex module used : Apalis iMX6
    V1.1B, iMX6Q model

BR,

Vincent

Hi

This is expected behaviour.

Compare with the keepalive module parameter.

You could overwrite the default from the kernel cmdline, e.g. by adding ‘mxc_hdmi.keepalive=0’ to the U-Boot vidargs variable.

Max

Hi @max.tx ,

Let me try it in the next days. Thank you for sharing your experience.

EDIT : ok, that works fine, thank you.

BR,
Vincent

You are welcome. We will wait for your results.

Excellent!

Thanks @max.tx for the advice.

Best regards,
André Curvello