diff mbox series

[v4] drm/i915: use for_each_pipe loop to assign crtc_mask

Message ID 20180908061048.29214-1-mahesh1.kumar@intel.com (mailing list archive)
State New, archived
Headers show
Series [v4] drm/i915: use for_each_pipe loop to assign crtc_mask | expand

Commit Message

Kumar, Mahesh Sept. 8, 2018, 6:10 a.m. UTC
This cleanup patch makes changes to use for_each_pipe loop
during bit-mask assignment of allowed crtc with encoder.

changes:
 - use BIT(i) macro instead of (1 << i) (Chris)
changes from V2:
 - use int for consistency (Jani)
changes from V3:
 - instead use enum pipe (Ville)

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
---
 drivers/gpu/drm/i915/intel_ddi.c  | 4 +++-
 drivers/gpu/drm/i915/intel_dp.c   | 5 ++++-
 drivers/gpu/drm/i915/intel_hdmi.c | 5 ++++-
 3 files changed, 11 insertions(+), 3 deletions(-)

Comments

Kumar, Mahesh Sept. 14, 2018, 6:28 a.m. UTC | #1
Hi,

just a ping for review :)

-Mahesh
On 9/8/2018 11:40 AM, Mahesh Kumar wrote:
> This cleanup patch makes changes to use for_each_pipe loop
> during bit-mask assignment of allowed crtc with encoder.
>
> changes:
>   - use BIT(i) macro instead of (1 << i) (Chris)
> changes from V2:
>   - use int for consistency (Jani)
> changes from V3:
>   - instead use enum pipe (Ville)
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
> ---
>   drivers/gpu/drm/i915/intel_ddi.c  | 4 +++-
>   drivers/gpu/drm/i915/intel_dp.c   | 5 ++++-
>   drivers/gpu/drm/i915/intel_hdmi.c | 5 ++++-
>   3 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index cd01a09c5e0f..0ef2448fd350 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -3751,6 +3751,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>   	struct intel_encoder *intel_encoder;
>   	struct drm_encoder *encoder;
>   	bool init_hdmi, init_dp, init_lspcon = false;
> +	enum pipe pipe;
>   
>   
>   	init_hdmi = (dev_priv->vbt.ddi_port_info[port].supports_dvi ||
> @@ -3801,8 +3802,9 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>   	intel_encoder->type = INTEL_OUTPUT_DDI;
>   	intel_encoder->power_domain = intel_port_to_power_domain(port);
>   	intel_encoder->port = port;
> -	intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
>   	intel_encoder->cloneable = 0;
> +	for_each_pipe(dev_priv, pipe)
> +		intel_encoder->crtc_mask |= BIT(pipe);
>   
>   	if (INTEL_GEN(dev_priv) >= 11)
>   		intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 436c22de33b6..7302b5807884 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -6709,7 +6709,10 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
>   		else
>   			intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
>   	} else {
> -		intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
> +		enum pipe pipe;
> +
> +		for_each_pipe(dev_priv, pipe)
> +			intel_encoder->crtc_mask |= BIT(pipe);
>   	}
>   	intel_encoder->cloneable = 0;
>   	intel_encoder->port = port;
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index a2dab0b6bde6..0d4c6f565d65 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -2468,7 +2468,10 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
>   		else
>   			intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
>   	} else {
> -		intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
> +		enum pipe pipe;
> +
> +		for_each_pipe(dev_priv, pipe)
> +			intel_encoder->crtc_mask |= BIT(pipe);
>   	}
>   	intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
>   	/*
Ville Syrjälä Sept. 14, 2018, 12:38 p.m. UTC | #2
On Sat, Sep 08, 2018 at 11:40:48AM +0530, Mahesh Kumar wrote:
> This cleanup patch makes changes to use for_each_pipe loop
> during bit-mask assignment of allowed crtc with encoder.
> 
> changes:
>  - use BIT(i) macro instead of (1 << i) (Chris)
> changes from V2:
>  - use int for consistency (Jani)
> changes from V3:
>  - instead use enum pipe (Ville)
> 
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_ddi.c  | 4 +++-
>  drivers/gpu/drm/i915/intel_dp.c   | 5 ++++-
>  drivers/gpu/drm/i915/intel_hdmi.c | 5 ++++-
>  3 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index cd01a09c5e0f..0ef2448fd350 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -3751,6 +3751,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>  	struct intel_encoder *intel_encoder;
>  	struct drm_encoder *encoder;
>  	bool init_hdmi, init_dp, init_lspcon = false;
> +	enum pipe pipe;
>  
>  
>  	init_hdmi = (dev_priv->vbt.ddi_port_info[port].supports_dvi ||
> @@ -3801,8 +3802,9 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>  	intel_encoder->type = INTEL_OUTPUT_DDI;
>  	intel_encoder->power_domain = intel_port_to_power_domain(port);
>  	intel_encoder->port = port;
> -	intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
>  	intel_encoder->cloneable = 0;
> +	for_each_pipe(dev_priv, pipe)
> +		intel_encoder->crtc_mask |= BIT(pipe);

This makes sense.

>  
>  	if (INTEL_GEN(dev_priv) >= 11)
>  		intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 436c22de33b6..7302b5807884 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -6709,7 +6709,10 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
>  		else
>  			intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
>  	} else {
> -		intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
> +		enum pipe pipe;
> +
> +		for_each_pipe(dev_priv, pipe)
> +			intel_encoder->crtc_mask |= BIT(pipe);

These I'm not so sure. Why only DP and HDMI and not the rest?
Considering everything !ddi is legacy I don't think there's any
real point in future proofing them agaisnt pipe D+.

And why do I now have a feeling someone sent a patch earlier to fix
these all up to use BIT(). Where did that patch go? Ah, it was me :)
https://lists.freedesktop.org/archives/dri-devel/2018-June/180155.html
And I guess I never pushed it.

OK, so I'd say drop the dp/hdmi changes and this is
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

I can then rebase my stuff on top and resend it.

>  	}
>  	intel_encoder->cloneable = 0;
>  	intel_encoder->port = port;
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index a2dab0b6bde6..0d4c6f565d65 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -2468,7 +2468,10 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
>  		else
>  			intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
>  	} else {
> -		intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
> +		enum pipe pipe;
> +
> +		for_each_pipe(dev_priv, pipe)
> +			intel_encoder->crtc_mask |= BIT(pipe);
>  	}
>  	intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
>  	/*
> -- 
> 2.16.2
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index cd01a09c5e0f..0ef2448fd350 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -3751,6 +3751,7 @@  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 	struct intel_encoder *intel_encoder;
 	struct drm_encoder *encoder;
 	bool init_hdmi, init_dp, init_lspcon = false;
+	enum pipe pipe;
 
 
 	init_hdmi = (dev_priv->vbt.ddi_port_info[port].supports_dvi ||
@@ -3801,8 +3802,9 @@  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 	intel_encoder->type = INTEL_OUTPUT_DDI;
 	intel_encoder->power_domain = intel_port_to_power_domain(port);
 	intel_encoder->port = port;
-	intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
 	intel_encoder->cloneable = 0;
+	for_each_pipe(dev_priv, pipe)
+		intel_encoder->crtc_mask |= BIT(pipe);
 
 	if (INTEL_GEN(dev_priv) >= 11)
 		intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 436c22de33b6..7302b5807884 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -6709,7 +6709,10 @@  bool intel_dp_init(struct drm_i915_private *dev_priv,
 		else
 			intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
 	} else {
-		intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
+		enum pipe pipe;
+
+		for_each_pipe(dev_priv, pipe)
+			intel_encoder->crtc_mask |= BIT(pipe);
 	}
 	intel_encoder->cloneable = 0;
 	intel_encoder->port = port;
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index a2dab0b6bde6..0d4c6f565d65 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2468,7 +2468,10 @@  void intel_hdmi_init(struct drm_i915_private *dev_priv,
 		else
 			intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
 	} else {
-		intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
+		enum pipe pipe;
+
+		for_each_pipe(dev_priv, pipe)
+			intel_encoder->crtc_mask |= BIT(pipe);
 	}
 	intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
 	/*