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>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915/display: move vbt check to intel_ddi_init()
Date: Tue, 16 Feb 2021 21:50:03 +0200	[thread overview]
Message-ID: <87sg5vbxn8.fsf@intel.com> (raw)
In-Reply-To: <20210215162653.sarercr3qcgo5hed@ldmartin-desk1>

On Mon, 15 Feb 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> On Mon, Feb 15, 2021 at 12:35:50PM +0200, Jani Nikula wrote:
>>On Sat, 13 Feb 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
>>> On intel_ddi_init() we already check VBT if the port supports HDMI/DP
>>> and bail out otherwise. Instad of checking if a single port is present
>>> using VBT in intel_display.c, move the stronger check to
>>> intel_ddi_init() and return early in case it's not supported.  There
>>> would be no way intel_bios_* would report support for hdmi/dp if the
>>> port isn't present so this should cause no regressions for other
>>> platforms.
>>
>>Sorry, but this will regress machines that have no VBT.
>
> I missed that init_vbt_missing_defaults() also sets
> the supports_*.
>
>>
>>I've been thinking about creating fake child devices for that case to
>>reduce the exceptions.
>
> Adding a fake child would indeed be a good option. Are you going to
> implement that soon or should I?

I'm working on it. Got a bit carried away with what I've had in mind for
ages regarding some other refactoring (e.g. getting rid of
i915->vbt.ddi_port_info[] altogether in order to bring pre- and post-ddi
platforms closer together). I'll try to get a smaller set ready first.

BR,
Jani.


>
> thanks
> Lucas De Marchi
>
>>
>>BR,
>>Jani.
>>
>>
>>
>>>
>>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>>> ---
>>>  drivers/gpu/drm/i915/display/intel_ddi.c     |  7 +++++++
>>>  drivers/gpu/drm/i915/display/intel_display.c | 14 ++++++--------
>>>  2 files changed, 13 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
>>> index 3b97c0091812..1235be0ba5d1 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
>>> @@ -3972,6 +3972,13 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>>>  	bool init_hdmi, init_dp;
>>>  	enum phy phy = intel_port_to_phy(dev_priv, port);
>>>
>>> +	if (!intel_bios_is_port_present(dev_priv, port)) {
>>> +		drm_dbg_kms(&dev_priv->drm,
>>> +			    "VBT says port %c is not present, respect it\n",
>>> +			    port_name(port));
>>> +		return;
>>> +	}
>>> +
>>>  	/*
>>>  	 * On platforms with HTI (aka HDPORT), if it's enabled at boot it may
>>>  	 * have taken over some of the PHYs and made them unavailable to the
>>> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>>> index 23ec68498800..7aaf7a29d493 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_display.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_display.c
>>> @@ -11904,13 +11904,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);
>>> +
>>>  		/*
>>> -		 * On some ICL SKUs port F is not present. No strap bits for
>>> -		 * this, so rely on VBT.
>>> -		 * Work around broken VBTs on SKUs known to have no port F.
>>> +		 * 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_bios_is_port_present(dev_priv, PORT_F))
>>> +		if (IS_ICL_WITH_PORT_F(dev_priv))
>>>  			intel_ddi_init(dev_priv, PORT_F);
>>>
>>>  		icl_dsi_init(dev_priv);
>>> @@ -11964,10 +11964,8 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
>>>  		/*
>>>  		 * On SKL we don't have a way to detect DDI-E so we rely on VBT.
>>>  		 */
>>> -		if (IS_GEN9_BC(dev_priv) &&
>>> -		    intel_bios_is_port_present(dev_priv, PORT_E))
>>> +		if (IS_GEN9_BC(dev_priv))
>>>  			intel_ddi_init(dev_priv, PORT_E);
>>> -
>>>  	} else if (HAS_PCH_SPLIT(dev_priv)) {
>>>  		int found;
>>
>>-- 
>>Jani Nikula, Intel Open Source Graphics Center

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

  reply	other threads:[~2021-02-16 19:50 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-13 19:05 [Intel-gfx] [PATCH 0/3] Simplify intel_setup_outputs() Lucas De Marchi
2021-02-13 19:05 ` [Intel-gfx] [PATCH 1/3] drm/i915/display: move vbt check to intel_ddi_init() Lucas De Marchi
2021-02-15 10:35   ` Jani Nikula
2021-02-15 16:26     ` Lucas De Marchi
2021-02-16 19:50       ` Jani Nikula [this message]
2021-03-18 19:41         ` Lucas De Marchi
2021-03-19 11:38   ` Jani Nikula
2021-02-13 19:05 ` [Intel-gfx] [PATCH 2/3] drm/i915/display: remove FIXME comment for intended feature Lucas De Marchi
2021-02-13 19:05 ` [Intel-gfx] [PATCH 3/3] drm/i915/display: remove strap checks from gen 9 Lucas De Marchi
2021-02-13 19:53 ` [Intel-gfx] ✓ Fi.CI.BAT: success for Simplify intel_setup_outputs() Patchwork
2021-02-13 21:02 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2021-04-13  6:09 [Intel-gfx] [PATCH 0/3] Simplify intel_setup_outputs Lucas De Marchi
2021-04-13  6:09 ` [Intel-gfx] [PATCH 1/3] drm/i915/display: move vbt check to intel_ddi_init() Lucas De Marchi

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=87sg5vbxn8.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.