OSDN Git Service

drm/i915/gen9_bc: Add W/A for missing STRAP config on TGP PCH + CML combos
authorLyude Paul <lyude@redhat.com>
Tue, 9 Feb 2021 20:11:09 +0000 (15:11 -0500)
committerLyude Paul <lyude@redhat.com>
Fri, 12 Feb 2021 21:43:41 +0000 (16:43 -0500)
Apparently the new gen9_bc platforms that Intel has introduced don't
provide us with a STRAP config register to read from for initializing DDI
B, C, and D detection. So, workaround this by hard-coding our strap config
in intel_setup_outputs().

Changes since v4:
* Split this into it's own commit

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
[originally from Tejas's work]
Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210209212832.1401815-5-lyude@redhat.com
drivers/gpu/drm/i915/display/intel_display.c

index 6e71d39..8df65d6 100644 (file)
@@ -11954,7 +11954,14 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
 
                /* DDI B, C, D, and F detection is indicated by the SFUSE_STRAP
                 * register */
-               found = intel_de_read(dev_priv, SFUSE_STRAP);
+               if (HAS_PCH_TGP(dev_priv)) {
+                       /* W/A due to lack of STRAP config on TGP PCH*/
+                       found = (SFUSE_STRAP_DDIB_DETECTED |
+                                SFUSE_STRAP_DDIC_DETECTED |
+                                SFUSE_STRAP_DDID_DETECTED);
+               } else {
+                       found = intel_de_read(dev_priv, SFUSE_STRAP);
+               }
 
                if (found & SFUSE_STRAP_DDIB_DETECTED)
                        intel_ddi_init(dev_priv, PORT_B);