[Intel-gfx] [PATCH v8 17/38] drm/i915/icl: Find DSI presence for ICL

Jani Nikula jani.nikula at intel.com
Thu Nov 1 11:09:50 UTC 2018


On Tue, 30 Oct 2018, Jani Nikula <jani.nikula at intel.com> wrote:
> From: Madhav Chauhan <madhav.chauhan at intel.com>
>
> This patch detects DSI presence for ICL platform
> by reading VBT. DSI detection is done while initializing
> DSI using newly added function intel_gen11_dsi_init.
>
> v2 by Jani:
>  - Preserve old behavour of intel_bios_is_dsi_present()
>  - s/intel_gen11_dsi_init/icl_dsi_init/g
>
> Signed-off-by: Madhav Chauhan <madhav.chauhan at intel.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>

Pushed.

BR,
Jani.

> ---
>  drivers/gpu/drm/i915/icl_dsi.c       |  8 ++++++++
>  drivers/gpu/drm/i915/intel_bios.c    | 12 ++++++------
>  drivers/gpu/drm/i915/intel_display.c |  1 +
>  drivers/gpu/drm/i915/intel_drv.h     |  3 +++
>  4 files changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/icl_dsi.c b/drivers/gpu/drm/i915/icl_dsi.c
> index fd82f349ced9..01f422df8c23 100644
> --- a/drivers/gpu/drm/i915/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/icl_dsi.c
> @@ -971,3 +971,11 @@ static void __attribute__((unused)) gen11_dsi_disable(
>  	/* step4: disable IO power */
>  	gen11_dsi_disable_io_power(encoder);
>  }
> +
> +void icl_dsi_init(struct drm_i915_private *dev_priv)
> +{
> +	enum port port;
> +
> +	if (!intel_bios_is_dsi_present(dev_priv, &port))
> +		return;
> +}
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 1faa494e2bc9..5fa2133f801d 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -2039,17 +2039,17 @@ bool intel_bios_is_dsi_present(struct drm_i915_private *dev_priv,
>  
>  		dvo_port = child->dvo_port;
>  
> -		switch (dvo_port) {
> -		case DVO_PORT_MIPIA:
> -		case DVO_PORT_MIPIC:
> +		if (dvo_port == DVO_PORT_MIPIA ||
> +		    (dvo_port == DVO_PORT_MIPIB && IS_ICELAKE(dev_priv)) ||
> +		    (dvo_port == DVO_PORT_MIPIC && !IS_ICELAKE(dev_priv))) {
>  			if (port)
>  				*port = dvo_port - DVO_PORT_MIPIA;
>  			return true;
> -		case DVO_PORT_MIPIB:
> -		case DVO_PORT_MIPID:
> +		} else if (dvo_port == DVO_PORT_MIPIB ||
> +			   dvo_port == DVO_PORT_MIPIC ||
> +			   dvo_port == DVO_PORT_MIPID) {
>  			DRM_DEBUG_KMS("VBT has unsupported DSI port %c\n",
>  				      port_name(dvo_port - DVO_PORT_MIPIA));
> -			break;
>  		}
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index c3cadc09f859..1d46f06ede37 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14128,6 +14128,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
>  		intel_ddi_init(dev_priv, PORT_D);
>  		intel_ddi_init(dev_priv, PORT_E);
>  		intel_ddi_init(dev_priv, PORT_F);
> +		icl_dsi_init(dev_priv);
>  	} else if (IS_GEN9_LP(dev_priv)) {
>  		/*
>  		 * FIXME: Broxton doesn't support port detection via the
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 268afb6d2746..3081cca1a151 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1854,6 +1854,9 @@ void intel_dp_mst_encoder_cleanup(struct intel_digital_port *intel_dig_port);
>  /* vlv_dsi.c */
>  void vlv_dsi_init(struct drm_i915_private *dev_priv);
>  
> +/* icl_dsi.c */
> +void icl_dsi_init(struct drm_i915_private *dev_priv);
> +
>  /* intel_dsi_dcs_backlight.c */
>  int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector);

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list