drm/i915/gen9_bc: Add W/A for missing STRAP config on TGP PCH + CML combos

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
This commit is contained in:
Lyude Paul 2021-02-09 15:11:09 -05:00
parent c8455098c6
commit 70da7521e1

View 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);