All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] drm/i915: Polish possible_clones setup
@ 2019-10-02 16:25 Ville Syrjala
  2019-10-02 16:25 ` [PATCH 2/6] drm/i915: Simplfy LVDS crtc_mask setup Ville Syrjala
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Ville Syrjala @ 2019-10-02 16:25 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Replace the hand rolled stuff with drm_encoder_mask() when populating
possible_clones, and rename the function to
intel_encoder_possible_clones() to make it clear what it's used for.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 20ec8a1dc5e1..d10e118b9a7c 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -15240,21 +15240,18 @@ int intel_get_pipe_from_crtc_id_ioctl(struct drm_device *dev, void *data,
 	return 0;
 }
 
-static int intel_encoder_clones(struct intel_encoder *encoder)
+static u32 intel_encoder_possible_clones(struct intel_encoder *encoder)
 {
 	struct drm_device *dev = encoder->base.dev;
 	struct intel_encoder *source_encoder;
-	int index_mask = 0;
-	int entry = 0;
+	u32 possible_clones = 0;
 
 	for_each_intel_encoder(dev, source_encoder) {
 		if (encoders_cloneable(encoder, source_encoder))
-			index_mask |= (1 << entry);
-
-		entry++;
+			possible_clones |= drm_encoder_mask(&source_encoder->base);
 	}
 
-	return index_mask;
+	return possible_clones;
 }
 
 static u32 intel_encoder_possible_crtcs(struct intel_encoder *encoder)
@@ -15574,7 +15571,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
 		encoder->base.possible_crtcs =
 			intel_encoder_possible_crtcs(encoder);
 		encoder->base.possible_clones =
-			intel_encoder_clones(encoder);
+			intel_encoder_possible_clones(encoder);
 	}
 
 	intel_init_pch_refclk(dev_priv);
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/6] drm/i915: Simplfy LVDS crtc_mask setup
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
@ 2019-10-02 16:25 ` Ville Syrjala
  2019-10-31 13:34     ` [Intel-gfx] " Juha-Pekka Heikkila
  2019-10-02 16:25 ` [PATCH 3/6] drm/i915: s/crtc_mask/pipe_mask/ Ville Syrjala
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-10-02 16:25 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

We don't need to special case PCH vs. gen4 when setting up the LVDS
crtc_mask. Just claim pipes A|B|C work and
intel_encoder_possible_crtcs() will drop out any crtc that doesn't
exist.

v2: Put the special case first to match what most other encoders do

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_lvds.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
index 13841d7c455b..cf1cd2295b9b 100644
--- a/drivers/gpu/drm/i915/display/intel_lvds.c
+++ b/drivers/gpu/drm/i915/display/intel_lvds.c
@@ -899,12 +899,10 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
 	intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
 	intel_encoder->port = PORT_NONE;
 	intel_encoder->cloneable = 0;
-	if (HAS_PCH_SPLIT(dev_priv))
-		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
-	else if (IS_GEN(dev_priv, 4))
-		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
-	else
+	if (INTEL_GEN(dev_priv) < 4)
 		intel_encoder->crtc_mask = BIT(PIPE_B);
+	else
+		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 
 	drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
 	connector->display_info.subpixel_order = SubPixelHorizontalRGB;
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/6] drm/i915: s/crtc_mask/pipe_mask/
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
  2019-10-02 16:25 ` [PATCH 2/6] drm/i915: Simplfy LVDS crtc_mask setup Ville Syrjala
@ 2019-10-02 16:25 ` Ville Syrjala
  2019-10-02 18:00   ` Lucas De Marchi
  2019-10-02 16:25 ` [PATCH 4/6] drm/i915: Allow ICL+ DSI on any pipe Ville Syrjala
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-10-02 16:25 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Rename the encoder->crtc_mask to encoder->pipe_mask to better
reflect what it actually contains.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c             | 2 +-
 drivers/gpu/drm/i915/display/intel_crt.c           | 4 ++--
 drivers/gpu/drm/i915/display/intel_ddi.c           | 2 +-
 drivers/gpu/drm/i915/display/intel_display.c       | 2 +-
 drivers/gpu/drm/i915/display/intel_display_types.h | 4 ++--
 drivers/gpu/drm/i915/display/intel_dp.c            | 6 +++---
 drivers/gpu/drm/i915/display/intel_dp_mst.c        | 2 +-
 drivers/gpu/drm/i915/display/intel_dvo.c           | 2 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c          | 6 +++---
 drivers/gpu/drm/i915/display/intel_lvds.c          | 4 ++--
 drivers/gpu/drm/i915/display/intel_sdvo.c          | 2 +-
 drivers/gpu/drm/i915/display/intel_tv.c            | 2 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c             | 6 +++---
 13 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 6e398c33a524..4cea8ed2bd31 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1584,7 +1584,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
 	encoder->get_hw_state = gen11_dsi_get_hw_state;
 	encoder->type = INTEL_OUTPUT_DSI;
 	encoder->cloneable = 0;
-	encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+	encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 	encoder->power_domain = POWER_DOMAIN_PORT_DSI;
 	encoder->get_power_domains = gen11_dsi_get_power_domains;
 
diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index ff6126ea793c..6e6c77971a5f 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -994,9 +994,9 @@ void intel_crt_init(struct drm_i915_private *dev_priv)
 	crt->base.type = INTEL_OUTPUT_ANALOG;
 	crt->base.cloneable = (1 << INTEL_OUTPUT_DVO) | (1 << INTEL_OUTPUT_HDMI);
 	if (IS_I830(dev_priv))
-		crt->base.crtc_mask = BIT(PIPE_A);
+		crt->base.pipe_mask = BIT(PIPE_A);
 	else
-		crt->base.crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		crt->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 
 	if (IS_GEN(dev_priv, 2))
 		connector->interlace_allowed = 0;
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index b463e51f8b45..99aa798c9ea7 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4641,7 +4641,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 	intel_encoder->port = port;
 	intel_encoder->cloneable = 0;
 	for_each_pipe(dev_priv, pipe)
-		intel_encoder->crtc_mask |= BIT(pipe);
+		intel_encoder->pipe_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/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index d10e118b9a7c..eadb856b0d5b 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -15261,7 +15261,7 @@ static u32 intel_encoder_possible_crtcs(struct intel_encoder *encoder)
 	u32 possible_crtcs = 0;
 
 	for_each_intel_crtc(dev, crtc) {
-		if (encoder->crtc_mask & BIT(crtc->pipe))
+		if (encoder->pipe_mask & BIT(crtc->pipe))
 			possible_crtcs |= drm_crtc_mask(&crtc->base);
 	}
 
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 976669f01a8c..5930ed12a8a4 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -128,7 +128,8 @@ struct intel_encoder {
 
 	enum intel_output_type type;
 	enum port port;
-	unsigned int cloneable;
+	u16 cloneable;
+	u8 pipe_mask;
 	enum intel_hotplug_state (*hotplug)(struct intel_encoder *encoder,
 					    struct intel_connector *connector,
 					    bool irq_received);
@@ -187,7 +188,6 @@ struct intel_encoder {
 	 * device interrupts are disabled.
 	 */
 	void (*suspend)(struct intel_encoder *);
-	int crtc_mask;
 	enum hpd_pin hpd_pin;
 	enum intel_display_power_domain power_domain;
 	/* for communication with audio component; protected by av_mutex */
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 1aa39e92f0df..e7114edbc18e 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -7364,11 +7364,11 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
 	intel_encoder->power_domain = intel_port_to_power_domain(port);
 	if (IS_CHERRYVIEW(dev_priv)) {
 		if (port == PORT_D)
-			intel_encoder->crtc_mask = BIT(PIPE_C);
+			intel_encoder->pipe_mask = BIT(PIPE_C);
 		else
-			intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
+			intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
 	} else {
-		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 	}
 	intel_encoder->cloneable = 0;
 	intel_encoder->port = port;
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 2203be28ea01..1b1674ef679e 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -618,7 +618,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
 	intel_encoder->port = intel_dig_port->base.port;
 	intel_encoder->cloneable = 0;
 	for_each_pipe(dev_priv, pipe_iter)
-		intel_encoder->crtc_mask |= BIT(pipe_iter);
+		intel_encoder->pipe_mask |= BIT(pipe_iter);
 
 	intel_encoder->compute_config = intel_dp_mst_compute_config;
 	intel_encoder->disable = intel_mst_disable_dp;
diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
index 9827f99491d1..a6c165d857e0 100644
--- a/drivers/gpu/drm/i915/display/intel_dvo.c
+++ b/drivers/gpu/drm/i915/display/intel_dvo.c
@@ -505,7 +505,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
 		intel_encoder->type = INTEL_OUTPUT_DVO;
 		intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
 		intel_encoder->port = port;
-		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
+		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
 
 		switch (dvo->type) {
 		case INTEL_DVO_CHIP_TMDS:
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 0a6846c5ba95..c561e10e7d13 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -3274,11 +3274,11 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
 	intel_encoder->port = port;
 	if (IS_CHERRYVIEW(dev_priv)) {
 		if (port == PORT_D)
-			intel_encoder->crtc_mask = BIT(PIPE_C);
+			intel_encoder->pipe_mask = BIT(PIPE_C);
 		else
-			intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
+			intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
 	} else {
-		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 	}
 	intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
 	/*
diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
index cf1cd2295b9b..e358a6da5aaf 100644
--- a/drivers/gpu/drm/i915/display/intel_lvds.c
+++ b/drivers/gpu/drm/i915/display/intel_lvds.c
@@ -900,9 +900,9 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
 	intel_encoder->port = PORT_NONE;
 	intel_encoder->cloneable = 0;
 	if (INTEL_GEN(dev_priv) < 4)
-		intel_encoder->crtc_mask = BIT(PIPE_B);
+		intel_encoder->pipe_mask = BIT(PIPE_B);
 	else
-		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 
 	drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
 	connector->display_info.subpixel_order = SubPixelHorizontalRGB;
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 47f5d87a938a..fed738effbc3 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -2921,7 +2921,7 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags)
 			      bytes[0], bytes[1]);
 		return false;
 	}
-	intel_sdvo->base.crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+	intel_sdvo->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 
 	return true;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
index 70726b481244..35e929423e48 100644
--- a/drivers/gpu/drm/i915/display/intel_tv.c
+++ b/drivers/gpu/drm/i915/display/intel_tv.c
@@ -1947,7 +1947,7 @@ intel_tv_init(struct drm_i915_private *dev_priv)
 	intel_encoder->type = INTEL_OUTPUT_TVOUT;
 	intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
 	intel_encoder->port = PORT_NONE;
-	intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
+	intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
 	intel_encoder->cloneable = 0;
 	intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
 
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 50064cde0724..11a7c77d64bc 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -1870,11 +1870,11 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
 	 * port C. BXT isn't limited like this.
 	 */
 	if (IS_GEN9_LP(dev_priv))
-		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
 	else if (port == PORT_A)
-		intel_encoder->crtc_mask = BIT(PIPE_A);
+		intel_encoder->pipe_mask = BIT(PIPE_A);
 	else
-		intel_encoder->crtc_mask = BIT(PIPE_B);
+		intel_encoder->pipe_mask = BIT(PIPE_B);
 
 	if (dev_priv->vbt.dsi.config->dual_link)
 		intel_dsi->ports = BIT(PORT_A) | BIT(PORT_C);
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4/6] drm/i915: Allow ICL+ DSI on any pipe
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
  2019-10-02 16:25 ` [PATCH 2/6] drm/i915: Simplfy LVDS crtc_mask setup Ville Syrjala
  2019-10-02 16:25 ` [PATCH 3/6] drm/i915: s/crtc_mask/pipe_mask/ Ville Syrjala
@ 2019-10-02 16:25 ` Ville Syrjala
  2019-10-02 16:35   ` Lucas De Marchi
  2019-10-02 16:25 ` [PATCH 5/6] drm/i915: Simplify pipe_mask setup even further Ville Syrjala
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-10-02 16:25 UTC (permalink / raw)
  To: intel-gfx; +Cc: Lucas De Marchi

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

There are no longer any pipe<->DSI port limitations on icl+.
Populate the pipe_mask accordingly.

Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 4cea8ed2bd31..99a75c611387 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1552,6 +1552,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
 	struct drm_connector *connector;
 	struct drm_display_mode *fixed_mode;
 	enum port port;
+	enum pipe pipe;
 
 	if (!intel_bios_is_dsi_present(dev_priv, &port))
 		return;
@@ -1584,7 +1585,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
 	encoder->get_hw_state = gen11_dsi_get_hw_state;
 	encoder->type = INTEL_OUTPUT_DSI;
 	encoder->cloneable = 0;
-	encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+	for_each_pipe(dev_priv, pipe)
+		encoder->pipe_mask |= BIT(pipe);
 	encoder->power_domain = POWER_DOMAIN_PORT_DSI;
 	encoder->get_power_domains = gen11_dsi_get_power_domains;
 
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 5/6] drm/i915: Simplify pipe_mask setup even further
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
                   ` (2 preceding siblings ...)
  2019-10-02 16:25 ` [PATCH 4/6] drm/i915: Allow ICL+ DSI on any pipe Ville Syrjala
@ 2019-10-02 16:25 ` Ville Syrjala
  2019-10-02 16:25 ` [PATCH 6/6] drm/i915/mst: Document the userspace fail with possible_crtcs Ville Syrjala
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjala @ 2019-10-02 16:25 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Just set pipe_mask=~0 for the non-special cases where any pipe
will do. intel_encoder_possible_crtcs() will anyway drop out
anything that doesn't exist.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c      | 4 +---
 drivers/gpu/drm/i915/display/intel_crt.c    | 2 +-
 drivers/gpu/drm/i915/display/intel_ddi.c    | 4 +---
 drivers/gpu/drm/i915/display/intel_dp.c     | 2 +-
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 5 +----
 drivers/gpu/drm/i915/display/intel_dvo.c    | 2 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c   | 2 +-
 drivers/gpu/drm/i915/display/intel_lvds.c   | 2 +-
 drivers/gpu/drm/i915/display/intel_sdvo.c   | 2 +-
 drivers/gpu/drm/i915/display/intel_tv.c     | 2 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c      | 2 +-
 11 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 99a75c611387..325df29b0447 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1552,7 +1552,6 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
 	struct drm_connector *connector;
 	struct drm_display_mode *fixed_mode;
 	enum port port;
-	enum pipe pipe;
 
 	if (!intel_bios_is_dsi_present(dev_priv, &port))
 		return;
@@ -1585,8 +1584,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
 	encoder->get_hw_state = gen11_dsi_get_hw_state;
 	encoder->type = INTEL_OUTPUT_DSI;
 	encoder->cloneable = 0;
-	for_each_pipe(dev_priv, pipe)
-		encoder->pipe_mask |= BIT(pipe);
+	encoder->pipe_mask = ~0;
 	encoder->power_domain = POWER_DOMAIN_PORT_DSI;
 	encoder->get_power_domains = gen11_dsi_get_power_domains;
 
diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index 6e6c77971a5f..cdb7c5b355e9 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -996,7 +996,7 @@ void intel_crt_init(struct drm_i915_private *dev_priv)
 	if (IS_I830(dev_priv))
 		crt->base.pipe_mask = BIT(PIPE_A);
 	else
-		crt->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		crt->base.pipe_mask = ~0;
 
 	if (IS_GEN(dev_priv, 2))
 		connector->interlace_allowed = 0;
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 99aa798c9ea7..4afbe5e53e4b 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4588,7 +4588,6 @@ 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;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
 
 	init_hdmi = port_info->supports_dvi || port_info->supports_hdmi;
@@ -4640,8 +4639,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 	intel_encoder->power_domain = intel_port_to_power_domain(port);
 	intel_encoder->port = port;
 	intel_encoder->cloneable = 0;
-	for_each_pipe(dev_priv, pipe)
-		intel_encoder->pipe_mask |= BIT(pipe);
+	intel_encoder->pipe_mask = ~0;
 
 	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/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index e7114edbc18e..6ba757acfe3d 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -7368,7 +7368,7 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
 		else
 			intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
 	} else {
-		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = ~0;
 	}
 	intel_encoder->cloneable = 0;
 	intel_encoder->port = port;
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 1b1674ef679e..7be82cf926ca 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -598,8 +598,6 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
 	struct intel_dp_mst_encoder *intel_mst;
 	struct intel_encoder *intel_encoder;
 	struct drm_device *dev = intel_dig_port->base.base.dev;
-	struct drm_i915_private *dev_priv = to_i915(dev);
-	enum pipe pipe_iter;
 
 	intel_mst = kzalloc(sizeof(*intel_mst), GFP_KERNEL);
 
@@ -617,8 +615,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
 	intel_encoder->power_domain = intel_dig_port->base.power_domain;
 	intel_encoder->port = intel_dig_port->base.port;
 	intel_encoder->cloneable = 0;
-	for_each_pipe(dev_priv, pipe_iter)
-		intel_encoder->pipe_mask |= BIT(pipe_iter);
+	intel_encoder->pipe_mask = ~0;
 
 	intel_encoder->compute_config = intel_dp_mst_compute_config;
 	intel_encoder->disable = intel_mst_disable_dp;
diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
index a6c165d857e0..bcfbcb743e7d 100644
--- a/drivers/gpu/drm/i915/display/intel_dvo.c
+++ b/drivers/gpu/drm/i915/display/intel_dvo.c
@@ -505,7 +505,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
 		intel_encoder->type = INTEL_OUTPUT_DVO;
 		intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
 		intel_encoder->port = port;
-		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
+		intel_encoder->pipe_mask = ~0;
 
 		switch (dvo->type) {
 		case INTEL_DVO_CHIP_TMDS:
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index c561e10e7d13..e089e7f4ab36 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -3278,7 +3278,7 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
 		else
 			intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
 	} else {
-		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = ~0;
 	}
 	intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
 	/*
diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
index e358a6da5aaf..b1bc78623647 100644
--- a/drivers/gpu/drm/i915/display/intel_lvds.c
+++ b/drivers/gpu/drm/i915/display/intel_lvds.c
@@ -902,7 +902,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
 	if (INTEL_GEN(dev_priv) < 4)
 		intel_encoder->pipe_mask = BIT(PIPE_B);
 	else
-		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = ~0;
 
 	drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
 	connector->display_info.subpixel_order = SubPixelHorizontalRGB;
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index fed738effbc3..5b7f4baf7348 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -2921,7 +2921,7 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags)
 			      bytes[0], bytes[1]);
 		return false;
 	}
-	intel_sdvo->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+	intel_sdvo->base.pipe_mask = ~0;
 
 	return true;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
index 35e929423e48..398436586e43 100644
--- a/drivers/gpu/drm/i915/display/intel_tv.c
+++ b/drivers/gpu/drm/i915/display/intel_tv.c
@@ -1947,7 +1947,7 @@ intel_tv_init(struct drm_i915_private *dev_priv)
 	intel_encoder->type = INTEL_OUTPUT_TVOUT;
 	intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
 	intel_encoder->port = PORT_NONE;
-	intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
+	intel_encoder->pipe_mask = ~0;
 	intel_encoder->cloneable = 0;
 	intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
 
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 11a7c77d64bc..0ca49b1604c6 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -1870,7 +1870,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
 	 * port C. BXT isn't limited like this.
 	 */
 	if (IS_GEN9_LP(dev_priv))
-		intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+		intel_encoder->pipe_mask = ~0;
 	else if (port == PORT_A)
 		intel_encoder->pipe_mask = BIT(PIPE_A);
 	else
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6/6] drm/i915/mst: Document the userspace fail with possible_crtcs
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
                   ` (3 preceding siblings ...)
  2019-10-02 16:25 ` [PATCH 5/6] drm/i915: Simplify pipe_mask setup even further Ville Syrjala
@ 2019-10-02 16:25 ` Ville Syrjala
  2019-10-03 15:28   ` Ville Syrjälä
  2019-10-02 22:52 ` ✓ Fi.CI.BAT: success for series starting with [1/6] drm/i915: Polish possible_clones setup Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-10-02 16:25 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

To avoid accidentally breaking things in the future add a
comment explaining why we misconfigure the pipe_mask.

Also toss in a TODO for investigating a single encoder
approach as opposed to the encoder-per-pipe approach.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 7be82cf926ca..cb3047fe2d02 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -615,6 +615,18 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
 	intel_encoder->power_domain = intel_dig_port->base.power_domain;
 	intel_encoder->port = intel_dig_port->base.port;
 	intel_encoder->cloneable = 0;
+	/*
+	 * This is wrong, but broken userspace uses the intersection
+	 * of possible_crtcs of all the encoders of a given connector
+	 * to figure out which crtcs can drive said connector. What
+	 * should be used instead is the union of possible_crtcs.
+	 * To keep such userspace functioning we must misconfigure
+	 * this to make sure the intersection is not empty :(
+	 *
+	 * TODO: figure out if we could eliminate the per-pipe
+	 * encoders here and just have a single encoder for each
+	 * MST connector. That would sidestep the userspace bug.
+	 */
 	intel_encoder->pipe_mask = ~0;
 
 	intel_encoder->compute_config = intel_dp_mst_compute_config;
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/6] drm/i915: Allow ICL+ DSI on any pipe
  2019-10-02 16:25 ` [PATCH 4/6] drm/i915: Allow ICL+ DSI on any pipe Ville Syrjala
@ 2019-10-02 16:35   ` Lucas De Marchi
  0 siblings, 0 replies; 15+ messages in thread
From: Lucas De Marchi @ 2019-10-02 16:35 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On Wed, Oct 02, 2019 at 07:25:03PM +0300, Ville Syrjälä wrote:
>From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
>There are no longer any pipe<->DSI port limitations on icl+.
>Populate the pipe_mask accordingly.
>
>Cc: José Roberto de Souza <jose.souza@intel.com>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>---
> drivers/gpu/drm/i915/display/icl_dsi.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
>index 4cea8ed2bd31..99a75c611387 100644
>--- a/drivers/gpu/drm/i915/display/icl_dsi.c
>+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
>@@ -1552,6 +1552,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
> 	struct drm_connector *connector;
> 	struct drm_display_mode *fixed_mode;
> 	enum port port;
>+	enum pipe pipe;
>
> 	if (!intel_bios_is_dsi_present(dev_priv, &port))
> 		return;
>@@ -1584,7 +1585,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
> 	encoder->get_hw_state = gen11_dsi_get_hw_state;
> 	encoder->type = INTEL_OUTPUT_DSI;
> 	encoder->cloneable = 0;
>-	encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>+	for_each_pipe(dev_priv, pipe)
>+		encoder->pipe_mask |= BIT(pipe);

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>


Lucas De Marchi


> 	encoder->power_domain = POWER_DOMAIN_PORT_DSI;
> 	encoder->get_power_domains = gen11_dsi_get_power_domains;
>
>-- 
>2.21.0
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/6] drm/i915: s/crtc_mask/pipe_mask/
  2019-10-02 16:25 ` [PATCH 3/6] drm/i915: s/crtc_mask/pipe_mask/ Ville Syrjala
@ 2019-10-02 18:00   ` Lucas De Marchi
  2019-10-03 13:47     ` Ville Syrjälä
  0 siblings, 1 reply; 15+ messages in thread
From: Lucas De Marchi @ 2019-10-02 18:00 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: Intel Graphics

On Wed, Oct 2, 2019 at 9:25 AM Ville Syrjala
<ville.syrjala@linux.intel.com> wrote:
>
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Rename the encoder->crtc_mask to encoder->pipe_mask to better
> reflect what it actually contains.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

but... aren't they synonym? Like crtc means nothing these days and
just translates to pipe.

Lucas De Marchi

> ---
>  drivers/gpu/drm/i915/display/icl_dsi.c             | 2 +-
>  drivers/gpu/drm/i915/display/intel_crt.c           | 4 ++--
>  drivers/gpu/drm/i915/display/intel_ddi.c           | 2 +-
>  drivers/gpu/drm/i915/display/intel_display.c       | 2 +-
>  drivers/gpu/drm/i915/display/intel_display_types.h | 4 ++--
>  drivers/gpu/drm/i915/display/intel_dp.c            | 6 +++---
>  drivers/gpu/drm/i915/display/intel_dp_mst.c        | 2 +-
>  drivers/gpu/drm/i915/display/intel_dvo.c           | 2 +-
>  drivers/gpu/drm/i915/display/intel_hdmi.c          | 6 +++---
>  drivers/gpu/drm/i915/display/intel_lvds.c          | 4 ++--
>  drivers/gpu/drm/i915/display/intel_sdvo.c          | 2 +-
>  drivers/gpu/drm/i915/display/intel_tv.c            | 2 +-
>  drivers/gpu/drm/i915/display/vlv_dsi.c             | 6 +++---
>  13 files changed, 22 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index 6e398c33a524..4cea8ed2bd31 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -1584,7 +1584,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
>         encoder->get_hw_state = gen11_dsi_get_hw_state;
>         encoder->type = INTEL_OUTPUT_DSI;
>         encoder->cloneable = 0;
> -       encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> +       encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>         encoder->power_domain = POWER_DOMAIN_PORT_DSI;
>         encoder->get_power_domains = gen11_dsi_get_power_domains;
>
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
> index ff6126ea793c..6e6c77971a5f 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -994,9 +994,9 @@ void intel_crt_init(struct drm_i915_private *dev_priv)
>         crt->base.type = INTEL_OUTPUT_ANALOG;
>         crt->base.cloneable = (1 << INTEL_OUTPUT_DVO) | (1 << INTEL_OUTPUT_HDMI);
>         if (IS_I830(dev_priv))
> -               crt->base.crtc_mask = BIT(PIPE_A);
> +               crt->base.pipe_mask = BIT(PIPE_A);
>         else
> -               crt->base.crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> +               crt->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>
>         if (IS_GEN(dev_priv, 2))
>                 connector->interlace_allowed = 0;
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index b463e51f8b45..99aa798c9ea7 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4641,7 +4641,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>         intel_encoder->port = port;
>         intel_encoder->cloneable = 0;
>         for_each_pipe(dev_priv, pipe)
> -               intel_encoder->crtc_mask |= BIT(pipe);
> +               intel_encoder->pipe_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/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index d10e118b9a7c..eadb856b0d5b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -15261,7 +15261,7 @@ static u32 intel_encoder_possible_crtcs(struct intel_encoder *encoder)
>         u32 possible_crtcs = 0;
>
>         for_each_intel_crtc(dev, crtc) {
> -               if (encoder->crtc_mask & BIT(crtc->pipe))
> +               if (encoder->pipe_mask & BIT(crtc->pipe))
>                         possible_crtcs |= drm_crtc_mask(&crtc->base);
>         }
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 976669f01a8c..5930ed12a8a4 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -128,7 +128,8 @@ struct intel_encoder {
>
>         enum intel_output_type type;
>         enum port port;
> -       unsigned int cloneable;
> +       u16 cloneable;
> +       u8 pipe_mask;
>         enum intel_hotplug_state (*hotplug)(struct intel_encoder *encoder,
>                                             struct intel_connector *connector,
>                                             bool irq_received);
> @@ -187,7 +188,6 @@ struct intel_encoder {
>          * device interrupts are disabled.
>          */
>         void (*suspend)(struct intel_encoder *);
> -       int crtc_mask;
>         enum hpd_pin hpd_pin;
>         enum intel_display_power_domain power_domain;
>         /* for communication with audio component; protected by av_mutex */
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 1aa39e92f0df..e7114edbc18e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -7364,11 +7364,11 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
>         intel_encoder->power_domain = intel_port_to_power_domain(port);
>         if (IS_CHERRYVIEW(dev_priv)) {
>                 if (port == PORT_D)
> -                       intel_encoder->crtc_mask = BIT(PIPE_C);
> +                       intel_encoder->pipe_mask = BIT(PIPE_C);
>                 else
> -                       intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> +                       intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
>         } else {
> -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>         }
>         intel_encoder->cloneable = 0;
>         intel_encoder->port = port;
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 2203be28ea01..1b1674ef679e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -618,7 +618,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
>         intel_encoder->port = intel_dig_port->base.port;
>         intel_encoder->cloneable = 0;
>         for_each_pipe(dev_priv, pipe_iter)
> -               intel_encoder->crtc_mask |= BIT(pipe_iter);
> +               intel_encoder->pipe_mask |= BIT(pipe_iter);
>
>         intel_encoder->compute_config = intel_dp_mst_compute_config;
>         intel_encoder->disable = intel_mst_disable_dp;
> diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
> index 9827f99491d1..a6c165d857e0 100644
> --- a/drivers/gpu/drm/i915/display/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_dvo.c
> @@ -505,7 +505,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
>                 intel_encoder->type = INTEL_OUTPUT_DVO;
>                 intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
>                 intel_encoder->port = port;
> -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
>
>                 switch (dvo->type) {
>                 case INTEL_DVO_CHIP_TMDS:
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 0a6846c5ba95..c561e10e7d13 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -3274,11 +3274,11 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
>         intel_encoder->port = port;
>         if (IS_CHERRYVIEW(dev_priv)) {
>                 if (port == PORT_D)
> -                       intel_encoder->crtc_mask = BIT(PIPE_C);
> +                       intel_encoder->pipe_mask = BIT(PIPE_C);
>                 else
> -                       intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> +                       intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
>         } else {
> -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>         }
>         intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
>         /*
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> index cf1cd2295b9b..e358a6da5aaf 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -900,9 +900,9 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
>         intel_encoder->port = PORT_NONE;
>         intel_encoder->cloneable = 0;
>         if (INTEL_GEN(dev_priv) < 4)
> -               intel_encoder->crtc_mask = BIT(PIPE_B);
> +               intel_encoder->pipe_mask = BIT(PIPE_B);
>         else
> -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>
>         drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
>         connector->display_info.subpixel_order = SubPixelHorizontalRGB;
> diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
> index 47f5d87a938a..fed738effbc3 100644
> --- a/drivers/gpu/drm/i915/display/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
> @@ -2921,7 +2921,7 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags)
>                               bytes[0], bytes[1]);
>                 return false;
>         }
> -       intel_sdvo->base.crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> +       intel_sdvo->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>
>         return true;
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
> index 70726b481244..35e929423e48 100644
> --- a/drivers/gpu/drm/i915/display/intel_tv.c
> +++ b/drivers/gpu/drm/i915/display/intel_tv.c
> @@ -1947,7 +1947,7 @@ intel_tv_init(struct drm_i915_private *dev_priv)
>         intel_encoder->type = INTEL_OUTPUT_TVOUT;
>         intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
>         intel_encoder->port = PORT_NONE;
> -       intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> +       intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
>         intel_encoder->cloneable = 0;
>         intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
>
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 50064cde0724..11a7c77d64bc 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -1870,11 +1870,11 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
>          * port C. BXT isn't limited like this.
>          */
>         if (IS_GEN9_LP(dev_priv))
> -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>         else if (port == PORT_A)
> -               intel_encoder->crtc_mask = BIT(PIPE_A);
> +               intel_encoder->pipe_mask = BIT(PIPE_A);
>         else
> -               intel_encoder->crtc_mask = BIT(PIPE_B);
> +               intel_encoder->pipe_mask = BIT(PIPE_B);
>
>         if (dev_priv->vbt.dsi.config->dual_link)
>                 intel_dsi->ports = BIT(PORT_A) | BIT(PORT_C);
> --
> 2.21.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Lucas De Marchi
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* ✓ Fi.CI.BAT: success for series starting with [1/6] drm/i915: Polish possible_clones setup
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
                   ` (4 preceding siblings ...)
  2019-10-02 16:25 ` [PATCH 6/6] drm/i915/mst: Document the userspace fail with possible_crtcs Ville Syrjala
@ 2019-10-02 22:52 ` Patchwork
  2019-10-03  7:15 ` ✗ Fi.CI.IGT: failure " Patchwork
  2019-10-16 20:29 ` [PATCH 1/6] " Juha-Pekka Heikkila
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-10-02 22:52 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/6] drm/i915: Polish possible_clones setup
URL   : https://patchwork.freedesktop.org/series/67504/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6992 -> Patchwork_14637
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/index.html

Known issues
------------

  Here are the changes found in Patchwork_14637 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_mmap_gtt@basic-small-bo-tiledy:
    - fi-icl-u3:          [PASS][1] -> [DMESG-WARN][2] ([fdo#107724]) +2 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/fi-icl-u3/igt@gem_mmap_gtt@basic-small-bo-tiledy.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/fi-icl-u3/igt@gem_mmap_gtt@basic-small-bo-tiledy.html

  * igt@i915_module_load@reload:
    - fi-icl-u3:          [PASS][3] -> [DMESG-WARN][4] ([fdo#107724] / [fdo#111214])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/fi-icl-u3/igt@i915_module_load@reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/fi-icl-u3/igt@i915_module_load@reload.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [PASS][5] -> [DMESG-WARN][6] ([fdo#102614])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic:
    - fi-icl-u3:          [DMESG-WARN][7] ([fdo#107724]) -> [PASS][8] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/fi-icl-u3/igt@gem_mmap_gtt@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/fi-icl-u3/igt@gem_mmap_gtt@basic.html

  * {igt@i915_selftest@live_gt_timelines}:
    - {fi-tgl-u}:         [INCOMPLETE][9] ([fdo#111831]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/fi-tgl-u/igt@i915_selftest@live_gt_timelines.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/fi-tgl-u/igt@i915_selftest@live_gt_timelines.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102505]: https://bugs.freedesktop.org/show_bug.cgi?id=102505
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111049]: https://bugs.freedesktop.org/show_bug.cgi?id=111049
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214
  [fdo#111831]: https://bugs.freedesktop.org/show_bug.cgi?id=111831


Participating hosts (51 -> 44)
------------------------------

  Additional (1): fi-kbl-7500u 
  Missing    (8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-whl-u fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6992 -> Patchwork_14637

  CI-20190529: 20190529
  CI_DRM_6992: 7116520f059e12d50596bdbe73b48ba8e8d50daf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5210: 74f55119f9920b65996535210a09147997804136 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14637: 923344136006a1c6cd7fb5f437fa59b20dcb4b86 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

923344136006 drm/i915/mst: Document the userspace fail with possible_crtcs
be42d6a759d2 drm/i915: Simplify pipe_mask setup even further
783a6894e9fa drm/i915: Allow ICL+ DSI on any pipe
56f195d09e49 drm/i915: s/crtc_mask/pipe_mask/
2085488d8e83 drm/i915: Simplfy LVDS crtc_mask setup
bfa232db6e6a drm/i915: Polish possible_clones setup

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* ✗ Fi.CI.IGT: failure for series starting with [1/6] drm/i915: Polish possible_clones setup
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
                   ` (5 preceding siblings ...)
  2019-10-02 22:52 ` ✓ Fi.CI.BAT: success for series starting with [1/6] drm/i915: Polish possible_clones setup Patchwork
@ 2019-10-03  7:15 ` Patchwork
  2019-10-16 20:29 ` [PATCH 1/6] " Juha-Pekka Heikkila
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-10-03  7:15 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/6] drm/i915: Polish possible_clones setup
URL   : https://patchwork.freedesktop.org/series/67504/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6992_full -> Patchwork_14637_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_14637_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_14637_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_14637_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-gup:
    - shard-skl:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-gup.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl3/igt@gem_userptr_blits@map-fixed-invalidate-overlap-gup.html

  
Known issues
------------

  Here are the changes found in Patchwork_14637_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-kbl:          [PASS][3] -> [DMESG-WARN][4] ([fdo#111870])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-kbl2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-kbl4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
    - shard-glk:          [PASS][5] -> [DMESG-WARN][6] ([fdo#111870])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-glk4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-glk8/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-snb:          [PASS][7] -> [DMESG-WARN][8] ([fdo#111870])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-snb6/igt@gem_userptr_blits@sync-unmap.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-snb6/igt@gem_userptr_blits@sync-unmap.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-hsw:          [PASS][9] -> [DMESG-WARN][10] ([fdo#111870])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-hsw1/igt@gem_userptr_blits@sync-unmap-cycles.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-hsw1/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@kms_cursor_crc@pipe-a-cursor-128x128-random:
    - shard-skl:          [PASS][11] -> [FAIL][12] ([fdo#103232])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl5/igt@kms_cursor_crc@pipe-a-cursor-128x128-random.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl1/igt@kms_cursor_crc@pipe-a-cursor-128x128-random.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x64-random:
    - shard-apl:          [PASS][13] -> [INCOMPLETE][14] ([fdo#103927])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-apl8/igt@kms_cursor_crc@pipe-b-cursor-64x64-random.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-apl3/igt@kms_cursor_crc@pipe-b-cursor-64x64-random.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-skl:          [PASS][15] -> [FAIL][16] ([fdo#102670])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
    - shard-iclb:         [PASS][17] -> [FAIL][18] ([fdo#103167]) +5 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-modesetfrombusy:
    - shard-skl:          [PASS][19] -> [FAIL][20] ([fdo#103167]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl5/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl1/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-apl:          [PASS][21] -> [DMESG-WARN][22] ([fdo#108566]) +2 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-apl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-apl7/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
    - shard-skl:          [PASS][23] -> [INCOMPLETE][24] ([fdo#104108])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl10/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-skl:          [PASS][25] -> [FAIL][26] ([fdo#108145]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl9/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [PASS][27] -> [FAIL][28] ([fdo#108145] / [fdo#110403]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][29] -> [SKIP][30] ([fdo#109441]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb4/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-skl:          [PASS][31] -> [FAIL][32] ([fdo#99912])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl1/igt@kms_setmode@basic.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl2/igt@kms_setmode@basic.html

  * igt@perf@polling:
    - shard-skl:          [PASS][33] -> [FAIL][34] ([fdo#110728])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl8/igt@perf@polling.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl1/igt@perf@polling.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][35] -> [SKIP][36] ([fdo#109276]) +16 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb6/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_ctx_shared@exec-single-timeline-bsd:
    - shard-iclb:         [SKIP][37] ([fdo#110841]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb1/igt@gem_ctx_shared@exec-single-timeline-bsd.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb5/igt@gem_ctx_shared@exec-single-timeline-bsd.html

  * igt@gem_eio@in-flight-suspend:
    - shard-snb:          [INCOMPLETE][39] ([fdo#105411]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-snb1/igt@gem_eio@in-flight-suspend.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-snb5/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][41] ([fdo#110854]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb8/igt@gem_exec_balancer@smoke.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb2/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@preempt-queue-bsd1:
    - shard-iclb:         [SKIP][43] ([fdo#109276]) -> [PASS][44] +13 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb6/igt@gem_exec_schedule@preempt-queue-bsd1.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd1.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
    - shard-iclb:         [SKIP][45] ([fdo#111325]) -> [PASS][46] +3 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb2/igt@gem_exec_schedule@reorder-wide-bsd.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb7/igt@gem_exec_schedule@reorder-wide-bsd.html

  * igt@gem_softpin@noreloc-s3:
    - shard-skl:          [INCOMPLETE][47] ([fdo#104108]) -> [PASS][48] +1 similar issue
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl2/igt@gem_softpin@noreloc-s3.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl10/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-snb:          [DMESG-WARN][49] ([fdo#111870]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-snb1/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-iclb:         [DMESG-WARN][51] ([fdo#111870]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb5/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-apl:          [DMESG-WARN][53] ([fdo#109385] / [fdo#111870]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-apl1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-apl8/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
    - shard-kbl:          [DMESG-WARN][55] ([fdo#111870]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-kbl4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-kbl2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-skl:          [DMESG-WARN][57] ([fdo#111870]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-skl8/igt@gem_userptr_blits@sync-unmap-cycles.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-skl4/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_pm_rpm@modeset-stress-extra-wait:
    - shard-glk:          [DMESG-WARN][59] ([fdo#105763] / [fdo#106538]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-glk8/igt@i915_pm_rpm@modeset-stress-extra-wait.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-glk7/igt@i915_pm_rpm@modeset-stress-extra-wait.html

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [DMESG-WARN][61] ([fdo#108566]) -> [PASS][62] +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-apl8/igt@i915_suspend@sysfs-reader.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-apl2/igt@i915_suspend@sysfs-reader.html

  * igt@kms_atomic_interruptible@universal-setplane-primary:
    - shard-hsw:          [DMESG-WARN][63] ([fdo#102614]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-hsw5/igt@kms_atomic_interruptible@universal-setplane-primary.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-hsw5/igt@kms_atomic_interruptible@universal-setplane-primary.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x85-onscreen:
    - shard-apl:          [FAIL][65] ([fdo#103232]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-apl2/igt@kms_cursor_crc@pipe-a-cursor-256x85-onscreen.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-apl1/igt@kms_cursor_crc@pipe-a-cursor-256x85-onscreen.html

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
    - shard-glk:          [FAIL][67] ([fdo#106509] / [fdo#107409]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-glk4/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-glk5/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [FAIL][69] ([fdo#105363]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render:
    - shard-iclb:         [FAIL][71] ([fdo#103167]) -> [PASS][72] +2 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
    - shard-iclb:         [FAIL][73] ([fdo#103167] / [fdo#110378]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-iclb:         [FAIL][75] ([fdo#103166]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_psr@no_drrs:
    - shard-iclb:         [FAIL][77] ([fdo#108341]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb1/igt@kms_psr@no_drrs.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb5/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_cursor_plane_move:
    - shard-iclb:         [SKIP][79] ([fdo#109441]) -> [PASS][80] +1 similar issue
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb4/igt@kms_psr@psr2_cursor_plane_move.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-iclb:         [INCOMPLETE][81] ([fdo#107713]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb7/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb8/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Warnings ####

  * igt@gem_mocs_settings@mocs-settings-bsd2:
    - shard-iclb:         [SKIP][83] ([fdo#109276]) -> [FAIL][84] ([fdo#111330]) +1 similar issue
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb8/igt@gem_mocs_settings@mocs-settings-bsd2.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb1/igt@gem_mocs_settings@mocs-settings-bsd2.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [DMESG-WARN][85] ([fdo#107724]) -> [SKIP][86] ([fdo#109349])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6992/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/shard-iclb4/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#102670]: https://bugs.freedesktop.org/show_bug.cgi?id=102670
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106509]: https://bugs.freedesktop.org/show_bug.cgi?id=106509
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [fdo#107409]: https://bugs.freedesktop.org/show_bug.cgi?id=107409
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108341]: https://bugs.freedesktop.org/show_bug.cgi?id=108341
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109385]: https://bugs.freedesktop.org/show_bug.cgi?id=109385
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110378]: https://bugs.freedesktop.org/show_bug.cgi?id=110378
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#110548]: https://bugs.freedesktop.org/show_bug.cgi?id=110548
  [fdo#110728]: https://bugs.freedesktop.org/show_bug.cgi?id=110728
  [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (11 -> 10)
------------------------------

  Missing    (1): shard-tglb 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6992 -> Patchwork_14637

  CI-20190529: 20190529
  CI_DRM_6992: 7116520f059e12d50596bdbe73b48ba8e8d50daf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5210: 74f55119f9920b65996535210a09147997804136 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14637: 923344136006a1c6cd7fb5f437fa59b20dcb4b86 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14637/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/6] drm/i915: s/crtc_mask/pipe_mask/
  2019-10-02 18:00   ` Lucas De Marchi
@ 2019-10-03 13:47     ` Ville Syrjälä
  0 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjälä @ 2019-10-03 13:47 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: Intel Graphics

On Wed, Oct 02, 2019 at 11:00:45AM -0700, Lucas De Marchi wrote:
> On Wed, Oct 2, 2019 at 9:25 AM Ville Syrjala
> <ville.syrjala@linux.intel.com> wrote:
> >
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Rename the encoder->crtc_mask to encoder->pipe_mask to better
> > reflect what it actually contains.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
> 
> but... aren't they synonym? Like crtc means nothing these days and
> just translates to pipe.

Crtc is a higher level concept. In the future we probably want to
have pipe!=drm_crtc_index() so I'm trying to make the distinction
100% obvious everywhere.

> 
> Lucas De Marchi
> 
> > ---
> >  drivers/gpu/drm/i915/display/icl_dsi.c             | 2 +-
> >  drivers/gpu/drm/i915/display/intel_crt.c           | 4 ++--
> >  drivers/gpu/drm/i915/display/intel_ddi.c           | 2 +-
> >  drivers/gpu/drm/i915/display/intel_display.c       | 2 +-
> >  drivers/gpu/drm/i915/display/intel_display_types.h | 4 ++--
> >  drivers/gpu/drm/i915/display/intel_dp.c            | 6 +++---
> >  drivers/gpu/drm/i915/display/intel_dp_mst.c        | 2 +-
> >  drivers/gpu/drm/i915/display/intel_dvo.c           | 2 +-
> >  drivers/gpu/drm/i915/display/intel_hdmi.c          | 6 +++---
> >  drivers/gpu/drm/i915/display/intel_lvds.c          | 4 ++--
> >  drivers/gpu/drm/i915/display/intel_sdvo.c          | 2 +-
> >  drivers/gpu/drm/i915/display/intel_tv.c            | 2 +-
> >  drivers/gpu/drm/i915/display/vlv_dsi.c             | 6 +++---
> >  13 files changed, 22 insertions(+), 22 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> > index 6e398c33a524..4cea8ed2bd31 100644
> > --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> > @@ -1584,7 +1584,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
> >         encoder->get_hw_state = gen11_dsi_get_hw_state;
> >         encoder->type = INTEL_OUTPUT_DSI;
> >         encoder->cloneable = 0;
> > -       encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> > +       encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> >         encoder->power_domain = POWER_DOMAIN_PORT_DSI;
> >         encoder->get_power_domains = gen11_dsi_get_power_domains;
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
> > index ff6126ea793c..6e6c77971a5f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_crt.c
> > +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> > @@ -994,9 +994,9 @@ void intel_crt_init(struct drm_i915_private *dev_priv)
> >         crt->base.type = INTEL_OUTPUT_ANALOG;
> >         crt->base.cloneable = (1 << INTEL_OUTPUT_DVO) | (1 << INTEL_OUTPUT_HDMI);
> >         if (IS_I830(dev_priv))
> > -               crt->base.crtc_mask = BIT(PIPE_A);
> > +               crt->base.pipe_mask = BIT(PIPE_A);
> >         else
> > -               crt->base.crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> > +               crt->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> >
> >         if (IS_GEN(dev_priv, 2))
> >                 connector->interlace_allowed = 0;
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index b463e51f8b45..99aa798c9ea7 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -4641,7 +4641,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
> >         intel_encoder->port = port;
> >         intel_encoder->cloneable = 0;
> >         for_each_pipe(dev_priv, pipe)
> > -               intel_encoder->crtc_mask |= BIT(pipe);
> > +               intel_encoder->pipe_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/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> > index d10e118b9a7c..eadb856b0d5b 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -15261,7 +15261,7 @@ static u32 intel_encoder_possible_crtcs(struct intel_encoder *encoder)
> >         u32 possible_crtcs = 0;
> >
> >         for_each_intel_crtc(dev, crtc) {
> > -               if (encoder->crtc_mask & BIT(crtc->pipe))
> > +               if (encoder->pipe_mask & BIT(crtc->pipe))
> >                         possible_crtcs |= drm_crtc_mask(&crtc->base);
> >         }
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index 976669f01a8c..5930ed12a8a4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -128,7 +128,8 @@ struct intel_encoder {
> >
> >         enum intel_output_type type;
> >         enum port port;
> > -       unsigned int cloneable;
> > +       u16 cloneable;
> > +       u8 pipe_mask;
> >         enum intel_hotplug_state (*hotplug)(struct intel_encoder *encoder,
> >                                             struct intel_connector *connector,
> >                                             bool irq_received);
> > @@ -187,7 +188,6 @@ struct intel_encoder {
> >          * device interrupts are disabled.
> >          */
> >         void (*suspend)(struct intel_encoder *);
> > -       int crtc_mask;
> >         enum hpd_pin hpd_pin;
> >         enum intel_display_power_domain power_domain;
> >         /* for communication with audio component; protected by av_mutex */
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> > index 1aa39e92f0df..e7114edbc18e 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > @@ -7364,11 +7364,11 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
> >         intel_encoder->power_domain = intel_port_to_power_domain(port);
> >         if (IS_CHERRYVIEW(dev_priv)) {
> >                 if (port == PORT_D)
> > -                       intel_encoder->crtc_mask = BIT(PIPE_C);
> > +                       intel_encoder->pipe_mask = BIT(PIPE_C);
> >                 else
> > -                       intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> > +                       intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
> >         } else {
> > -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> > +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> >         }
> >         intel_encoder->cloneable = 0;
> >         intel_encoder->port = port;
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index 2203be28ea01..1b1674ef679e 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -618,7 +618,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
> >         intel_encoder->port = intel_dig_port->base.port;
> >         intel_encoder->cloneable = 0;
> >         for_each_pipe(dev_priv, pipe_iter)
> > -               intel_encoder->crtc_mask |= BIT(pipe_iter);
> > +               intel_encoder->pipe_mask |= BIT(pipe_iter);
> >
> >         intel_encoder->compute_config = intel_dp_mst_compute_config;
> >         intel_encoder->disable = intel_mst_disable_dp;
> > diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
> > index 9827f99491d1..a6c165d857e0 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dvo.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dvo.c
> > @@ -505,7 +505,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
> >                 intel_encoder->type = INTEL_OUTPUT_DVO;
> >                 intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
> >                 intel_encoder->port = port;
> > -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> > +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
> >
> >                 switch (dvo->type) {
> >                 case INTEL_DVO_CHIP_TMDS:
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> > index 0a6846c5ba95..c561e10e7d13 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> > @@ -3274,11 +3274,11 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
> >         intel_encoder->port = port;
> >         if (IS_CHERRYVIEW(dev_priv)) {
> >                 if (port == PORT_D)
> > -                       intel_encoder->crtc_mask = BIT(PIPE_C);
> > +                       intel_encoder->pipe_mask = BIT(PIPE_C);
> >                 else
> > -                       intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> > +                       intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
> >         } else {
> > -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> > +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> >         }
> >         intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
> >         /*
> > diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> > index cf1cd2295b9b..e358a6da5aaf 100644
> > --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> > +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> > @@ -900,9 +900,9 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
> >         intel_encoder->port = PORT_NONE;
> >         intel_encoder->cloneable = 0;
> >         if (INTEL_GEN(dev_priv) < 4)
> > -               intel_encoder->crtc_mask = BIT(PIPE_B);
> > +               intel_encoder->pipe_mask = BIT(PIPE_B);
> >         else
> > -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> > +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> >
> >         drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
> >         connector->display_info.subpixel_order = SubPixelHorizontalRGB;
> > diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
> > index 47f5d87a938a..fed738effbc3 100644
> > --- a/drivers/gpu/drm/i915/display/intel_sdvo.c
> > +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
> > @@ -2921,7 +2921,7 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags)
> >                               bytes[0], bytes[1]);
> >                 return false;
> >         }
> > -       intel_sdvo->base.crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> > +       intel_sdvo->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> >
> >         return true;
> >  }
> > diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
> > index 70726b481244..35e929423e48 100644
> > --- a/drivers/gpu/drm/i915/display/intel_tv.c
> > +++ b/drivers/gpu/drm/i915/display/intel_tv.c
> > @@ -1947,7 +1947,7 @@ intel_tv_init(struct drm_i915_private *dev_priv)
> >         intel_encoder->type = INTEL_OUTPUT_TVOUT;
> >         intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
> >         intel_encoder->port = PORT_NONE;
> > -       intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> > +       intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
> >         intel_encoder->cloneable = 0;
> >         intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
> >
> > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> > index 50064cde0724..11a7c77d64bc 100644
> > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> > @@ -1870,11 +1870,11 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
> >          * port C. BXT isn't limited like this.
> >          */
> >         if (IS_GEN9_LP(dev_priv))
> > -               intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> > +               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> >         else if (port == PORT_A)
> > -               intel_encoder->crtc_mask = BIT(PIPE_A);
> > +               intel_encoder->pipe_mask = BIT(PIPE_A);
> >         else
> > -               intel_encoder->crtc_mask = BIT(PIPE_B);
> > +               intel_encoder->pipe_mask = BIT(PIPE_B);
> >
> >         if (dev_priv->vbt.dsi.config->dual_link)
> >                 intel_dsi->ports = BIT(PORT_A) | BIT(PORT_C);
> > --
> > 2.21.0
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> 
> 
> -- 
> Lucas De Marchi

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 6/6] drm/i915/mst: Document the userspace fail with possible_crtcs
  2019-10-02 16:25 ` [PATCH 6/6] drm/i915/mst: Document the userspace fail with possible_crtcs Ville Syrjala
@ 2019-10-03 15:28   ` Ville Syrjälä
  0 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjälä @ 2019-10-03 15:28 UTC (permalink / raw)
  To: intel-gfx

On Wed, Oct 02, 2019 at 07:25:05PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> To avoid accidentally breaking things in the future add a
> comment explaining why we misconfigure the pipe_mask.
> 
> Also toss in a TODO for investigating a single encoder
> approach as opposed to the encoder-per-pipe approach.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp_mst.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 7be82cf926ca..cb3047fe2d02 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -615,6 +615,18 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
>  	intel_encoder->power_domain = intel_dig_port->base.power_domain;
>  	intel_encoder->port = intel_dig_port->base.port;
>  	intel_encoder->cloneable = 0;
> +	/*
> +	 * This is wrong, but broken userspace uses the intersection
> +	 * of possible_crtcs of all the encoders of a given connector
> +	 * to figure out which crtcs can drive said connector. What
> +	 * should be used instead is the union of possible_crtcs.
> +	 * To keep such userspace functioning we must misconfigure
> +	 * this to make sure the intersection is not empty :(
> +	 *
> +	 * TODO: figure out if we could eliminate the per-pipe
> +	 * encoders here and just have a single encoder for each
> +	 * MST connector. That would sidestep the userspace bug.

That of course won't work since we can't register encoders dynamically.
I guess we'll just have to live with this slight discrepancy with the
possible_crtcs. We could make the encoder<->pipe assignment totally
flexible but that wouldn't actually change anything. We still get to
pick one based on whatever reason we can think of, and using the pipe
for that seems as good a reason as any.

What we could try to remove is having separate MST encoders for each
DDI port. But that would make encoder->port not work for MST again. So
defintiely has downsides, and doens't do anything for the possible_crtcs
thing.

Bah. I'll just drop the TODO.

> +	 */
>  	intel_encoder->pipe_mask = ~0;
>  
>  	intel_encoder->compute_config = intel_dp_mst_compute_config;
> -- 
> 2.21.0

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/6] drm/i915: Polish possible_clones setup
  2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
                   ` (6 preceding siblings ...)
  2019-10-03  7:15 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2019-10-16 20:29 ` Juha-Pekka Heikkila
  7 siblings, 0 replies; 15+ messages in thread
From: Juha-Pekka Heikkila @ 2019-10-16 20:29 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 2.10.2019 19.25, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Replace the hand rolled stuff with drm_encoder_mask() when populating
> possible_clones, and rename the function to
> intel_encoder_possible_clones() to make it clear what it's used for.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_display.c | 13 +++++--------
>   1 file changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 20ec8a1dc5e1..d10e118b9a7c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -15240,21 +15240,18 @@ int intel_get_pipe_from_crtc_id_ioctl(struct drm_device *dev, void *data,
>   	return 0;
>   }
>   
> -static int intel_encoder_clones(struct intel_encoder *encoder)
> +static u32 intel_encoder_possible_clones(struct intel_encoder *encoder)
>   {
>   	struct drm_device *dev = encoder->base.dev;
>   	struct intel_encoder *source_encoder;
> -	int index_mask = 0;
> -	int entry = 0;
> +	u32 possible_clones = 0;
>   
>   	for_each_intel_encoder(dev, source_encoder) {
>   		if (encoders_cloneable(encoder, source_encoder))
> -			index_mask |= (1 << entry);
> -
> -		entry++;
> +			possible_clones |= drm_encoder_mask(&source_encoder->base);
>   	}
>   
> -	return index_mask;
> +	return possible_clones;
>   }
>   
>   static u32 intel_encoder_possible_crtcs(struct intel_encoder *encoder)
> @@ -15574,7 +15571,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
>   		encoder->base.possible_crtcs =
>   			intel_encoder_possible_crtcs(encoder);
>   		encoder->base.possible_clones =
> -			intel_encoder_clones(encoder);
> +			intel_encoder_possible_clones(encoder);
>   	}
>   
>   	intel_init_pch_refclk(dev_priv);
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/6] drm/i915: Simplfy LVDS crtc_mask setup
@ 2019-10-31 13:34     ` Juha-Pekka Heikkila
  0 siblings, 0 replies; 15+ messages in thread
From: Juha-Pekka Heikkila @ 2019-10-31 13:34 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

 From this set patches 2,5,6 look all ok to me.

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 2.10.2019 19.25, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We don't need to special case PCH vs. gen4 when setting up the LVDS
> crtc_mask. Just claim pipes A|B|C work and
> intel_encoder_possible_crtcs() will drop out any crtc that doesn't
> exist.
> 
> v2: Put the special case first to match what most other encoders do
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_lvds.c | 8 +++-----
>   1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> index 13841d7c455b..cf1cd2295b9b 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -899,12 +899,10 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
>   	intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
>   	intel_encoder->port = PORT_NONE;
>   	intel_encoder->cloneable = 0;
> -	if (HAS_PCH_SPLIT(dev_priv))
> -		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> -	else if (IS_GEN(dev_priv, 4))
> -		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> -	else
> +	if (INTEL_GEN(dev_priv) < 4)
>   		intel_encoder->crtc_mask = BIT(PIPE_B);
> +	else
> +		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>   
>   	drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
>   	connector->display_info.subpixel_order = SubPixelHorizontalRGB;
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Intel-gfx] [PATCH 2/6] drm/i915: Simplfy LVDS crtc_mask setup
@ 2019-10-31 13:34     ` Juha-Pekka Heikkila
  0 siblings, 0 replies; 15+ messages in thread
From: Juha-Pekka Heikkila @ 2019-10-31 13:34 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

 From this set patches 2,5,6 look all ok to me.

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 2.10.2019 19.25, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We don't need to special case PCH vs. gen4 when setting up the LVDS
> crtc_mask. Just claim pipes A|B|C work and
> intel_encoder_possible_crtcs() will drop out any crtc that doesn't
> exist.
> 
> v2: Put the special case first to match what most other encoders do
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_lvds.c | 8 +++-----
>   1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> index 13841d7c455b..cf1cd2295b9b 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -899,12 +899,10 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
>   	intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
>   	intel_encoder->port = PORT_NONE;
>   	intel_encoder->cloneable = 0;
> -	if (HAS_PCH_SPLIT(dev_priv))
> -		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
> -	else if (IS_GEN(dev_priv, 4))
> -		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B);
> -	else
> +	if (INTEL_GEN(dev_priv) < 4)
>   		intel_encoder->crtc_mask = BIT(PIPE_B);
> +	else
> +		intel_encoder->crtc_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
>   
>   	drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
>   	connector->display_info.subpixel_order = SubPixelHorizontalRGB;
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-10-31 13:34 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-02 16:25 [PATCH 1/6] drm/i915: Polish possible_clones setup Ville Syrjala
2019-10-02 16:25 ` [PATCH 2/6] drm/i915: Simplfy LVDS crtc_mask setup Ville Syrjala
2019-10-31 13:34   ` Juha-Pekka Heikkila
2019-10-31 13:34     ` [Intel-gfx] " Juha-Pekka Heikkila
2019-10-02 16:25 ` [PATCH 3/6] drm/i915: s/crtc_mask/pipe_mask/ Ville Syrjala
2019-10-02 18:00   ` Lucas De Marchi
2019-10-03 13:47     ` Ville Syrjälä
2019-10-02 16:25 ` [PATCH 4/6] drm/i915: Allow ICL+ DSI on any pipe Ville Syrjala
2019-10-02 16:35   ` Lucas De Marchi
2019-10-02 16:25 ` [PATCH 5/6] drm/i915: Simplify pipe_mask setup even further Ville Syrjala
2019-10-02 16:25 ` [PATCH 6/6] drm/i915/mst: Document the userspace fail with possible_crtcs Ville Syrjala
2019-10-03 15:28   ` Ville Syrjälä
2019-10-02 22:52 ` ✓ Fi.CI.BAT: success for series starting with [1/6] drm/i915: Polish possible_clones setup Patchwork
2019-10-03  7:15 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-10-16 20:29 ` [PATCH 1/6] " Juha-Pekka Heikkila

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.