All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Lucas De Marchi <lucas.demarchi@intel.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v2 4/4] drm/i915/display: hide workaround for broken vbt in intel_bios.c
Date: Wed, 28 Apr 2021 10:02:45 +0300	[thread overview]
Message-ID: <87lf9251t6.fsf@intel.com> (raw)
In-Reply-To: <20210427230756.2847495-5-lucas.demarchi@intel.com>

On Tue, 27 Apr 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> Instead of poluting the normal code path in intel_display.c, make
> intel_bios.c handle the brokenness of the VBT.
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_bios.c    | 15 +++++++++++++++
>  drivers/gpu/drm/i915/display/intel_display.c | 14 ++------------
>  2 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index befab891a6b9..e9f828452412 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -1852,6 +1852,14 @@ intel_bios_encoder_supports_edp(const struct intel_bios_encoder_data *devdata)
>  		devdata->child.device_type & DEVICE_TYPE_INTERNAL_CONNECTOR;
>  }
>  
> +static bool skip_broken_vbt(struct drm_i915_private *i915, enum port port)
> +{
> +	if (port == PORT_F && (IS_ICELAKE(i915) || IS_CANNONLAKE(i915)))
> +		return !IS_ICL_WITH_PORT_F(i915) && !IS_CNL_WITH_PORT_F(i915);
> +
> +	return false;
> +}
> +
>  static void parse_ddi_port(struct drm_i915_private *i915,
>  			   struct intel_bios_encoder_data *devdata)
>  {
> @@ -1865,6 +1873,13 @@ static void parse_ddi_port(struct drm_i915_private *i915,
>  	if (port == PORT_NONE)
>  		return;
>  
> +	if (skip_broken_vbt(i915, port)) {
> +		drm_dbg_kms(&i915->drm,
> +			    "VBT reports port %c as supported, but that can't be true: skipping\n",
> +			    port_name(port));
> +		return;
> +	}
> +
>  	info = &i915->vbt.ddi_port_info[port];
>  
>  	if (info->devdata) {
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 55f8f2ceada2..64a2a3b9a480 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -10868,15 +10868,7 @@ 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);
> -
> -		/*
> -		 * On some ICL SKUs port F is not present, but broken VBTs mark
> -		 * the port as present. Only try to initialize port F for the
> -		 * SKUs that may actually have it.
> -		 */
> -		if (IS_ICL_WITH_PORT_F(dev_priv))
> -			intel_ddi_init(dev_priv, PORT_F);
> -
> +		intel_ddi_init(dev_priv, PORT_F);
>  		icl_dsi_init(dev_priv);
>  	} else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>  		intel_ddi_init(dev_priv, PORT_A);
> @@ -10889,9 +10881,7 @@ 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);
> -
> -		if (IS_CNL_WITH_PORT_F(dev_priv))
> -			intel_ddi_init(dev_priv, PORT_F);
> +		intel_ddi_init(dev_priv, PORT_E);

Whoops, not PORT_E, but I guess you noticed. :)


>  	} else if (HAS_DDI(dev_priv)) {
>  		u32 found;

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2021-04-28  7:02 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-27 23:07 [Intel-gfx] [PATCH v2 0/4] Simplify intel_setup_outputs Lucas De Marchi
2021-04-27 23:07 ` [Intel-gfx] [PATCH v2 1/4] drm/i915/display: move vbt check to intel_ddi_init() Lucas De Marchi
2021-04-27 23:07 ` [Intel-gfx] [PATCH v2 2/4] drm/i915/display: remove FIXME comment for intended feature Lucas De Marchi
2021-04-27 23:07 ` [Intel-gfx] [PATCH v2 3/4] drm/i915/display: remove strap checks from gen 9 Lucas De Marchi
2021-04-28  7:12   ` Jani Nikula
2021-04-27 23:07 ` [Intel-gfx] [PATCH v2 4/4] drm/i915/display: hide workaround for broken vbt in intel_bios.c Lucas De Marchi
2021-04-28  6:18   ` [Intel-gfx] [PATCH] " Lucas De Marchi
2021-04-28  7:20     ` Jani Nikula
2021-04-28  7:02   ` Jani Nikula [this message]
2021-04-28 16:16     ` [Intel-gfx] [PATCH v2 4/4] " Lucas De Marchi
2021-04-28  0:57 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for Simplify intel_setup_outputs (rev2) Patchwork
2021-04-28  3:39 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for Simplify intel_setup_outputs (rev3) Patchwork
2021-04-28  7:37 ` [Intel-gfx] ✓ Fi.CI.BAT: success for Simplify intel_setup_outputs (rev4) Patchwork
2021-04-28  9:13 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lf9251t6.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=lucas.demarchi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.