On Thu, 20 Dec 2018, Imre Deak <imre.deak@xxxxxxxxx> wrote: > Registering an output for a non-existent port (on a given SKU) can lead > to problems when trying to use the port, for instance timeouts during > power well enabling. Since there are no strap bits for port detection we > have to rely on VBT for this, so do that here. > > There are no known SKUs where any of the A-E ports are non-existent, so > to reduce the likelihood of breakage due to incorrect VBT information, > do this detection only for port F (which is known to be missing on some > ICL SKUs). Even this one relies on correct VBT... but the code does what it says on the box, so Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108915 > Cc: Mika Kahola <mika.kahola@xxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index a2f8aaf61c61..2b81da068010 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -14273,7 +14273,13 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) > intel_ddi_init(dev_priv, PORT_C); > intel_ddi_init(dev_priv, PORT_D); > intel_ddi_init(dev_priv, PORT_E); > - intel_ddi_init(dev_priv, PORT_F); > + /* > + * On some ICL SKUs port F is not present. No strap bits for > + * this, so rely on VBT. > + */ > + if (intel_bios_is_port_present(dev_priv, PORT_F)) > + intel_ddi_init(dev_priv, PORT_F); > + > icl_dsi_init(dev_priv); > } else if (IS_GEN9_LP(dev_priv)) { > /* -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx