Message ID | 20210209212832.1401815-5-lyude@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v5,1/4] drm/i915/gen9_bc: Recognize TGP PCH + CML combos | expand |
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
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);