All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/8] drm/i915: Introduce for_each_intel_dp()
Date: Thu, 5 Jul 2018 14:17:14 -0700	[thread overview]
Message-ID: <20180705211714.GN734@intel.com> (raw)
In-Reply-To: <20180705164357.28512-2-ville.syrjala@linux.intel.com>

On Thu, Jul 05, 2018 at 07:43:50PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Add a convenience macro for iterating DP encoders.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_display.h |  4 ++++
>  drivers/gpu/drm/i915/intel_dp.c      | 38 +++++++-----------------------------
>  drivers/gpu/drm/i915/intel_drv.h     | 14 +++++++++++++
>  3 files changed, 25 insertions(+), 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.h b/drivers/gpu/drm/i915/intel_display.h
> index ca5a10f3400d..9292001cdd14 100644
> --- a/drivers/gpu/drm/i915/intel_display.h
> +++ b/drivers/gpu/drm/i915/intel_display.h
> @@ -289,6 +289,10 @@ struct intel_link_m_n {
>  			    &(dev)->mode_config.encoder_list,	\
>  			    base.head)
>  
> +#define for_each_intel_dp(dev, intel_encoder)			\
> +	for_each_intel_encoder(dev, intel_encoder)		\
> +		for_each_if(intel_encoder_is_dp(intel_encoder))
> +
>  #define for_each_intel_connector_iter(intel_connector, iter) \
>  	while ((intel_connector = to_intel_connector(drm_connector_list_iter_next(iter))))
>  
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 5be07e1d816d..e95f1181e302 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -600,14 +600,8 @@ static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
>  	 * We don't have power sequencer currently.
>  	 * Pick one that's not used by other ports.
>  	 */
> -	for_each_intel_encoder(&dev_priv->drm, encoder) {
> -		struct intel_dp *intel_dp;
> -
> -		if (encoder->type != INTEL_OUTPUT_DP &&
> -		    encoder->type != INTEL_OUTPUT_EDP)
> -			continue;
> -
> -		intel_dp = enc_to_intel_dp(&encoder->base);
> +	for_each_intel_dp(&dev_priv->drm, encoder) {
> +		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  
>  		if (encoder->type == INTEL_OUTPUT_EDP) {
>  			WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
> @@ -799,19 +793,8 @@ void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
>  	 * should use them always.
>  	 */
>  
> -	for_each_intel_encoder(&dev_priv->drm, encoder) {
> -		struct intel_dp *intel_dp;
> -
> -		if (encoder->type != INTEL_OUTPUT_DP &&
> -		    encoder->type != INTEL_OUTPUT_EDP &&
> -		    encoder->type != INTEL_OUTPUT_DDI)
> -			continue;
> -
> -		intel_dp = enc_to_intel_dp(&encoder->base);
> -
> -		/* Skip pure DVI/HDMI DDI encoders */
> -		if (!i915_mmio_reg_valid(intel_dp->output_reg))
> -			continue;
> +	for_each_intel_dp(&dev_priv->drm, encoder) {
> +		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  
>  		WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
>  
> @@ -3104,16 +3087,9 @@ static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
>  
>  	lockdep_assert_held(&dev_priv->pps_mutex);
>  
> -	for_each_intel_encoder(&dev_priv->drm, encoder) {
> -		struct intel_dp *intel_dp;
> -		enum port port;
> -
> -		if (encoder->type != INTEL_OUTPUT_DP &&
> -		    encoder->type != INTEL_OUTPUT_EDP)
> -			continue;
> -
> -		intel_dp = enc_to_intel_dp(&encoder->base);
> -		port = dp_to_dig_port(intel_dp)->base.port;
> +	for_each_intel_dp(&dev_priv->drm, encoder) {
> +		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +		enum port port = encoder->port;
>  
>  		WARN(intel_dp->active_pipe == pipe,
>  		     "stealing pipe %c power sequencer from active (e)DP port %c\n",
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index e09b42d91d1e..6fe3adafaf20 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1276,6 +1276,20 @@ static inline struct intel_dp *enc_to_intel_dp(struct drm_encoder *encoder)
>  	return &enc_to_dig_port(encoder)->dp;
>  }
>  
> +static inline bool intel_encoder_is_dp(struct intel_encoder *encoder)
> +{
> +	switch (encoder->type) {
> +	case INTEL_OUTPUT_DP:
> +	case INTEL_OUTPUT_EDP:
> +		return true;
> +	case INTEL_OUTPUT_DDI:
> +		/* Skip pure HDMI/DVI DDI encoders */
> +		return i915_mmio_reg_valid(enc_to_intel_dp(&encoder->base)->output_reg);
> +	default:
> +		return false;
> +	}
> +}
> +
>  static inline struct intel_digital_port *
>  dp_to_dig_port(struct intel_dp *intel_dp)
>  {
> -- 
> 2.16.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-07-05 21:17 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-05 16:43 [PATCH 0/8] drm/i915: Hotplug cleanups and whanot Ville Syrjala
2018-07-05 16:43 ` [PATCH 1/8] drm/i915: Introduce for_each_intel_dp() Ville Syrjala
2018-07-05 21:17   ` Rodrigo Vivi [this message]
2018-07-05 16:43 ` [PATCH 2/8] drm/i915: Introduce intel_encoder_is_dig_port() Ville Syrjala
2018-07-06 17:01   ` Rodrigo Vivi
2018-07-05 16:43 ` [PATCH 3/8] drm/i915: Rewrite mst suspend/resume in terms of encoders Ville Syrjala
2018-07-05 21:29   ` Rodrigo Vivi
2018-07-06 10:42     ` Ville Syrjälä
2018-07-06 17:00       ` Rodrigo Vivi
2018-07-05 16:43 ` [PATCH 4/8] drm/i915: Nuke dev_priv->irq_port[] Ville Syrjala
2018-07-09 21:27   ` Rodrigo Vivi
2018-07-05 16:43 ` [PATCH 5/8] drm/i915: s/int i/enum hpd_pin pin/ Ville Syrjala
2018-07-09 21:28   ` Rodrigo Vivi
2018-07-05 16:43 ` [PATCH 6/8] drm/i915: Pass hpd_pin to long_pulse_detect() Ville Syrjala
2018-07-05 21:14   ` Rodrigo Vivi
2018-07-05 16:43 ` [PATCH 7/8] drm/i915: Assert that our hpd pin bitmasks don't overflow Ville Syrjala
2018-07-05 16:52   ` Chris Wilson
2018-07-05 17:51     ` Ville Syrjälä
2018-07-05 17:57       ` Chris Wilson
2018-07-05 16:43 ` [PATCH 8/8] drm/i915: Print the long_mask alongside the pin_mask Ville Syrjala
2018-07-05 18:00   ` Chris Wilson
2018-07-05 20:55 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Hotplug cleanups and whanot Patchwork
2018-07-05 20:58 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-07-05 21:14 ` ✓ Fi.CI.BAT: success " Patchwork
2018-07-06 11:05 ` ✓ Fi.CI.IGT: " 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=20180705211714.GN734@intel.com \
    --to=rodrigo.vivi@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.