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 --- drivers/gpu/drm/i915/display/intel_display.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index beed08c00b6c..4dee37f8659d 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -11943,7 +11943,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);
On Tue, Feb 09, 2021 at 04:28:31PM -0500, Lyude Paul wrote:
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
drivers/gpu/drm/i915/display/intel_display.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index beed08c00b6c..4dee37f8659d 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -11943,7 +11943,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);
we have somewhere in this function these forced fuse straps for gen9 platform... don't we have a ways to combine them?
Afterall, the reason that we need these forced bits is because it is a gen9, not because it is a TGP...
} else {
found = intel_de_read(dev_priv, SFUSE_STRAP);
}
if (found & SFUSE_STRAP_DDIB_DETECTED) intel_ddi_init(dev_priv, PORT_B);
-- 2.29.2
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Wed, Feb 10, 2021 at 10:23:58PM -0500, Rodrigo Vivi wrote:
On Tue, Feb 09, 2021 at 04:28:31PM -0500, Lyude Paul wrote:
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
drivers/gpu/drm/i915/display/intel_display.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index beed08c00b6c..4dee37f8659d 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -11943,7 +11943,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);
we have somewhere in this function these forced fuse straps for gen9 platform... don't we have a ways to combine them?
Afterall, the reason that we need these forced bits is because it is a gen9, not because it is a TGP...
just ignore my non-sense comment... I confused with the /* WaIgnoreDDIAStrap: skl */ above... thought it was for all the ports... not just for port A...
Reviewed-by: Rodrigo Vivi rodrigo.vivi@intel.com
} else {
found = intel_de_read(dev_priv, SFUSE_STRAP);
}
if (found & SFUSE_STRAP_DDIB_DETECTED) intel_ddi_init(dev_priv, PORT_B);
-- 2.29.2
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
dri-devel@lists.freedesktop.org