drm/i915: Don't register CRT connector when it's fused off
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 20 Nov 2015 20:35:41 +0000 (22:35 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 24 Nov 2015 14:23:44 +0000 (16:23 +0200)
commit6c03a6bd0dd836db388feb28fda1868037491ee7
treeb635bae9558f799d92833f94450f7e70a36cceb1
parent9bbc8258ae5914af1986561767d971417cee7a28
drm/i915: Don't register CRT connector when it's fused off

On some machines the CRT connector may be fused off. The weird thing
about this setup is that the ADPA register works otherwise normally,
except the enable bit is hardwired to 0. No one knows of any fuse
register that would tell us if this is the case, so the only thing we
can do (apart from a blacklist) is to try and set the enable bit and see
if it sticks. If not, we don't register the connector at all. Obviously
if the bit is already set when loading the driver we can just assume it
works.

I've smoke tested this approach on several machines (GMCH and PCH),
some with actual CRT connectors, some with shadow connectors, and
obviously the machine (IVB) with the fused off connector. So far
I've not seen any ill effects from this probe.

The main benefit is that we can actually run igt on machines with
fused off connectors, without totally upsetting the state checker.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1448051741-22771-1-git-send-email-ville.syrjala@linux.intel.com
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_crt.c