Re: [PATCH 2/3] drm/i915/icl: Detect port F presence via VBT

Jani Nikula
2018-12-21T14:30:43Z

On Thu, 20 Dec 2018, Imre Deak <imre.deak@intel.com> 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@intel.com>

>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108915
> Cc: Mika Kahola <mika.kahola@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> 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