On Fri, Jan 08, 2016 at 10:02:07AM +0100, Philipp Zabel wrote:
Due to the voltage divider on the HPD line, the HDMI connector on imx6q-sabrelite doesn't reliably detect connected DVI monitors. This patch allows to use the RX_SENSE signals as a workaround when enabled by a boolean device tree property 'hpd-unreliable'.
There's a got-cha here. On iMX6S, the RXSENSE interrupts bounce around madly if the HDMI interface is not fully configured. I've seen this many times at boot time (I've been carrying a patch which reports the HPD/RXSENSE state to the kernel log for a long time now, it can be rather noisy.)
It's also out-of-spec for reading the EDID: the EDID is only valid when HPD is asserted. When HPD is deasserted, the EDID may not be accessible. Using RXSENSE opens a window where the EDID may be unavailable, or may be mid-way through being updated depending on how the sink hardware works.
With a Yamaha RX-V677 AV receiver and a Panasonic TV, I've observed this:
initial(-rxsense,-hpd), AV standby, TV standby. Connected to AV: +rxsense, +hpd EDID reads from AV TV standby->on: -hpd, 2s, +hpd EDID reads from TV AV standby->on: -hpd, 1.2s, +hpd EDID reads combined TV/AV AV on->standby: -hpd, 1.2s, +hpd EDID reads from TV
Note that RXSENSE did not drop, but the EDID changed, and that change was properly signalled via HPD according to the HDMI standard.