]> git.karo-electronics.de Git - karo-tx-linux.git/commit
drm: bridge/dw_hdmi: add connector mode forcing
authorRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 5 Jun 2015 14:25:08 +0000 (15:25 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 6 Oct 2015 18:58:55 +0000 (19:58 +0100)
commit381f05a7a8428c84483d6bbd0aa3f4ced463c278
treec1eaeb285514eb8ea1328eb4aa30d31649368c2c
parente80b9f4eea2649f67edc05d4f2e7ddc250f91453
drm: bridge/dw_hdmi: add connector mode forcing

When connected to HDMI sources, some DVI monitors de-assert their HPD
signal and TDMS loads for one seconds every four seconds when there is
no signal present on the connection.

Unfortunately, this behaviour is indistinguishable from a proper HDMI
setup with an AV receiver in the path to the display: the HDMI spec
requires us to detect HPD deassertions as short as 100ms, which indicate
that the EDID has changed.

Since it is possible to connect a DVI monitor to an AV receiver and then
to a HDMI source, merely working around this by detecting the lack of
HDMI vendor block in the EDID is insufficient - the AV receiver is at
liberty to modify the EDID as it sees fit, and it will place its own
parameters into the EDID including the HDMI vendor block.

DRM has support for forcing the state of a connector, which we should
implement to allow us to work around these broken DVI monitors - we can
tell DRM to force the connection state to indicate that there is always
a device connected to work around this problem.  Although this requires
manual configuration, it is better than nothing at all.

When a forced connection state has been set, there is no point handling
our RXSENSE interrupts, so disable them in this circumstance.

Tested-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpu/drm/bridge/dw_hdmi.c