[Dragonboard410C] HDMI Hot Plug Detection (HPD)


#1

Hi,

I am using Dragonboard410C latest Debian Release 16.09.

I wanted to see if HDMI Hot Plug Detection (HPD) can be enabled. I came across few blogs, wherein it is mentioned that the HDMI does not support HPD as of now.

But if it is possible, then can you please give some pointers as to how it can be done.

Thanks,
Sunny


#2

Hi,

Can anyone please let me know, if it is possible to enable the HDMI Hot-plug detection (HPD).

Thanks,
Sunny


#3

I believe it is working in 16.09 release. What makes you think it is not?


#4

@ndec I can also reproduce this issue.
HDMI does not show display correctly, if we do not insert HDMI cable before boot up.

  1. Do not insert HDMI cable
  2. Boot up device
  3. After boot complete, insert HDMI cable. Then, you can find no display is shown.

But, it’s OK if booting with HDMI cable inserted.
The same issue can be found on OE RPB 16.09.


#5

Thank you for the replies @ndec and @daniel-hung.

@ndec I have followed the same steps as @daniel-hung to confirm the HPD.

But is the behavior an expected one as mentioned by @daniel-hung ? Because, if we connect a already booted laptop to a Television which is also turned on with HDMI, this works. But same scenario is not working here.

Thanks,
Sunny


#6

Hi @ndec,

Can you please tell if the above mentioned scenario i.e. do not connect the HDMI cable while the board boots, and then once the board is booted i.e. kernel is up, then insert the HDMI cable. Does this work or is this a valid scenario to expect that the HDMI should work ?

Awaiting your reply.

Thanks,
Sunny


#7

hi,

you might refer to ADV7533(https://ez.analog.com/docs/DOC-1427) supporting zone in further.

thanks,
Jetway


#8

hi there,

sorry about delay. Yes, it is a valid scenario, and it should work (and it does for me). If you boot without HDMI plugged in, then of course the kernel won’t read the EDID and will use a default resolution. If you plug the HDMI after boot and if Xserver was already started then you will be using the ‘wrong’ resolution. But if you kill/restart X it should read EDID and start with the right resolution.

If X was not started when you plug the HDMI cable, then you can start it, and it will use the resolution from EDID.

The above applies to the Linux builds, not the Android builds. I am not familiar with the Android builds.

If you see anything different, please let us know.


#9

how to change the default resolution?


#10

The debian builds for DB410C don’t really have a default resolution. When you connect a monitor the display stack will query the monitor and select either the monitors native resolution (for DVI displays) or the “best” HDMI mode (for HDMI displays).

If your display is not getting a picture is may be because it has a bogus EDID, preventing the above from working correctly. Is there anything in your dmesg buffer about the EDID?


#11

sorry~
I mean is
When the user plugged into HDMI after boot, We can define an output value?
How to do it?
Thanks!


#12

Whether you plug in before or after boot should make no difference. The
same code is supposed to run to select the video mode. Naturally
userspace can intervene and request a new mode (DEs such as GNOME have
code to do this) but that does rely on HPD triggering.

However I’m away from my board at the moment though… so I can’t test
whether HPD is working properly.


#13

Actually, there’s a known bug that was introduced lately that causes the HDMI hotplug to not work properly.


#14

hi,

what is the known bug? hdmi display comes in proper resolution only if we restart the X server if we insert the hdmi cable postboot or change the different resolution hdmi monitors. (tested in 18.01 release)

is it not possible to restart the Xserver based on HPD of the adv chip?


#15

if you insert the HDMI post boot (and before starting X), then the kernel would have booted with no HDMI monitor, so the kernel would have selected a default resolution (800x600, from memory) for the fbconsole. When you plug HDMI, the fbconsole is not restarted, and is setup as 800x600. Now if you start X, it will detect the HDMI monitor, read the EDID and pick the ‘best’ possible resolution, hence X starts with 1080p (if you have a HD monitor).

this is all ‘expected behavior’.

you might be able to force a 1080p resolution even without a plugged monitor using https://github.com/96boards/documentation/blob/master/consumer/dragonboard410c/guides/force-display-res.md. i am not 100% sure it will work…


#16

if we change different tv/resolution monitor after posboot, it should automatically restart the xserver with the hdmi best mode. But this is missing.

is it the same behaviour in hikey board also? i have seen some discussion wrt hdmi hotplug fix for hikey.