All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v2 5/7] drm/i915: Beef up SDVO/HDMI port checks
Date: Fri, 02 Jun 2023 17:23:19 +0300	[thread overview]
Message-ID: <87h6rqdju0.fsf@intel.com> (raw)
In-Reply-To: <20230531134806.23065-6-ville.syrjala@linux.intel.com>

On Wed, 31 May 2023, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The SDVO code already warns when the port in question doesn't
> actually support SDVO. Let's make that also bail the encoder
> registration like the generic assert_port_valid() we added.
>
> And add a similar thing for g4x HDMI, mainly because on g4x
> itsefl port D only supports DP but not SDVO/HDMI. For the
> other platforms the generic port_mask check should actually
> be sufficient, but since we're here might as well list the
> ports.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/g4x_hdmi.c   | 17 +++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_sdvo.c | 17 ++++++++++++-----
>  2 files changed, 29 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> index 59704939c111..8c71e3ede680 100644
> --- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> @@ -659,6 +659,20 @@ int g4x_hdmi_connector_atomic_check(struct drm_connector *connector,
>  	return ret;
>  }
>  
> +static bool is_hdmi_port_valid(struct drm_i915_private *i915, enum port port)
> +{
> +	if (IS_G4X(i915) || IS_VALLEYVIEW(i915))
> +		return port == PORT_B || port == PORT_C;
> +	else
> +		return port == PORT_B || port == PORT_C || port == PORT_D;
> +}
> +
> +static bool assert_hdmi_port_valid(struct drm_i915_private *i915, enum port port)
> +{
> +	return !drm_WARN(&i915->drm, !is_hdmi_port_valid(i915, port),
> +			 "Platform does not support HDMI %c\n", port_name(port));
> +}
> +
>  void g4x_hdmi_init(struct drm_i915_private *dev_priv,
>  		   i915_reg_t hdmi_reg, enum port port)
>  {
> @@ -670,6 +684,9 @@ void g4x_hdmi_init(struct drm_i915_private *dev_priv,
>  	if (!assert_port_valid(dev_priv, port))
>  		return;
>  
> +	if (!assert_hdmi_port_valid(dev_priv, port))
> +		return;
> +
>  	devdata = intel_bios_encoder_data_lookup(dev_priv, port);
>  
>  	/* FIXME bail? */
> diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
> index 6ed613558cf8..e6b140b073c3 100644
> --- a/drivers/gpu/drm/i915/display/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
> @@ -3314,13 +3314,19 @@ intel_sdvo_init_ddc_proxy(struct intel_sdvo *sdvo,
>  	return i2c_add_adapter(&sdvo->ddc) == 0;
>  }
>  
> -static void assert_sdvo_port_valid(const struct drm_i915_private *dev_priv,
> -				   enum port port)
> +static bool is_sdvo_port_valid(struct drm_i915_private *dev_priv, enum port port)
>  {
>  	if (HAS_PCH_SPLIT(dev_priv))
> -		drm_WARN_ON(&dev_priv->drm, port != PORT_B);
> +		return port == PORT_B;
>  	else
> -		drm_WARN_ON(&dev_priv->drm, port != PORT_B && port != PORT_C);
> +		return port == PORT_B || port == PORT_C;
> +}
> +
> +static bool assert_sdvo_port_valid(struct drm_i915_private *dev_priv,
> +				   enum port port)
> +{
> +	return !drm_WARN(&dev_priv->drm, !is_sdvo_port_valid(dev_priv, port),
> +			 "Platform does not support SDVO %c\n", port_name(port));
>  }
>  
>  bool intel_sdvo_init(struct drm_i915_private *dev_priv,
> @@ -3333,7 +3339,8 @@ bool intel_sdvo_init(struct drm_i915_private *dev_priv,
>  	if (!assert_port_valid(dev_priv, port))
>  		return false;
>  
> -	assert_sdvo_port_valid(dev_priv, port);
> +	if (!assert_sdvo_port_valid(dev_priv, port))
> +		return false;
>  
>  	intel_sdvo = kzalloc(sizeof(*intel_sdvo), GFP_KERNEL);
>  	if (!intel_sdvo)

-- 
Jani Nikula, Intel Open Source Graphics Center

  reply	other threads:[~2023-06-02 14:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-31 13:47 [Intel-gfx] [PATCH v2 0/7] drm/i915: Init DDI ports based on port_mask Ville Syrjala
2023-05-31 13:48 ` [Intel-gfx] [PATCH v2 1/7] drm/i915: Remove bogus DDI-F from hsw/bdw output init Ville Syrjala
2023-05-31 13:48 ` [Intel-gfx] [PATCH v2 2/7] drm/i915: Introduce device info port_mask Ville Syrjala
2023-06-02 14:11   ` Jani Nikula
2023-06-08 19:36     ` Ville Syrjälä
2023-06-15 12:02       ` Shankar, Uma
2023-05-31 13:48 ` [Intel-gfx] [PATCH v2 3/7] drm/i915: Assert that device info bitmasks have enough bits Ville Syrjala
2023-06-02 14:13   ` Jani Nikula
2023-06-02 14:16     ` Jani Nikula
2023-05-31 13:48 ` [Intel-gfx] [PATCH v2 4/7] drm/i915: Assert that the port being initialized is valid Ville Syrjala
2023-06-02 14:19   ` Jani Nikula
2023-05-31 13:48 ` [Intel-gfx] [PATCH v2 5/7] drm/i915: Beef up SDVO/HDMI port checks Ville Syrjala
2023-06-02 14:23   ` Jani Nikula [this message]
2023-05-31 13:48 ` [Intel-gfx] [PATCH v2 6/7] drm/i915: Init DDI outputs based on port_mask on skl+ Ville Syrjala
2023-06-02 14:41   ` Jani Nikula
2023-06-08 19:48     ` Ville Syrjälä
2023-06-09  9:19       ` Jani Nikula
2023-05-31 13:48 ` [Intel-gfx] [PATCH v2 7/7] drm/i915: Convert HSW/BDW to use port_mask for DDI probe Ville Syrjala
2023-06-02 14:51   ` Jani Nikula
2023-06-08 19:54     ` Ville Syrjälä
2023-06-02 10:31 ` [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Init DDI ports based on port_mask (rev3) 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=87h6rqdju0.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.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.