drm/i915: Don't trust the DP_DETECT bit for eDP ports on CHV
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 9 Oct 2014 16:37:15 +0000 (19:37 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 16 Oct 2014 11:58:44 +0000 (14:58 +0300)
commite17ac6db2ef99388b750b2141c11974dc5742913
tree2febcd0c30a88a3e2f78b9903442e092f7b5af3b
parent1180e20606fd7c5d76dc5b2a1594fa51ba5a0f31
drm/i915: Don't trust the DP_DETECT bit for eDP ports on CHV

On CHV the display DDC pins may be muxed to an alternate function if
there's no need for DDC on a specific port, which is the case for eDP
ports since there's no way to plug in a DP++ HDMI dongle.

This causes problems when trying to determine if the port is present
since the the DP_DETECTED bit is the latched state of the DDC SDA pin
at boot. If the DDC pins are muxed to an alternate function the bit
may indicate that the port isn't present.

To work around this look at the VBT as well as the DP_DETECTED bit
to determine if we should attempt registering an eDP port. Do this
only for ports B and C since port D doesn't support eDP (no PPS/BLC).

In theory someone could also wire up a normal DP port w/o DDC lines.
That would just mean that simple DP++ HDMI dongles wouldn't work
on such a port. With this change we would still fail to register
such DP ports. But let's hope no one wires their board in such a way,
and if they do we can extend the VBT checks to cover normal DP ports
as well.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84265
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_display.c