drm/i915: Don't register the CRT connector when it's fused off on LPT-H
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 1 Dec 2015 21:28:55 +0000 (23:28 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 2 Dec 2015 09:23:32 +0000 (11:23 +0200)
LPT-H has a strap bit for fused off CRT block. Check it to see if
we should register the CRT connector or not. Supposedly this also
forces the ADAP enable bit to 0, so the detection we added in
commit 6c03a6bd0dd8 ("drm/i915: Don't register CRT connector when it's fused off")
should already catch it, but checking the fuse bit should at least
do no harm.

v2: Use HAS_PCH_LPT_H() (Paulo)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1449005335-15192-1-git-send-email-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c

index 04439e888380a57a4e93a3bf0b9342ff057cf949..d326c54ff6671eacbecdf6c83bf1b9e22f79dbc7 100644 (file)
@@ -7556,6 +7556,7 @@ enum skl_disp_power_wells {
 #define SFUSE_STRAP                    _MMIO(0xc2014)
 #define  SFUSE_STRAP_FUSE_LOCK         (1<<13)
 #define  SFUSE_STRAP_DISPLAY_DISABLED  (1<<7)
+#define  SFUSE_STRAP_CRT_DISABLED      (1<<6)
 #define  SFUSE_STRAP_DDIB_DETECTED     (1<<2)
 #define  SFUSE_STRAP_DDIC_DETECTED     (1<<1)
 #define  SFUSE_STRAP_DDID_DETECTED     (1<<0)
index 4aa4cadeaf315d76a9080b4b206cb358c5b19e4b..bfb00e3835876340a8a935da65cdee697f122ae7 100644 (file)
@@ -14257,6 +14257,9 @@ static bool intel_crt_present(struct drm_device *dev)
        if (IS_CHERRYVIEW(dev))
                return false;
 
+       if (HAS_PCH_LPT_H(dev) && I915_READ(SFUSE_STRAP) & SFUSE_STRAP_CRT_DISABLED)
+               return false;
+
        if (IS_VALLEYVIEW(dev) && !dev_priv->vbt.int_crt_support)
                return false;