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 <[email protected]>
Cc: Jani Nikula <[email protected]>
Cc: Ville Syrjala <[email protected]>
[originally from Tejas's work]
Signed-off-by: Tejas Upadhyay <[email protected]>
Signed-off-by: Lyude Paul <[email protected]>
---
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);
--
2.29.2
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 <[email protected]>
> Cc: Jani Nikula <[email protected]>
> Cc: Ville Syrjala <[email protected]>
> [originally from Tejas's work]
> Signed-off-by: Tejas Upadhyay <[email protected]>
> Signed-off-by: Lyude Paul <[email protected]>
> ---
> 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
> [email protected]
> 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 <[email protected]>
> > Cc: Jani Nikula <[email protected]>
> > Cc: Ville Syrjala <[email protected]>
> > [originally from Tejas's work]
> > Signed-off-by: Tejas Upadhyay <[email protected]>
> > Signed-off-by: Lyude Paul <[email protected]>
> > ---
> > 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 <[email protected]>
>
> > + } 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
> > [email protected]
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> Intel-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx