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

Jani Nikula jani.nikula at linux.intel.com
Fri Dec 21 14:32:08 UTC 2018


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

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


More information about the Intel-gfx mailing list