* [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split
@ 2017-10-10 12:11 Ville Syrjala
2017-10-10 12:11 ` [PATCH v2 1/9] drm/i915: Dump 'output_types' in crtc state dump Ville Syrjala
` (11 more replies)
0 siblings, 12 replies; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:11 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Here's a small selection of patches I extracted from my monster
DDI encoder->type drobbery series. These mostly split the encoder
hooks along the DP vs. HDMI lines. Hopefully it'll be a bit easier
to get these reviewed when they're not buried wihtin such a massive
series.
Ville Syrjälä (9):
drm/i915: Dump 'output_types' in crtc state dump
drm/i915: Extract intel_ddi_clk_disable()
drm/i915: Extract intel_disable_ddi_buf()
drm/i915: Inline the required bits of intel_ddi_post_disable() into
intel_ddi_fdi_post_disable()
drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants
drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp()
drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
drm/i915: Plumb crtc_state etc. directly to
intel_ddi_pre_enable_{dp,hdmi}()
drm/i915: Split intel_enable_ddi() into DP and HDMI variants
drivers/gpu/drm/i915/intel_ddi.c | 318 ++++++++++++++++++++---------------
drivers/gpu/drm/i915/intel_display.c | 51 ++++++
2 files changed, 231 insertions(+), 138 deletions(-)
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 1/9] drm/i915: Dump 'output_types' in crtc state dump
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
@ 2017-10-10 12:11 ` Ville Syrjala
2017-10-11 19:50 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 2/9] drm/i915: Extract intel_ddi_clk_disable() Ville Syrjala
` (10 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:11 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
To make it easier to debug things let's dump the output types bitmask in
the crtc state dump. And to make life that much better, let's pretty
print it as a a human reaadable string as well.
v2: Have the caller pass in the buffer (Chris)
#undef OUTPUT_TYPE (Jani)
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 51 ++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 45d6e57fbe89..4938c23a3fc1 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10674,6 +10674,52 @@ intel_dump_m_n_config(struct intel_crtc_state *pipe_config, char *id,
m_n->link_m, m_n->link_n, m_n->tu);
}
+#define OUTPUT_TYPE(x) [INTEL_OUTPUT_ ## x] = #x
+
+static const char * const output_type_str[] = {
+ OUTPUT_TYPE(UNUSED),
+ OUTPUT_TYPE(ANALOG),
+ OUTPUT_TYPE(DVO),
+ OUTPUT_TYPE(SDVO),
+ OUTPUT_TYPE(LVDS),
+ OUTPUT_TYPE(TVOUT),
+ OUTPUT_TYPE(HDMI),
+ OUTPUT_TYPE(DP),
+ OUTPUT_TYPE(EDP),
+ OUTPUT_TYPE(DSI),
+ OUTPUT_TYPE(UNKNOWN),
+ OUTPUT_TYPE(DP_MST),
+};
+
+#undef OUTPUT_TYPE
+
+static void snprintf_output_types(char *buf, size_t len,
+ unsigned int output_types)
+{
+ char *str = buf;
+ int i;
+
+ str[0] = '\0';
+
+ for (i = 0; i < ARRAY_SIZE(output_type_str); i++) {
+ int r;
+
+ if ((output_types & BIT(i)) == 0)
+ continue;
+
+ r = snprintf(str, len, "%s%s",
+ str != buf ? "," : "", output_type_str[i]);
+ if (r >= len)
+ break;
+ str += r;
+ len -= r;
+
+ output_types &= ~BIT(i);
+ }
+
+ WARN_ON_ONCE(output_types != 0);
+}
+
static void intel_dump_pipe_config(struct intel_crtc *crtc,
struct intel_crtc_state *pipe_config,
const char *context)
@@ -10684,10 +10730,15 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc,
struct intel_plane *intel_plane;
struct intel_plane_state *state;
struct drm_framebuffer *fb;
+ char buf[64];
DRM_DEBUG_KMS("[CRTC:%d:%s]%s\n",
crtc->base.base.id, crtc->base.name, context);
+ snprintf_output_types(buf, sizeof(buf), pipe_config->output_types);
+ DRM_DEBUG_KMS("output_types: %s (0x%x)\n",
+ buf, pipe_config->output_types);
+
DRM_DEBUG_KMS("cpu_transcoder: %s, pipe bpp: %i, dithering: %i\n",
transcoder_name(pipe_config->cpu_transcoder),
pipe_config->pipe_bpp, pipe_config->dither);
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 2/9] drm/i915: Extract intel_ddi_clk_disable()
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
2017-10-10 12:11 ` [PATCH v2 1/9] drm/i915: Dump 'output_types' in crtc state dump Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-11 19:52 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 3/9] drm/i915: Extract intel_disable_ddi_buf() Ville Syrjala
` (9 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pull the code to disable the port clock into a function. We already have
the intel_ddi_clk_select() counterpart.
v2: Keep using intel_ddi_get_encoder_port() for now (Chris)
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index b307b6fe1ce3..1cc61ba48e3a 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2141,6 +2141,21 @@ static void intel_ddi_clk_select(struct intel_encoder *encoder,
}
}
+static void intel_ddi_clk_disable(struct intel_encoder *encoder)
+{
+ struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+ enum port port = intel_ddi_get_encoder_port(encoder);
+
+ if (IS_CANNONLAKE(dev_priv))
+ I915_WRITE(DPCLKA_CFGCR0, I915_READ(DPCLKA_CFGCR0) |
+ DPCLKA_CFGCR0_DDI_CLK_OFF(port));
+ else if (IS_GEN9_BC(dev_priv))
+ I915_WRITE(DPLL_CTRL2, I915_READ(DPLL_CTRL2) |
+ DPLL_CTRL2_DDI_CLK_OFF(port));
+ else if (INTEL_GEN(dev_priv) < 9)
+ I915_WRITE(PORT_CLK_SEL(port), PORT_CLK_SEL_NONE);
+}
+
static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
int link_rate, uint32_t lane_count,
struct intel_shared_dpll *pll,
@@ -2301,14 +2316,7 @@ static void intel_ddi_post_disable(struct intel_encoder *intel_encoder,
if (dig_port)
intel_display_power_put(dev_priv, dig_port->ddi_io_power_domain);
- if (IS_CANNONLAKE(dev_priv))
- I915_WRITE(DPCLKA_CFGCR0, I915_READ(DPCLKA_CFGCR0) |
- DPCLKA_CFGCR0_DDI_CLK_OFF(port));
- else if (IS_GEN9_BC(dev_priv))
- I915_WRITE(DPLL_CTRL2, (I915_READ(DPLL_CTRL2) |
- DPLL_CTRL2_DDI_CLK_OFF(port)));
- else if (INTEL_GEN(dev_priv) < 9)
- I915_WRITE(PORT_CLK_SEL(port), PORT_CLK_SEL_NONE);
+ intel_ddi_clk_disable(intel_encoder);
if (type == INTEL_OUTPUT_HDMI) {
struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 3/9] drm/i915: Extract intel_disable_ddi_buf()
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
2017-10-10 12:11 ` [PATCH v2 1/9] drm/i915: Dump 'output_types' in crtc state dump Ville Syrjala
2017-10-10 12:12 ` [PATCH v2 2/9] drm/i915: Extract intel_ddi_clk_disable() Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-11 19:53 ` Jani Nikula
2017-10-10 12:12 ` [PATCH 4/9] drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable() Ville Syrjala
` (8 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract the code to disable the DDI_BUF_CTL into small helper. This
will allows us to detangle the encoder type mess in
intel_ddi_post_disable().
v2: Keep using intel_ddi_get_encoder_port() for now
Reviewed-by: Jani Nikula <jani.nikula@intel.com> #v1
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 41 +++++++++++++++++++++++-----------------
1 file changed, 24 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 1cc61ba48e3a..e4d1d934231b 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2257,17 +2257,37 @@ static void intel_ddi_pre_enable(struct intel_encoder *encoder,
}
}
+static void intel_disable_ddi_buf(struct intel_encoder *encoder)
+{
+ struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+ enum port port = intel_ddi_get_encoder_port(encoder);
+ bool wait = false;
+ u32 val;
+
+ val = I915_READ(DDI_BUF_CTL(port));
+ if (val & DDI_BUF_CTL_ENABLE) {
+ val &= ~DDI_BUF_CTL_ENABLE;
+ I915_WRITE(DDI_BUF_CTL(port), val);
+ wait = true;
+ }
+
+ val = I915_READ(DP_TP_CTL(port));
+ val &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK);
+ val |= DP_TP_CTL_LINK_TRAIN_PAT1;
+ I915_WRITE(DP_TP_CTL(port), val);
+
+ if (wait)
+ intel_wait_ddi_buf_idle(dev_priv, port);
+}
+
static void intel_ddi_post_disable(struct intel_encoder *intel_encoder,
const struct intel_crtc_state *old_crtc_state,
const struct drm_connector_state *old_conn_state)
{
struct drm_encoder *encoder = &intel_encoder->base;
struct drm_i915_private *dev_priv = to_i915(encoder->dev);
- enum port port = intel_ddi_get_encoder_port(intel_encoder);
struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
int type = intel_encoder->type;
- uint32_t val;
- bool wait = false;
if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
/*
@@ -2286,20 +2306,7 @@ static void intel_ddi_post_disable(struct intel_encoder *intel_encoder,
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
}
- val = I915_READ(DDI_BUF_CTL(port));
- if (val & DDI_BUF_CTL_ENABLE) {
- val &= ~DDI_BUF_CTL_ENABLE;
- I915_WRITE(DDI_BUF_CTL(port), val);
- wait = true;
- }
-
- val = I915_READ(DP_TP_CTL(port));
- val &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK);
- val |= DP_TP_CTL_LINK_TRAIN_PAT1;
- I915_WRITE(DP_TP_CTL(port), val);
-
- if (wait)
- intel_wait_ddi_buf_idle(dev_priv, port);
+ intel_disable_ddi_buf(intel_encoder);
if (type == INTEL_OUTPUT_HDMI) {
dig_port->set_infoframes(encoder, false,
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 4/9] drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable()
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (2 preceding siblings ...)
2017-10-10 12:12 ` [PATCH v2 3/9] drm/i915: Extract intel_disable_ddi_buf() Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-10 12:12 ` [PATCH v2 5/9] drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants Ville Syrjala
` (7 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
To untangle the mess that is intel_ddi_post_disable() move the the bits
needed by FDI into intel_ddi_fdi_post_disable(). This way we can stop
worrying about FDI in intel_ddi_post_disable().
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index e4d1d934231b..7187aea75697 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2349,7 +2349,8 @@ void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
val &= ~FDI_RX_ENABLE;
I915_WRITE(FDI_RX_CTL(PIPE_A), val);
- intel_ddi_post_disable(encoder, old_crtc_state, old_conn_state);
+ intel_disable_ddi_buf(encoder);
+ intel_ddi_clk_disable(encoder);
val = I915_READ(FDI_RX_MISC(PIPE_A));
val &= ~(FDI_RX_PWRDN_LANE1_MASK | FDI_RX_PWRDN_LANE0_MASK);
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 5/9] drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (3 preceding siblings ...)
2017-10-10 12:12 ` [PATCH 4/9] drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable() Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-10 12:12 ` [PATCH 6/9] drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp() Ville Syrjala
` (6 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
To clean up the mess in intel_ddi_post_disable() split it into two
clean variants for HDMI and DP.
v2: Rebase due to MST DPMS changes
Reviewed-by: Jani Nikula <jani.nikula@intel.com> #v1
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 111 ++++++++++++++++++++++-----------------
1 file changed, 64 insertions(+), 47 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 7187aea75697..afe56bc6fce3 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2280,56 +2280,73 @@ static void intel_disable_ddi_buf(struct intel_encoder *encoder)
intel_wait_ddi_buf_idle(dev_priv, port);
}
-static void intel_ddi_post_disable(struct intel_encoder *intel_encoder,
+static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
+ const struct intel_crtc_state *old_crtc_state,
+ const struct drm_connector_state *old_conn_state)
+{
+ struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+ struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+ struct intel_dp *intel_dp = &dig_port->dp;
+ /*
+ * old_crtc_state and old_conn_state are NULL when called from
+ * DP_MST. The main connector associated with this port is never
+ * bound to a crtc for MST.
+ */
+ bool is_mst = !old_crtc_state;
+
+ /*
+ * Power down sink before disabling the port, otherwise we end
+ * up getting interrupts from the sink on detecting link loss.
+ */
+ if (!is_mst)
+ intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
+
+ intel_disable_ddi_buf(encoder);
+
+ intel_edp_panel_vdd_on(intel_dp);
+ intel_edp_panel_off(intel_dp);
+
+ intel_display_power_put(dev_priv, dig_port->ddi_io_power_domain);
+
+ intel_ddi_clk_disable(encoder);
+}
+
+static void intel_ddi_post_disable_hdmi(struct intel_encoder *encoder,
+ const struct intel_crtc_state *old_crtc_state,
+ const struct drm_connector_state *old_conn_state)
+{
+ struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+ struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+ struct intel_hdmi *intel_hdmi = &dig_port->hdmi;
+
+ intel_disable_ddi_buf(encoder);
+
+ dig_port->set_infoframes(&encoder->base, false,
+ old_crtc_state, old_conn_state);
+
+ intel_display_power_put(dev_priv, dig_port->ddi_io_power_domain);
+
+ intel_ddi_clk_disable(encoder);
+
+ intel_dp_dual_mode_set_tmds_output(intel_hdmi, false);
+}
+
+static void intel_ddi_post_disable(struct intel_encoder *encoder,
const struct intel_crtc_state *old_crtc_state,
const struct drm_connector_state *old_conn_state)
{
- struct drm_encoder *encoder = &intel_encoder->base;
- struct drm_i915_private *dev_priv = to_i915(encoder->dev);
- struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
- int type = intel_encoder->type;
-
- if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
- /*
- * old_crtc_state and old_conn_state are NULL when called from
- * DP_MST. The main connector associated with this port is never
- * bound to a crtc for MST.
- */
- bool is_mst = !old_crtc_state;
- struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
-
- /*
- * Power down sink before disabling the port, otherwise we end
- * up getting interrupts from the sink on detecting link loss.
- */
- if (!is_mst)
- intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
- }
-
- intel_disable_ddi_buf(intel_encoder);
-
- if (type == INTEL_OUTPUT_HDMI) {
- dig_port->set_infoframes(encoder, false,
- old_crtc_state, old_conn_state);
- }
-
- if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
- struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
-
- intel_edp_panel_vdd_on(intel_dp);
- intel_edp_panel_off(intel_dp);
- }
-
- if (dig_port)
- intel_display_power_put(dev_priv, dig_port->ddi_io_power_domain);
-
- intel_ddi_clk_disable(intel_encoder);
-
- if (type == INTEL_OUTPUT_HDMI) {
- struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
-
- intel_dp_dual_mode_set_tmds_output(intel_hdmi, false);
- }
+ /*
+ * old_crtc_state and old_conn_state are NULL when called from
+ * DP_MST. The main connector associated with this port is never
+ * bound to a crtc for MST.
+ */
+ if (old_crtc_state &&
+ intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
+ intel_ddi_post_disable_hdmi(encoder,
+ old_crtc_state, old_conn_state);
+ else
+ intel_ddi_post_disable_dp(encoder,
+ old_crtc_state, old_conn_state);
}
void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 6/9] drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp()
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (4 preceding siblings ...)
2017-10-10 12:12 ` [PATCH v2 5/9] drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-10 12:12 ` [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants Ville Syrjala
` (5 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
intel_edp_panel_on() will itself do the is_edp() check, so the caller
doesn't have to bother. Pre-DDI code doesn't bother, so let's follow the
same approach for DDI.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index afe56bc6fce3..945980e71697 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2171,8 +2171,8 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
intel_dp_set_link_params(intel_dp, link_rate, lane_count,
link_mst);
- if (encoder->type == INTEL_OUTPUT_EDP)
- intel_edp_panel_on(intel_dp);
+
+ intel_edp_panel_on(intel_dp);
intel_ddi_clk_select(encoder, pll);
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (5 preceding siblings ...)
2017-10-10 12:12 ` [PATCH 6/9] drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp() Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-11 20:03 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 8/9] drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}() Ville Syrjala
` (4 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Untangle intel_disable_ddi() by splitting it into DP and HDMI specific
variants.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 51 ++++++++++++++++++++++++----------------
1 file changed, 31 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 945980e71697..c930ef0338c5 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2424,29 +2424,40 @@ static void intel_enable_ddi(struct intel_encoder *intel_encoder,
intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
}
-static void intel_disable_ddi(struct intel_encoder *intel_encoder,
+static void intel_disable_ddi_dp(struct intel_encoder *encoder,
+ const struct intel_crtc_state *old_crtc_state,
+ const struct drm_connector_state *old_conn_state)
+{
+ struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+
+ if (old_crtc_state->has_audio)
+ intel_audio_codec_disable(encoder);
+
+ intel_edp_drrs_disable(intel_dp, old_crtc_state);
+ intel_psr_disable(intel_dp, old_crtc_state);
+ intel_edp_backlight_off(old_conn_state);
+}
+
+static void intel_disable_ddi_hdmi(struct intel_encoder *encoder,
+ const struct intel_crtc_state *old_crtc_state,
+ const struct drm_connector_state *old_conn_state)
+{
+ if (old_crtc_state->has_audio)
+ intel_audio_codec_disable(encoder);
+
+ intel_hdmi_handle_sink_scrambling(encoder,
+ old_conn_state->connector,
+ false, false);
+}
+
+static void intel_disable_ddi(struct intel_encoder *encoder,
const struct intel_crtc_state *old_crtc_state,
const struct drm_connector_state *old_conn_state)
{
- struct drm_encoder *encoder = &intel_encoder->base;
- int type = intel_encoder->type;
-
- if (old_crtc_state->has_audio)
- intel_audio_codec_disable(intel_encoder);
-
- if (type == INTEL_OUTPUT_HDMI) {
- intel_hdmi_handle_sink_scrambling(intel_encoder,
- old_conn_state->connector,
- false, false);
- }
-
- if (type == INTEL_OUTPUT_EDP) {
- struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
-
- intel_edp_drrs_disable(intel_dp, old_crtc_state);
- intel_psr_disable(intel_dp, old_crtc_state);
- intel_edp_backlight_off(old_conn_state);
- }
+ if (intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
+ intel_disable_ddi_hdmi(encoder, old_crtc_state, old_conn_state);
+ else
+ intel_disable_ddi_dp(encoder, old_crtc_state, old_conn_state);
}
static void bxt_ddi_pre_pll_enable(struct intel_encoder *encoder,
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 8/9] drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}()
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (6 preceding siblings ...)
2017-10-10 12:12 ` [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-13 14:25 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants Ville Syrjala
` (3 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx; +Cc: Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Rather that plumb the link parameters separately to
intel_ddi_pre_enable_dp() let's just pass the entire crtc state.
intel_ddi_pre_enable_hdmi() already took the crtc state, but for some
reason intel_ddi_pre_enable() still wanted to extract has_infoframe
from therein and pass it in separately. Let's not do that since it's
pointless.
v2: Rebase due to more code getting pulled into the DDI hooks
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 54 +++++++++++++++-------------------------
1 file changed, 20 insertions(+), 34 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index c930ef0338c5..49cf8d9d2bc1 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2157,24 +2157,24 @@ static void intel_ddi_clk_disable(struct intel_encoder *encoder)
}
static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
- int link_rate, uint32_t lane_count,
- struct intel_shared_dpll *pll,
- bool link_mst)
+ const struct intel_crtc_state *crtc_state,
+ const struct drm_connector_state *conn_state)
{
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
enum port port = intel_ddi_get_encoder_port(encoder);
struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+ bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
uint32_t level = intel_ddi_dp_level(intel_dp);
- WARN_ON(link_mst && (port == PORT_A || port == PORT_E));
+ WARN_ON(is_mst && (port == PORT_A || port == PORT_E));
- intel_dp_set_link_params(intel_dp, link_rate, lane_count,
- link_mst);
+ intel_dp_set_link_params(intel_dp, crtc_state->port_clock,
+ crtc_state->lane_count, is_mst);
intel_edp_panel_on(intel_dp);
- intel_ddi_clk_select(encoder, pll);
+ intel_ddi_clk_select(encoder, crtc_state->shared_dpll);
intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
@@ -2186,7 +2186,7 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
intel_prepare_dp_ddi_buffers(encoder);
intel_ddi_init_dp_buf_reg(encoder);
- if (!link_mst)
+ if (!is_mst)
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
intel_dp_start_link_train(intel_dp);
if (port != PORT_A || INTEL_GEN(dev_priv) >= 9)
@@ -2194,10 +2194,8 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
}
static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
- bool has_infoframe,
const struct intel_crtc_state *crtc_state,
- const struct drm_connector_state *conn_state,
- const struct intel_shared_dpll *pll)
+ const struct drm_connector_state *conn_state)
{
struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
@@ -2207,7 +2205,7 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
intel_dp_dual_mode_set_tmds_output(intel_hdmi, true);
- intel_ddi_clk_select(encoder, pll);
+ intel_ddi_clk_select(encoder, crtc_state->shared_dpll);
intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
@@ -2223,38 +2221,26 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
skl_ddi_set_iboost(encoder, level);
intel_dig_port->set_infoframes(&encoder->base,
- has_infoframe,
+ crtc_state->has_infoframe,
crtc_state, conn_state);
}
static void intel_ddi_pre_enable(struct intel_encoder *encoder,
- const struct intel_crtc_state *pipe_config,
+ const struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{
- struct drm_crtc *crtc = pipe_config->base.crtc;
- struct drm_i915_private *dev_priv = to_i915(crtc->dev);
- struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
- int pipe = intel_crtc->pipe;
- int type = encoder->type;
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
+ struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+ enum pipe pipe = crtc->pipe;
- WARN_ON(intel_crtc->config->has_pch_encoder);
+ WARN_ON(crtc_state->has_pch_encoder);
intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);
- if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
- intel_ddi_pre_enable_dp(encoder,
- pipe_config->port_clock,
- pipe_config->lane_count,
- pipe_config->shared_dpll,
- intel_crtc_has_type(pipe_config,
- INTEL_OUTPUT_DP_MST));
- }
- if (type == INTEL_OUTPUT_HDMI) {
- intel_ddi_pre_enable_hdmi(encoder,
- pipe_config->has_infoframe,
- pipe_config, conn_state,
- pipe_config->shared_dpll);
- }
+ if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
+ intel_ddi_pre_enable_hdmi(encoder, crtc_state, conn_state);
+ else
+ intel_ddi_pre_enable_dp(encoder, crtc_state, conn_state);
}
static void intel_disable_ddi_buf(struct intel_encoder *encoder)
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (7 preceding siblings ...)
2017-10-10 12:12 ` [PATCH v2 8/9] drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}() Ville Syrjala
@ 2017-10-10 12:12 ` Ville Syrjala
2017-10-11 20:06 ` Jani Nikula
2017-10-10 13:07 ` ✗ Fi.CI.BAT: warning for drm/i915: Cleaner DDI DP vs. HDMI split Patchwork
` (2 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjala @ 2017-10-10 12:12 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Untangle intel_enable_ddi() by splitting it into DP and HDMI specific
variants.
v2: Keep using intel_ddi_get_encoder_port() for now
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ddi.c | 86 +++++++++++++++++++++++-----------------
1 file changed, 49 insertions(+), 37 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 49cf8d9d2bc1..18bf06c7e43f 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2369,45 +2369,57 @@ void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
I915_WRITE(FDI_RX_CTL(PIPE_A), val);
}
-static void intel_enable_ddi(struct intel_encoder *intel_encoder,
- const struct intel_crtc_state *pipe_config,
+static void intel_enable_ddi_dp(struct intel_encoder *encoder,
+ const struct intel_crtc_state *crtc_state,
+ const struct drm_connector_state *conn_state)
+{
+ struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+ struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+ enum port port = intel_ddi_get_encoder_port(encoder);
+
+ if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
+ intel_dp_stop_link_train(intel_dp);
+
+ intel_edp_backlight_on(crtc_state, conn_state);
+ intel_psr_enable(intel_dp, crtc_state);
+ intel_edp_drrs_enable(intel_dp, crtc_state);
+
+ if (crtc_state->has_audio)
+ intel_audio_codec_enable(encoder, crtc_state, conn_state);
+}
+
+static void intel_enable_ddi_hdmi(struct intel_encoder *encoder,
+ const struct intel_crtc_state *crtc_state,
+ const struct drm_connector_state *conn_state)
+{
+ struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+ struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+ enum port port = intel_ddi_get_encoder_port(encoder);
+
+ intel_hdmi_handle_sink_scrambling(encoder,
+ conn_state->connector,
+ crtc_state->hdmi_high_tmds_clock_ratio,
+ crtc_state->hdmi_scrambling);
+
+ /* In HDMI/DVI mode, the port width, and swing/emphasis values
+ * are ignored so nothing special needs to be done besides
+ * enabling the port.
+ */
+ I915_WRITE(DDI_BUF_CTL(port),
+ dig_port->saved_port_bits | DDI_BUF_CTL_ENABLE);
+
+ if (crtc_state->has_audio)
+ intel_audio_codec_enable(encoder, crtc_state, conn_state);
+}
+
+static void intel_enable_ddi(struct intel_encoder *encoder,
+ const struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state)
{
- struct drm_encoder *encoder = &intel_encoder->base;
- struct drm_i915_private *dev_priv = to_i915(encoder->dev);
- enum port port = intel_ddi_get_encoder_port(intel_encoder);
- int type = intel_encoder->type;
-
- if (type == INTEL_OUTPUT_HDMI) {
- struct intel_digital_port *intel_dig_port =
- enc_to_dig_port(encoder);
- bool clock_ratio = pipe_config->hdmi_high_tmds_clock_ratio;
- bool scrambling = pipe_config->hdmi_scrambling;
-
- intel_hdmi_handle_sink_scrambling(intel_encoder,
- conn_state->connector,
- clock_ratio, scrambling);
-
- /* In HDMI/DVI mode, the port width, and swing/emphasis values
- * are ignored so nothing special needs to be done besides
- * enabling the port.
- */
- I915_WRITE(DDI_BUF_CTL(port),
- intel_dig_port->saved_port_bits |
- DDI_BUF_CTL_ENABLE);
- } else if (type == INTEL_OUTPUT_EDP) {
- struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
-
- if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
- intel_dp_stop_link_train(intel_dp);
-
- intel_edp_backlight_on(pipe_config, conn_state);
- intel_psr_enable(intel_dp, pipe_config);
- intel_edp_drrs_enable(intel_dp, pipe_config);
- }
-
- if (pipe_config->has_audio)
- intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
+ if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
+ intel_enable_ddi_hdmi(encoder, crtc_state, conn_state);
+ else
+ intel_enable_ddi_dp(encoder, crtc_state, conn_state);
}
static void intel_disable_ddi_dp(struct intel_encoder *encoder,
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 26+ messages in thread
* ✗ Fi.CI.BAT: warning for drm/i915: Cleaner DDI DP vs. HDMI split
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (8 preceding siblings ...)
2017-10-10 12:12 ` [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants Ville Syrjala
@ 2017-10-10 13:07 ` Patchwork
2017-10-10 13:21 ` Ville Syrjälä
2017-10-13 17:03 ` ✓ Fi.CI.BAT: success " Patchwork
2017-10-14 0:10 ` ✗ Fi.CI.IGT: failure " Patchwork
11 siblings, 1 reply; 26+ messages in thread
From: Patchwork @ 2017-10-10 13:07 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Cleaner DDI DP vs. HDMI split
URL : https://patchwork.freedesktop.org/series/31652/
State : warning
== Summary ==
Series 31652v1 drm/i915: Cleaner DDI DP vs. HDMI split
https://patchwork.freedesktop.org/api/1.0/series/31652/revisions/1/mbox/
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass -> DMESG-WARN (fi-byt-n2820) fdo#101705
Test prime_vgem:
Subgroup basic-fence-flip:
pass -> DMESG-WARN (fi-skl-6770hq)
fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:451s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:472s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:393s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:573s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:285s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:517s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:521s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:532s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:524s
fi-cfl-s total:289 pass:256 dwarn:1 dfail:0 fail:0 skip:32 time:565s
fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:619s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:427s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:602s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:439s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:421s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:458s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:512s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:478s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:503s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:587s
fi-kbl-7567u total:289 pass:265 dwarn:4 dfail:0 fail:0 skip:20 time:480s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:598s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:662s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:464s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:657s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:526s
fi-skl-6770hq total:289 pass:268 dwarn:1 dfail:0 fail:0 skip:20 time:510s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:477s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:582s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:432s
6bcaf2275e52e258c737bc355e73072640be5ac3 drm-tip: 2017y-10m-10d-10h-57m-51s UTC integration manifest
a9cb7cb48bf0 drm/i915: Split intel_enable_ddi() into DP and HDMI variants
96c7e389f3c3 drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}()
6be651f3a0cc drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
a34f8a6cfd6c drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp()
1d95c4a31445 drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants
4675051a29c4 drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable()
a427cba4910b drm/i915: Extract intel_disable_ddi_buf()
897172e11b01 drm/i915: Extract intel_ddi_clk_disable()
65c655f9e326 drm/i915: Dump 'output_types' in crtc state dump
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5972/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: ✗ Fi.CI.BAT: warning for drm/i915: Cleaner DDI DP vs. HDMI split
2017-10-10 13:07 ` ✗ Fi.CI.BAT: warning for drm/i915: Cleaner DDI DP vs. HDMI split Patchwork
@ 2017-10-10 13:21 ` Ville Syrjälä
0 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjälä @ 2017-10-10 13:21 UTC (permalink / raw)
To: intel-gfx
On Tue, Oct 10, 2017 at 01:07:28PM -0000, Patchwork wrote:
> == Series Details ==
>
> Series: drm/i915: Cleaner DDI DP vs. HDMI split
> URL : https://patchwork.freedesktop.org/series/31652/
> State : warning
>
> == Summary ==
>
> Series 31652v1 drm/i915: Cleaner DDI DP vs. HDMI split
> https://patchwork.freedesktop.org/api/1.0/series/31652/revisions/1/mbox/
>
> Test kms_pipe_crc_basic:
> Subgroup suspend-read-crc-pipe-b:
> pass -> DMESG-WARN (fi-byt-n2820) fdo#101705
> Test prime_vgem:
> Subgroup basic-fence-flip:
> pass -> DMESG-WARN (fi-skl-6770hq)
Unrelated
[ 451.712185] [drm:intel_pipe_update_end [i915]] *ERROR* Atomic update
failure on pipe B (start=277 end=278) time 150 us, min 2146, max 2159,
scanline start 2144, end 2164
>
> fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
>
> fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:451s
> fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:472s
> fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:393s
> fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:573s
> fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:285s
> fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:517s
> fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:521s
> fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:532s
> fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:524s
> fi-cfl-s total:289 pass:256 dwarn:1 dfail:0 fail:0 skip:32 time:565s
> fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:619s
> fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:427s
> fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:602s
> fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:439s
> fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:421s
> fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:458s
> fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:512s
> fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:478s
> fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:503s
> fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:587s
> fi-kbl-7567u total:289 pass:265 dwarn:4 dfail:0 fail:0 skip:20 time:480s
> fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:598s
> fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:662s
> fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:464s
> fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:657s
> fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:526s
> fi-skl-6770hq total:289 pass:268 dwarn:1 dfail:0 fail:0 skip:20 time:510s
> fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:477s
> fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:582s
> fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:432s
>
> 6bcaf2275e52e258c737bc355e73072640be5ac3 drm-tip: 2017y-10m-10d-10h-57m-51s UTC integration manifest
> a9cb7cb48bf0 drm/i915: Split intel_enable_ddi() into DP and HDMI variants
> 96c7e389f3c3 drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}()
> 6be651f3a0cc drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
> a34f8a6cfd6c drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp()
> 1d95c4a31445 drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants
> 4675051a29c4 drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable()
> a427cba4910b drm/i915: Extract intel_disable_ddi_buf()
> 897172e11b01 drm/i915: Extract intel_ddi_clk_disable()
> 65c655f9e326 drm/i915: Dump 'output_types' in crtc state dump
>
> == Logs ==
>
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5972/
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 1/9] drm/i915: Dump 'output_types' in crtc state dump
2017-10-10 12:11 ` [PATCH v2 1/9] drm/i915: Dump 'output_types' in crtc state dump Ville Syrjala
@ 2017-10-11 19:50 ` Jani Nikula
0 siblings, 0 replies; 26+ messages in thread
From: Jani Nikula @ 2017-10-11 19:50 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> To make it easier to debug things let's dump the output types bitmask in
> the crtc state dump. And to make life that much better, let's pretty
> print it as a a human reaadable string as well.
>
> v2: Have the caller pass in the buffer (Chris)
> #undef OUTPUT_TYPE (Jani)
>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 51 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 51 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 45d6e57fbe89..4938c23a3fc1 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -10674,6 +10674,52 @@ intel_dump_m_n_config(struct intel_crtc_state *pipe_config, char *id,
> m_n->link_m, m_n->link_n, m_n->tu);
> }
>
> +#define OUTPUT_TYPE(x) [INTEL_OUTPUT_ ## x] = #x
> +
> +static const char * const output_type_str[] = {
> + OUTPUT_TYPE(UNUSED),
> + OUTPUT_TYPE(ANALOG),
> + OUTPUT_TYPE(DVO),
> + OUTPUT_TYPE(SDVO),
> + OUTPUT_TYPE(LVDS),
> + OUTPUT_TYPE(TVOUT),
> + OUTPUT_TYPE(HDMI),
> + OUTPUT_TYPE(DP),
> + OUTPUT_TYPE(EDP),
> + OUTPUT_TYPE(DSI),
> + OUTPUT_TYPE(UNKNOWN),
> + OUTPUT_TYPE(DP_MST),
> +};
> +
> +#undef OUTPUT_TYPE
> +
> +static void snprintf_output_types(char *buf, size_t len,
> + unsigned int output_types)
> +{
> + char *str = buf;
> + int i;
> +
> + str[0] = '\0';
> +
> + for (i = 0; i < ARRAY_SIZE(output_type_str); i++) {
> + int r;
> +
> + if ((output_types & BIT(i)) == 0)
> + continue;
> +
> + r = snprintf(str, len, "%s%s",
> + str != buf ? "," : "", output_type_str[i]);
> + if (r >= len)
> + break;
> + str += r;
> + len -= r;
Ugh, what a minefield this is, but AFAICT you avoided them all.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> +
> + output_types &= ~BIT(i);
> + }
> +
> + WARN_ON_ONCE(output_types != 0);
> +}
> +
> static void intel_dump_pipe_config(struct intel_crtc *crtc,
> struct intel_crtc_state *pipe_config,
> const char *context)
> @@ -10684,10 +10730,15 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc,
> struct intel_plane *intel_plane;
> struct intel_plane_state *state;
> struct drm_framebuffer *fb;
> + char buf[64];
>
> DRM_DEBUG_KMS("[CRTC:%d:%s]%s\n",
> crtc->base.base.id, crtc->base.name, context);
>
> + snprintf_output_types(buf, sizeof(buf), pipe_config->output_types);
> + DRM_DEBUG_KMS("output_types: %s (0x%x)\n",
> + buf, pipe_config->output_types);
> +
> DRM_DEBUG_KMS("cpu_transcoder: %s, pipe bpp: %i, dithering: %i\n",
> transcoder_name(pipe_config->cpu_transcoder),
> pipe_config->pipe_bpp, pipe_config->dither);
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 2/9] drm/i915: Extract intel_ddi_clk_disable()
2017-10-10 12:12 ` [PATCH v2 2/9] drm/i915: Extract intel_ddi_clk_disable() Ville Syrjala
@ 2017-10-11 19:52 ` Jani Nikula
0 siblings, 0 replies; 26+ messages in thread
From: Jani Nikula @ 2017-10-11 19:52 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Pull the code to disable the port clock into a function. We already have
> the intel_ddi_clk_select() counterpart.
>
> v2: Keep using intel_ddi_get_encoder_port() for now (Chris)
>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 24 ++++++++++++++++--------
> 1 file changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index b307b6fe1ce3..1cc61ba48e3a 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2141,6 +2141,21 @@ static void intel_ddi_clk_select(struct intel_encoder *encoder,
> }
> }
>
> +static void intel_ddi_clk_disable(struct intel_encoder *encoder)
> +{
> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> + enum port port = intel_ddi_get_encoder_port(encoder);
> +
> + if (IS_CANNONLAKE(dev_priv))
> + I915_WRITE(DPCLKA_CFGCR0, I915_READ(DPCLKA_CFGCR0) |
> + DPCLKA_CFGCR0_DDI_CLK_OFF(port));
> + else if (IS_GEN9_BC(dev_priv))
> + I915_WRITE(DPLL_CTRL2, I915_READ(DPLL_CTRL2) |
> + DPLL_CTRL2_DDI_CLK_OFF(port));
> + else if (INTEL_GEN(dev_priv) < 9)
> + I915_WRITE(PORT_CLK_SEL(port), PORT_CLK_SEL_NONE);
> +}
> +
> static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
> int link_rate, uint32_t lane_count,
> struct intel_shared_dpll *pll,
> @@ -2301,14 +2316,7 @@ static void intel_ddi_post_disable(struct intel_encoder *intel_encoder,
> if (dig_port)
> intel_display_power_put(dev_priv, dig_port->ddi_io_power_domain);
>
> - if (IS_CANNONLAKE(dev_priv))
> - I915_WRITE(DPCLKA_CFGCR0, I915_READ(DPCLKA_CFGCR0) |
> - DPCLKA_CFGCR0_DDI_CLK_OFF(port));
> - else if (IS_GEN9_BC(dev_priv))
> - I915_WRITE(DPLL_CTRL2, (I915_READ(DPLL_CTRL2) |
> - DPLL_CTRL2_DDI_CLK_OFF(port)));
> - else if (INTEL_GEN(dev_priv) < 9)
> - I915_WRITE(PORT_CLK_SEL(port), PORT_CLK_SEL_NONE);
> + intel_ddi_clk_disable(intel_encoder);
>
> if (type == INTEL_OUTPUT_HDMI) {
> struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 3/9] drm/i915: Extract intel_disable_ddi_buf()
2017-10-10 12:12 ` [PATCH v2 3/9] drm/i915: Extract intel_disable_ddi_buf() Ville Syrjala
@ 2017-10-11 19:53 ` Jani Nikula
0 siblings, 0 replies; 26+ messages in thread
From: Jani Nikula @ 2017-10-11 19:53 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Extract the code to disable the DDI_BUF_CTL into small helper. This
> will allows us to detangle the encoder type mess in
> intel_ddi_post_disable().
>
> v2: Keep using intel_ddi_get_encoder_port() for now
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com> #v1
Holds for v2
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 41 +++++++++++++++++++++++-----------------
> 1 file changed, 24 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index 1cc61ba48e3a..e4d1d934231b 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2257,17 +2257,37 @@ static void intel_ddi_pre_enable(struct intel_encoder *encoder,
> }
> }
>
> +static void intel_disable_ddi_buf(struct intel_encoder *encoder)
> +{
> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> + enum port port = intel_ddi_get_encoder_port(encoder);
> + bool wait = false;
> + u32 val;
> +
> + val = I915_READ(DDI_BUF_CTL(port));
> + if (val & DDI_BUF_CTL_ENABLE) {
> + val &= ~DDI_BUF_CTL_ENABLE;
> + I915_WRITE(DDI_BUF_CTL(port), val);
> + wait = true;
> + }
> +
> + val = I915_READ(DP_TP_CTL(port));
> + val &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK);
> + val |= DP_TP_CTL_LINK_TRAIN_PAT1;
> + I915_WRITE(DP_TP_CTL(port), val);
> +
> + if (wait)
> + intel_wait_ddi_buf_idle(dev_priv, port);
> +}
> +
> static void intel_ddi_post_disable(struct intel_encoder *intel_encoder,
> const struct intel_crtc_state *old_crtc_state,
> const struct drm_connector_state *old_conn_state)
> {
> struct drm_encoder *encoder = &intel_encoder->base;
> struct drm_i915_private *dev_priv = to_i915(encoder->dev);
> - enum port port = intel_ddi_get_encoder_port(intel_encoder);
> struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> int type = intel_encoder->type;
> - uint32_t val;
> - bool wait = false;
>
> if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
> /*
> @@ -2286,20 +2306,7 @@ static void intel_ddi_post_disable(struct intel_encoder *intel_encoder,
> intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
> }
>
> - val = I915_READ(DDI_BUF_CTL(port));
> - if (val & DDI_BUF_CTL_ENABLE) {
> - val &= ~DDI_BUF_CTL_ENABLE;
> - I915_WRITE(DDI_BUF_CTL(port), val);
> - wait = true;
> - }
> -
> - val = I915_READ(DP_TP_CTL(port));
> - val &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK);
> - val |= DP_TP_CTL_LINK_TRAIN_PAT1;
> - I915_WRITE(DP_TP_CTL(port), val);
> -
> - if (wait)
> - intel_wait_ddi_buf_idle(dev_priv, port);
> + intel_disable_ddi_buf(intel_encoder);
>
> if (type == INTEL_OUTPUT_HDMI) {
> dig_port->set_infoframes(encoder, false,
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
2017-10-10 12:12 ` [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants Ville Syrjala
@ 2017-10-11 20:03 ` Jani Nikula
2017-10-12 9:49 ` Ville Syrjälä
0 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2017-10-11 20:03 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Untangle intel_disable_ddi() by splitting it into DP and HDMI specific
> variants.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 51 ++++++++++++++++++++++++----------------
> 1 file changed, 31 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index 945980e71697..c930ef0338c5 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2424,29 +2424,40 @@ static void intel_enable_ddi(struct intel_encoder *intel_encoder,
> intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
> }
>
> -static void intel_disable_ddi(struct intel_encoder *intel_encoder,
> +static void intel_disable_ddi_dp(struct intel_encoder *encoder,
> + const struct intel_crtc_state *old_crtc_state,
> + const struct drm_connector_state *old_conn_state)
> +{
> + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +
> + if (old_crtc_state->has_audio)
> + intel_audio_codec_disable(encoder);
> +
You remove the eDP check here, and...
> + intel_edp_drrs_disable(intel_dp, old_crtc_state);
...this will now depend on old_crtc_state->has_drrs which is probably
fine, but...
> + intel_psr_disable(intel_dp, old_crtc_state);
...but this will be wrong. I don't mind adding the edp check within.
> + intel_edp_backlight_off(old_conn_state);
This is ok.
I guess easiest would be to keep the type == INTEL_OUTPUT_EDP check and
clean up afterwards.
Otherwise LGTM.
BR,
Jani.
> +}
> +
> +static void intel_disable_ddi_hdmi(struct intel_encoder *encoder,
> + const struct intel_crtc_state *old_crtc_state,
> + const struct drm_connector_state *old_conn_state)
> +{
> + if (old_crtc_state->has_audio)
> + intel_audio_codec_disable(encoder);
> +
> + intel_hdmi_handle_sink_scrambling(encoder,
> + old_conn_state->connector,
> + false, false);
> +}
> +
> +static void intel_disable_ddi(struct intel_encoder *encoder,
> const struct intel_crtc_state *old_crtc_state,
> const struct drm_connector_state *old_conn_state)
> {
> - struct drm_encoder *encoder = &intel_encoder->base;
> - int type = intel_encoder->type;
> -
> - if (old_crtc_state->has_audio)
> - intel_audio_codec_disable(intel_encoder);
> -
> - if (type == INTEL_OUTPUT_HDMI) {
> - intel_hdmi_handle_sink_scrambling(intel_encoder,
> - old_conn_state->connector,
> - false, false);
> - }
> -
> - if (type == INTEL_OUTPUT_EDP) {
> - struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> -
> - intel_edp_drrs_disable(intel_dp, old_crtc_state);
> - intel_psr_disable(intel_dp, old_crtc_state);
> - intel_edp_backlight_off(old_conn_state);
> - }
> + if (intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
> + intel_disable_ddi_hdmi(encoder, old_crtc_state, old_conn_state);
> + else
> + intel_disable_ddi_dp(encoder, old_crtc_state, old_conn_state);
> }
>
> static void bxt_ddi_pre_pll_enable(struct intel_encoder *encoder,
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants
2017-10-10 12:12 ` [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants Ville Syrjala
@ 2017-10-11 20:06 ` Jani Nikula
2017-10-13 14:20 ` Jani Nikula
0 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2017-10-11 20:06 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Untangle intel_enable_ddi() by splitting it into DP and HDMI specific
> variants.
>
> v2: Keep using intel_ddi_get_encoder_port() for now
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 86 +++++++++++++++++++++++-----------------
> 1 file changed, 49 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index 49cf8d9d2bc1..18bf06c7e43f 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2369,45 +2369,57 @@ void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
> I915_WRITE(FDI_RX_CTL(PIPE_A), val);
> }
>
> -static void intel_enable_ddi(struct intel_encoder *intel_encoder,
> - const struct intel_crtc_state *pipe_config,
> +static void intel_enable_ddi_dp(struct intel_encoder *encoder,
> + const struct intel_crtc_state *crtc_state,
> + const struct drm_connector_state *conn_state)
> +{
> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> + enum port port = intel_ddi_get_encoder_port(encoder);
> +
> + if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
> + intel_dp_stop_link_train(intel_dp);
> +
> + intel_edp_backlight_on(crtc_state, conn_state);
> + intel_psr_enable(intel_dp, crtc_state);
This is broken without edp check.
BR,
Jani.
> + intel_edp_drrs_enable(intel_dp, crtc_state);
> +
> + if (crtc_state->has_audio)
> + intel_audio_codec_enable(encoder, crtc_state, conn_state);
> +}
> +
> +static void intel_enable_ddi_hdmi(struct intel_encoder *encoder,
> + const struct intel_crtc_state *crtc_state,
> + const struct drm_connector_state *conn_state)
> +{
> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> + struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> + enum port port = intel_ddi_get_encoder_port(encoder);
> +
> + intel_hdmi_handle_sink_scrambling(encoder,
> + conn_state->connector,
> + crtc_state->hdmi_high_tmds_clock_ratio,
> + crtc_state->hdmi_scrambling);
> +
> + /* In HDMI/DVI mode, the port width, and swing/emphasis values
> + * are ignored so nothing special needs to be done besides
> + * enabling the port.
> + */
> + I915_WRITE(DDI_BUF_CTL(port),
> + dig_port->saved_port_bits | DDI_BUF_CTL_ENABLE);
> +
> + if (crtc_state->has_audio)
> + intel_audio_codec_enable(encoder, crtc_state, conn_state);
> +}
> +
> +static void intel_enable_ddi(struct intel_encoder *encoder,
> + const struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> {
> - struct drm_encoder *encoder = &intel_encoder->base;
> - struct drm_i915_private *dev_priv = to_i915(encoder->dev);
> - enum port port = intel_ddi_get_encoder_port(intel_encoder);
> - int type = intel_encoder->type;
> -
> - if (type == INTEL_OUTPUT_HDMI) {
> - struct intel_digital_port *intel_dig_port =
> - enc_to_dig_port(encoder);
> - bool clock_ratio = pipe_config->hdmi_high_tmds_clock_ratio;
> - bool scrambling = pipe_config->hdmi_scrambling;
> -
> - intel_hdmi_handle_sink_scrambling(intel_encoder,
> - conn_state->connector,
> - clock_ratio, scrambling);
> -
> - /* In HDMI/DVI mode, the port width, and swing/emphasis values
> - * are ignored so nothing special needs to be done besides
> - * enabling the port.
> - */
> - I915_WRITE(DDI_BUF_CTL(port),
> - intel_dig_port->saved_port_bits |
> - DDI_BUF_CTL_ENABLE);
> - } else if (type == INTEL_OUTPUT_EDP) {
> - struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> -
> - if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
> - intel_dp_stop_link_train(intel_dp);
> -
> - intel_edp_backlight_on(pipe_config, conn_state);
> - intel_psr_enable(intel_dp, pipe_config);
> - intel_edp_drrs_enable(intel_dp, pipe_config);
> - }
> -
> - if (pipe_config->has_audio)
> - intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
> + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> + intel_enable_ddi_hdmi(encoder, crtc_state, conn_state);
> + else
> + intel_enable_ddi_dp(encoder, crtc_state, conn_state);
> }
>
> static void intel_disable_ddi_dp(struct intel_encoder *encoder,
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
2017-10-11 20:03 ` Jani Nikula
@ 2017-10-12 9:49 ` Ville Syrjälä
2017-10-13 14:13 ` Jani Nikula
0 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjälä @ 2017-10-12 9:49 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
On Wed, Oct 11, 2017 at 11:03:18PM +0300, Jani Nikula wrote:
> On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Untangle intel_disable_ddi() by splitting it into DP and HDMI specific
> > variants.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_ddi.c | 51 ++++++++++++++++++++++++----------------
> > 1 file changed, 31 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> > index 945980e71697..c930ef0338c5 100644
> > --- a/drivers/gpu/drm/i915/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/intel_ddi.c
> > @@ -2424,29 +2424,40 @@ static void intel_enable_ddi(struct intel_encoder *intel_encoder,
> > intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
> > }
> >
> > -static void intel_disable_ddi(struct intel_encoder *intel_encoder,
> > +static void intel_disable_ddi_dp(struct intel_encoder *encoder,
> > + const struct intel_crtc_state *old_crtc_state,
> > + const struct drm_connector_state *old_conn_state)
> > +{
> > + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> > +
> > + if (old_crtc_state->has_audio)
> > + intel_audio_codec_disable(encoder);
> > +
>
> You remove the eDP check here, and...
>
> > + intel_edp_drrs_disable(intel_dp, old_crtc_state);
>
> ...this will now depend on old_crtc_state->has_drrs which is probably
> fine, but...
>
> > + intel_psr_disable(intel_dp, old_crtc_state);
>
> ...but this will be wrong. I don't mind adding the edp check within.
Argh. Yeah, looks like we're still tracking PSR globally for whatever
reason :( Let me fix that right up...
>
> > + intel_edp_backlight_off(old_conn_state);
>
> This is ok.
>
> I guess easiest would be to keep the type == INTEL_OUTPUT_EDP check and
> clean up afterwards.
>
> Otherwise LGTM.
>
> BR,
> Jani.
>
>
>
> > +}
> > +
> > +static void intel_disable_ddi_hdmi(struct intel_encoder *encoder,
> > + const struct intel_crtc_state *old_crtc_state,
> > + const struct drm_connector_state *old_conn_state)
> > +{
> > + if (old_crtc_state->has_audio)
> > + intel_audio_codec_disable(encoder);
> > +
> > + intel_hdmi_handle_sink_scrambling(encoder,
> > + old_conn_state->connector,
> > + false, false);
> > +}
> > +
> > +static void intel_disable_ddi(struct intel_encoder *encoder,
> > const struct intel_crtc_state *old_crtc_state,
> > const struct drm_connector_state *old_conn_state)
> > {
> > - struct drm_encoder *encoder = &intel_encoder->base;
> > - int type = intel_encoder->type;
> > -
> > - if (old_crtc_state->has_audio)
> > - intel_audio_codec_disable(intel_encoder);
> > -
> > - if (type == INTEL_OUTPUT_HDMI) {
> > - intel_hdmi_handle_sink_scrambling(intel_encoder,
> > - old_conn_state->connector,
> > - false, false);
> > - }
> > -
> > - if (type == INTEL_OUTPUT_EDP) {
> > - struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> > -
> > - intel_edp_drrs_disable(intel_dp, old_crtc_state);
> > - intel_psr_disable(intel_dp, old_crtc_state);
> > - intel_edp_backlight_off(old_conn_state);
> > - }
> > + if (intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
> > + intel_disable_ddi_hdmi(encoder, old_crtc_state, old_conn_state);
> > + else
> > + intel_disable_ddi_dp(encoder, old_crtc_state, old_conn_state);
> > }
> >
> > static void bxt_ddi_pre_pll_enable(struct intel_encoder *encoder,
>
> --
> Jani Nikula, Intel Open Source Technology Center
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
2017-10-12 9:49 ` Ville Syrjälä
@ 2017-10-13 14:13 ` Jani Nikula
0 siblings, 0 replies; 26+ messages in thread
From: Jani Nikula @ 2017-10-13 14:13 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
On Thu, 12 Oct 2017, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Oct 11, 2017 at 11:03:18PM +0300, Jani Nikula wrote:
>> On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >
>> > Untangle intel_disable_ddi() by splitting it into DP and HDMI specific
>> > variants.
>> >
>> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > ---
>> > drivers/gpu/drm/i915/intel_ddi.c | 51 ++++++++++++++++++++++++----------------
>> > 1 file changed, 31 insertions(+), 20 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
>> > index 945980e71697..c930ef0338c5 100644
>> > --- a/drivers/gpu/drm/i915/intel_ddi.c
>> > +++ b/drivers/gpu/drm/i915/intel_ddi.c
>> > @@ -2424,29 +2424,40 @@ static void intel_enable_ddi(struct intel_encoder *intel_encoder,
>> > intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
>> > }
>> >
>> > -static void intel_disable_ddi(struct intel_encoder *intel_encoder,
>> > +static void intel_disable_ddi_dp(struct intel_encoder *encoder,
>> > + const struct intel_crtc_state *old_crtc_state,
>> > + const struct drm_connector_state *old_conn_state)
>> > +{
>> > + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>> > +
>> > + if (old_crtc_state->has_audio)
>> > + intel_audio_codec_disable(encoder);
>> > +
>>
>> You remove the eDP check here, and...
>>
>> > + intel_edp_drrs_disable(intel_dp, old_crtc_state);
>>
>> ...this will now depend on old_crtc_state->has_drrs which is probably
>> fine, but...
>>
>> > + intel_psr_disable(intel_dp, old_crtc_state);
>>
>> ...but this will be wrong. I don't mind adding the edp check within.
>
> Argh. Yeah, looks like we're still tracking PSR globally for whatever
> reason :( Let me fix that right up...
With 4d90f2d507ab ("drm/i915: Start tracking PSR state in crtc state")
this is now
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
but please resubmit for CI with the new base.
>
>>
>> > + intel_edp_backlight_off(old_conn_state);
>>
>> This is ok.
>>
>> I guess easiest would be to keep the type == INTEL_OUTPUT_EDP check and
>> clean up afterwards.
>>
>> Otherwise LGTM.
>>
>> BR,
>> Jani.
>>
>>
>>
>> > +}
>> > +
>> > +static void intel_disable_ddi_hdmi(struct intel_encoder *encoder,
>> > + const struct intel_crtc_state *old_crtc_state,
>> > + const struct drm_connector_state *old_conn_state)
>> > +{
>> > + if (old_crtc_state->has_audio)
>> > + intel_audio_codec_disable(encoder);
>> > +
>> > + intel_hdmi_handle_sink_scrambling(encoder,
>> > + old_conn_state->connector,
>> > + false, false);
>> > +}
>> > +
>> > +static void intel_disable_ddi(struct intel_encoder *encoder,
>> > const struct intel_crtc_state *old_crtc_state,
>> > const struct drm_connector_state *old_conn_state)
>> > {
>> > - struct drm_encoder *encoder = &intel_encoder->base;
>> > - int type = intel_encoder->type;
>> > -
>> > - if (old_crtc_state->has_audio)
>> > - intel_audio_codec_disable(intel_encoder);
>> > -
>> > - if (type == INTEL_OUTPUT_HDMI) {
>> > - intel_hdmi_handle_sink_scrambling(intel_encoder,
>> > - old_conn_state->connector,
>> > - false, false);
>> > - }
>> > -
>> > - if (type == INTEL_OUTPUT_EDP) {
>> > - struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>> > -
>> > - intel_edp_drrs_disable(intel_dp, old_crtc_state);
>> > - intel_psr_disable(intel_dp, old_crtc_state);
>> > - intel_edp_backlight_off(old_conn_state);
>> > - }
>> > + if (intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
>> > + intel_disable_ddi_hdmi(encoder, old_crtc_state, old_conn_state);
>> > + else
>> > + intel_disable_ddi_dp(encoder, old_crtc_state, old_conn_state);
>> > }
>> >
>> > static void bxt_ddi_pre_pll_enable(struct intel_encoder *encoder,
>>
>> --
>> Jani Nikula, Intel Open Source Technology Center
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants
2017-10-11 20:06 ` Jani Nikula
@ 2017-10-13 14:20 ` Jani Nikula
2017-10-13 18:10 ` Ville Syrjälä
0 siblings, 1 reply; 26+ messages in thread
From: Jani Nikula @ 2017-10-13 14:20 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Wed, 11 Oct 2017, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> Untangle intel_enable_ddi() by splitting it into DP and HDMI specific
>> variants.
>>
>> v2: Keep using intel_ddi_get_encoder_port() for now
>>
>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_ddi.c | 86 +++++++++++++++++++++++-----------------
>> 1 file changed, 49 insertions(+), 37 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
>> index 49cf8d9d2bc1..18bf06c7e43f 100644
>> --- a/drivers/gpu/drm/i915/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/intel_ddi.c
>> @@ -2369,45 +2369,57 @@ void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
>> I915_WRITE(FDI_RX_CTL(PIPE_A), val);
>> }
>>
>> -static void intel_enable_ddi(struct intel_encoder *intel_encoder,
>> - const struct intel_crtc_state *pipe_config,
>> +static void intel_enable_ddi_dp(struct intel_encoder *encoder,
>> + const struct intel_crtc_state *crtc_state,
>> + const struct drm_connector_state *conn_state)
>> +{
>> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>> + enum port port = intel_ddi_get_encoder_port(encoder);
>> +
>> + if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
>> + intel_dp_stop_link_train(intel_dp);
I note that this was only run on type == INTEL_OUTPUT_EDP previously. I
suppose the condition does effectively imply edp, so this is probably
fine. It's just that sometimes I wonder about the amount of background
knowledge like this that we impose on the reader.
>> +
>> + intel_edp_backlight_on(crtc_state, conn_state);
>> + intel_psr_enable(intel_dp, crtc_state);
>
> This is broken without edp check.
And fine now with 4d90f2d507ab ("drm/i915: Start tracking PSR state in
crtc state") merged.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
> BR, Jani.
>
>
>> + intel_edp_drrs_enable(intel_dp, crtc_state);
>> +
>> + if (crtc_state->has_audio)
>> + intel_audio_codec_enable(encoder, crtc_state, conn_state);
>> +}
>> +
>> +static void intel_enable_ddi_hdmi(struct intel_encoder *encoder,
>> + const struct intel_crtc_state *crtc_state,
>> + const struct drm_connector_state *conn_state)
>> +{
>> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> + struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
>> + enum port port = intel_ddi_get_encoder_port(encoder);
>> +
>> + intel_hdmi_handle_sink_scrambling(encoder,
>> + conn_state->connector,
>> + crtc_state->hdmi_high_tmds_clock_ratio,
>> + crtc_state->hdmi_scrambling);
>> +
>> + /* In HDMI/DVI mode, the port width, and swing/emphasis values
>> + * are ignored so nothing special needs to be done besides
>> + * enabling the port.
>> + */
>> + I915_WRITE(DDI_BUF_CTL(port),
>> + dig_port->saved_port_bits | DDI_BUF_CTL_ENABLE);
>> +
>> + if (crtc_state->has_audio)
>> + intel_audio_codec_enable(encoder, crtc_state, conn_state);
>> +}
>> +
>> +static void intel_enable_ddi(struct intel_encoder *encoder,
>> + const struct intel_crtc_state *crtc_state,
>> const struct drm_connector_state *conn_state)
>> {
>> - struct drm_encoder *encoder = &intel_encoder->base;
>> - struct drm_i915_private *dev_priv = to_i915(encoder->dev);
>> - enum port port = intel_ddi_get_encoder_port(intel_encoder);
>> - int type = intel_encoder->type;
>> -
>> - if (type == INTEL_OUTPUT_HDMI) {
>> - struct intel_digital_port *intel_dig_port =
>> - enc_to_dig_port(encoder);
>> - bool clock_ratio = pipe_config->hdmi_high_tmds_clock_ratio;
>> - bool scrambling = pipe_config->hdmi_scrambling;
>> -
>> - intel_hdmi_handle_sink_scrambling(intel_encoder,
>> - conn_state->connector,
>> - clock_ratio, scrambling);
>> -
>> - /* In HDMI/DVI mode, the port width, and swing/emphasis values
>> - * are ignored so nothing special needs to be done besides
>> - * enabling the port.
>> - */
>> - I915_WRITE(DDI_BUF_CTL(port),
>> - intel_dig_port->saved_port_bits |
>> - DDI_BUF_CTL_ENABLE);
>> - } else if (type == INTEL_OUTPUT_EDP) {
>> - struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>> -
>> - if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
>> - intel_dp_stop_link_train(intel_dp);
>> -
>> - intel_edp_backlight_on(pipe_config, conn_state);
>> - intel_psr_enable(intel_dp, pipe_config);
>> - intel_edp_drrs_enable(intel_dp, pipe_config);
>> - }
>> -
>> - if (pipe_config->has_audio)
>> - intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
>> + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
>> + intel_enable_ddi_hdmi(encoder, crtc_state, conn_state);
>> + else
>> + intel_enable_ddi_dp(encoder, crtc_state, conn_state);
>> }
>>
>> static void intel_disable_ddi_dp(struct intel_encoder *encoder,
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 8/9] drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}()
2017-10-10 12:12 ` [PATCH v2 8/9] drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}() Ville Syrjala
@ 2017-10-13 14:25 ` Jani Nikula
0 siblings, 0 replies; 26+ messages in thread
From: Jani Nikula @ 2017-10-13 14:25 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Rather that plumb the link parameters separately to
> intel_ddi_pre_enable_dp() let's just pass the entire crtc state.
>
> intel_ddi_pre_enable_hdmi() already took the crtc state, but for some
> reason intel_ddi_pre_enable() still wanted to extract has_infoframe
> from therein and pass it in separately. Let's not do that since it's
> pointless.
>
> v2: Rebase due to more code getting pulled into the DDI hooks
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 54 +++++++++++++++-------------------------
> 1 file changed, 20 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index c930ef0338c5..49cf8d9d2bc1 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2157,24 +2157,24 @@ static void intel_ddi_clk_disable(struct intel_encoder *encoder)
> }
>
> static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
> - int link_rate, uint32_t lane_count,
> - struct intel_shared_dpll *pll,
> - bool link_mst)
> + const struct intel_crtc_state *crtc_state,
> + const struct drm_connector_state *conn_state)
> {
> struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> enum port port = intel_ddi_get_encoder_port(encoder);
> struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> + bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
> uint32_t level = intel_ddi_dp_level(intel_dp);
>
> - WARN_ON(link_mst && (port == PORT_A || port == PORT_E));
> + WARN_ON(is_mst && (port == PORT_A || port == PORT_E));
>
> - intel_dp_set_link_params(intel_dp, link_rate, lane_count,
> - link_mst);
> + intel_dp_set_link_params(intel_dp, crtc_state->port_clock,
> + crtc_state->lane_count, is_mst);
>
> intel_edp_panel_on(intel_dp);
>
> - intel_ddi_clk_select(encoder, pll);
> + intel_ddi_clk_select(encoder, crtc_state->shared_dpll);
>
> intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
>
> @@ -2186,7 +2186,7 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
> intel_prepare_dp_ddi_buffers(encoder);
>
> intel_ddi_init_dp_buf_reg(encoder);
> - if (!link_mst)
> + if (!is_mst)
> intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
> intel_dp_start_link_train(intel_dp);
> if (port != PORT_A || INTEL_GEN(dev_priv) >= 9)
> @@ -2194,10 +2194,8 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
> }
>
> static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
> - bool has_infoframe,
> const struct intel_crtc_state *crtc_state,
> - const struct drm_connector_state *conn_state,
> - const struct intel_shared_dpll *pll)
> + const struct drm_connector_state *conn_state)
> {
> struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
> struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
> @@ -2207,7 +2205,7 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
> struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
>
> intel_dp_dual_mode_set_tmds_output(intel_hdmi, true);
> - intel_ddi_clk_select(encoder, pll);
> + intel_ddi_clk_select(encoder, crtc_state->shared_dpll);
>
> intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
>
> @@ -2223,38 +2221,26 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
> skl_ddi_set_iboost(encoder, level);
>
> intel_dig_port->set_infoframes(&encoder->base,
> - has_infoframe,
> + crtc_state->has_infoframe,
> crtc_state, conn_state);
> }
>
> static void intel_ddi_pre_enable(struct intel_encoder *encoder,
> - const struct intel_crtc_state *pipe_config,
> + const struct intel_crtc_state *crtc_state,
> const struct drm_connector_state *conn_state)
> {
> - struct drm_crtc *crtc = pipe_config->base.crtc;
> - struct drm_i915_private *dev_priv = to_i915(crtc->dev);
> - struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> - int pipe = intel_crtc->pipe;
> - int type = encoder->type;
> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> + struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> + enum pipe pipe = crtc->pipe;
>
> - WARN_ON(intel_crtc->config->has_pch_encoder);
> + WARN_ON(crtc_state->has_pch_encoder);
>
> intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);
>
> - if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
> - intel_ddi_pre_enable_dp(encoder,
> - pipe_config->port_clock,
> - pipe_config->lane_count,
> - pipe_config->shared_dpll,
> - intel_crtc_has_type(pipe_config,
> - INTEL_OUTPUT_DP_MST));
> - }
> - if (type == INTEL_OUTPUT_HDMI) {
> - intel_ddi_pre_enable_hdmi(encoder,
> - pipe_config->has_infoframe,
> - pipe_config, conn_state,
> - pipe_config->shared_dpll);
> - }
> + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> + intel_ddi_pre_enable_hdmi(encoder, crtc_state, conn_state);
> + else
> + intel_ddi_pre_enable_dp(encoder, crtc_state, conn_state);
> }
>
> static void intel_disable_ddi_buf(struct intel_encoder *encoder)
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Cleaner DDI DP vs. HDMI split
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (9 preceding siblings ...)
2017-10-10 13:07 ` ✗ Fi.CI.BAT: warning for drm/i915: Cleaner DDI DP vs. HDMI split Patchwork
@ 2017-10-13 17:03 ` Patchwork
2017-10-13 18:16 ` Ville Syrjälä
2017-10-14 0:10 ` ✗ Fi.CI.IGT: failure " Patchwork
11 siblings, 1 reply; 26+ messages in thread
From: Patchwork @ 2017-10-13 17:03 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Cleaner DDI DP vs. HDMI split
URL : https://patchwork.freedesktop.org/series/31652/
State : success
== Summary ==
Series 31652v1 drm/i915: Cleaner DDI DP vs. HDMI split
https://patchwork.freedesktop.org/api/1.0/series/31652/revisions/1/mbox/
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass -> DMESG-WARN (fi-byt-n2820) fdo#101705
fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:460s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:465s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:387s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:575s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:285s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:521s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:522s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:545s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:516s
fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:557s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:437s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:273s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:606s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:441s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:461s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:506s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:478s
fi-kbl-7500u total:289 pass:263 dwarn:1 dfail:0 fail:1 skip:24 time:498s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:488s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:593s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:660s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:469s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:661s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:535s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:546s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:475s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:589s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:438s
005c15a2795854ab64b6ce63dcb099d2eea4a889 drm-tip: 2017y-10m-13d-15h-39m-54s UTC integration manifest
c1474648590a drm/i915: Split intel_enable_ddi() into DP and HDMI variants
b25037cf58c5 drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}()
4683e47e72c9 drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
d7b8576c70b9 drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp()
d62a40df8dea drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants
e59da336b286 drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable()
d00f451e0170 drm/i915: Extract intel_disable_ddi_buf()
7410e47bcade drm/i915: Extract intel_ddi_clk_disable()
8d591429231c drm/i915: Dump 'output_types' in crtc state dump
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6026/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants
2017-10-13 14:20 ` Jani Nikula
@ 2017-10-13 18:10 ` Ville Syrjälä
0 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjälä @ 2017-10-13 18:10 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
On Fri, Oct 13, 2017 at 05:20:47PM +0300, Jani Nikula wrote:
> On Wed, 11 Oct 2017, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> > On Tue, 10 Oct 2017, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> >> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >>
> >> Untangle intel_enable_ddi() by splitting it into DP and HDMI specific
> >> variants.
> >>
> >> v2: Keep using intel_ddi_get_encoder_port() for now
> >>
> >> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >> ---
> >> drivers/gpu/drm/i915/intel_ddi.c | 86 +++++++++++++++++++++++-----------------
> >> 1 file changed, 49 insertions(+), 37 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> >> index 49cf8d9d2bc1..18bf06c7e43f 100644
> >> --- a/drivers/gpu/drm/i915/intel_ddi.c
> >> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> >> @@ -2369,45 +2369,57 @@ void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
> >> I915_WRITE(FDI_RX_CTL(PIPE_A), val);
> >> }
> >>
> >> -static void intel_enable_ddi(struct intel_encoder *intel_encoder,
> >> - const struct intel_crtc_state *pipe_config,
> >> +static void intel_enable_ddi_dp(struct intel_encoder *encoder,
> >> + const struct intel_crtc_state *crtc_state,
> >> + const struct drm_connector_state *conn_state)
> >> +{
> >> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> >> + enum port port = intel_ddi_get_encoder_port(encoder);
> >> +
> >> + if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
> >> + intel_dp_stop_link_train(intel_dp);
>
> I note that this was only run on type == INTEL_OUTPUT_EDP previously. I
> suppose the condition does effectively imply edp, so this is probably
> fine.
The spec is actually a little vague which one it means. The wording used
is "If eDP (DDI A), set DP_TP_CTL link training to Normal". So it's not
clear if this change in behaviour is required because the sink is eDP,
because the eDP transcoder is used, or because we're dealing with DDI A.
Since DDI A is mentioned I'm going to assume that's what it means ;)
> It's just that sometimes I wonder about the amount of background
> knowledge like this that we impose on the reader.
>
> >> +
> >> + intel_edp_backlight_on(crtc_state, conn_state);
> >> + intel_psr_enable(intel_dp, crtc_state);
> >
> > This is broken without edp check.
>
> And fine now with 4d90f2d507ab ("drm/i915: Start tracking PSR state in
> crtc state") merged.
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
>
> >
> > BR, Jani.
> >
> >
> >> + intel_edp_drrs_enable(intel_dp, crtc_state);
> >> +
> >> + if (crtc_state->has_audio)
> >> + intel_audio_codec_enable(encoder, crtc_state, conn_state);
> >> +}
> >> +
> >> +static void intel_enable_ddi_hdmi(struct intel_encoder *encoder,
> >> + const struct intel_crtc_state *crtc_state,
> >> + const struct drm_connector_state *conn_state)
> >> +{
> >> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> + struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> >> + enum port port = intel_ddi_get_encoder_port(encoder);
> >> +
> >> + intel_hdmi_handle_sink_scrambling(encoder,
> >> + conn_state->connector,
> >> + crtc_state->hdmi_high_tmds_clock_ratio,
> >> + crtc_state->hdmi_scrambling);
> >> +
> >> + /* In HDMI/DVI mode, the port width, and swing/emphasis values
> >> + * are ignored so nothing special needs to be done besides
> >> + * enabling the port.
> >> + */
> >> + I915_WRITE(DDI_BUF_CTL(port),
> >> + dig_port->saved_port_bits | DDI_BUF_CTL_ENABLE);
> >> +
> >> + if (crtc_state->has_audio)
> >> + intel_audio_codec_enable(encoder, crtc_state, conn_state);
> >> +}
> >> +
> >> +static void intel_enable_ddi(struct intel_encoder *encoder,
> >> + const struct intel_crtc_state *crtc_state,
> >> const struct drm_connector_state *conn_state)
> >> {
> >> - struct drm_encoder *encoder = &intel_encoder->base;
> >> - struct drm_i915_private *dev_priv = to_i915(encoder->dev);
> >> - enum port port = intel_ddi_get_encoder_port(intel_encoder);
> >> - int type = intel_encoder->type;
> >> -
> >> - if (type == INTEL_OUTPUT_HDMI) {
> >> - struct intel_digital_port *intel_dig_port =
> >> - enc_to_dig_port(encoder);
> >> - bool clock_ratio = pipe_config->hdmi_high_tmds_clock_ratio;
> >> - bool scrambling = pipe_config->hdmi_scrambling;
> >> -
> >> - intel_hdmi_handle_sink_scrambling(intel_encoder,
> >> - conn_state->connector,
> >> - clock_ratio, scrambling);
> >> -
> >> - /* In HDMI/DVI mode, the port width, and swing/emphasis values
> >> - * are ignored so nothing special needs to be done besides
> >> - * enabling the port.
> >> - */
> >> - I915_WRITE(DDI_BUF_CTL(port),
> >> - intel_dig_port->saved_port_bits |
> >> - DDI_BUF_CTL_ENABLE);
> >> - } else if (type == INTEL_OUTPUT_EDP) {
> >> - struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> >> -
> >> - if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
> >> - intel_dp_stop_link_train(intel_dp);
> >> -
> >> - intel_edp_backlight_on(pipe_config, conn_state);
> >> - intel_psr_enable(intel_dp, pipe_config);
> >> - intel_edp_drrs_enable(intel_dp, pipe_config);
> >> - }
> >> -
> >> - if (pipe_config->has_audio)
> >> - intel_audio_codec_enable(intel_encoder, pipe_config, conn_state);
> >> + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> >> + intel_enable_ddi_hdmi(encoder, crtc_state, conn_state);
> >> + else
> >> + intel_enable_ddi_dp(encoder, crtc_state, conn_state);
> >> }
> >>
> >> static void intel_disable_ddi_dp(struct intel_encoder *encoder,
>
> --
> Jani Nikula, Intel Open Source Technology Center
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: ✓ Fi.CI.BAT: success for drm/i915: Cleaner DDI DP vs. HDMI split
2017-10-13 17:03 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2017-10-13 18:16 ` Ville Syrjälä
2017-10-13 18:49 ` Jani Nikula
0 siblings, 1 reply; 26+ messages in thread
From: Ville Syrjälä @ 2017-10-13 18:16 UTC (permalink / raw)
To: intel-gfx
On Fri, Oct 13, 2017 at 05:03:39PM -0000, Patchwork wrote:
> == Series Details ==
>
> Series: drm/i915: Cleaner DDI DP vs. HDMI split
> URL : https://patchwork.freedesktop.org/series/31652/
> State : success
>
> == Summary ==
>
> Series 31652v1 drm/i915: Cleaner DDI DP vs. HDMI split
> https://patchwork.freedesktop.org/api/1.0/series/31652/revisions/1/mbox/
>
> Test kms_pipe_crc_basic:
> Subgroup suspend-read-crc-pipe-b:
> pass -> DMESG-WARN (fi-byt-n2820) fdo#101705
>
> fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
>
> fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:460s
> fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:465s
> fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:387s
> fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:575s
> fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:285s
> fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:521s
> fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:522s
> fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:545s
> fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:516s
> fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:557s
> fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:437s
> fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:273s
> fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:606s
> fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:441s
> fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:461s
> fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:506s
> fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:478s
> fi-kbl-7500u total:289 pass:263 dwarn:1 dfail:0 fail:1 skip:24 time:498s
> fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:488s
> fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:593s
> fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:660s
> fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:469s
> fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:661s
> fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:535s
> fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:546s
> fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:475s
> fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:589s
> fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:438s
>
> 005c15a2795854ab64b6ce63dcb099d2eea4a889 drm-tip: 2017y-10m-13d-15h-39m-54s UTC integration manifest
This one has commit 4d90f2d507ab ("drm/i915: Start tracking PSR state in
crtc state"), so everything still looks good.
Series pushed to dinq. Thanks for the review, and especially catching
that PSR fail.
> c1474648590a drm/i915: Split intel_enable_ddi() into DP and HDMI variants
> b25037cf58c5 drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}()
> 4683e47e72c9 drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
> d7b8576c70b9 drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp()
> d62a40df8dea drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants
> e59da336b286 drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable()
> d00f451e0170 drm/i915: Extract intel_disable_ddi_buf()
> 7410e47bcade drm/i915: Extract intel_ddi_clk_disable()
> 8d591429231c drm/i915: Dump 'output_types' in crtc state dump
>
> == Logs ==
>
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6026/
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: ✓ Fi.CI.BAT: success for drm/i915: Cleaner DDI DP vs. HDMI split
2017-10-13 18:16 ` Ville Syrjälä
@ 2017-10-13 18:49 ` Jani Nikula
0 siblings, 0 replies; 26+ messages in thread
From: Jani Nikula @ 2017-10-13 18:49 UTC (permalink / raw)
To: Ville Syrjälä, intel-gfx
On Fri, 13 Oct 2017, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Fri, Oct 13, 2017 at 05:03:39PM -0000, Patchwork wrote:
>> == Series Details ==
>>
>> Series: drm/i915: Cleaner DDI DP vs. HDMI split
>> URL : https://patchwork.freedesktop.org/series/31652/
>> State : success
>>
>> == Summary ==
>>
>> Series 31652v1 drm/i915: Cleaner DDI DP vs. HDMI split
>> https://patchwork.freedesktop.org/api/1.0/series/31652/revisions/1/mbox/
>>
>> Test kms_pipe_crc_basic:
>> Subgroup suspend-read-crc-pipe-b:
>> pass -> DMESG-WARN (fi-byt-n2820) fdo#101705
>>
>> fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
>>
>> fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:460s
>> fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:465s
>> fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:387s
>> fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:575s
>> fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:285s
>> fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:521s
>> fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:522s
>> fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:545s
>> fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:516s
>> fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:557s
>> fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:437s
>> fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:273s
>> fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:606s
>> fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:441s
>> fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:461s
>> fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:506s
>> fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:478s
>> fi-kbl-7500u total:289 pass:263 dwarn:1 dfail:0 fail:1 skip:24 time:498s
>> fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:488s
>> fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:593s
>> fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:660s
>> fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:469s
>> fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:661s
>> fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:535s
>> fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:546s
>> fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:475s
>> fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:589s
>> fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:438s
>>
>> 005c15a2795854ab64b6ce63dcb099d2eea4a889 drm-tip: 2017y-10m-13d-15h-39m-54s UTC integration manifest
>
> This one has commit 4d90f2d507ab ("drm/i915: Start tracking PSR state in
> crtc state"), so everything still looks good.
Right, that's good... but this was just BAT, not full IGT yet. :/
> Series pushed to dinq. Thanks for the review, and especially catching
> that PSR fail.
It's good to find the occasional gotcha, that's what we do review for
after all. Fingers crossed that it'll all work on full IGT too!
BR,
Jani.
>
>> c1474648590a drm/i915: Split intel_enable_ddi() into DP and HDMI variants
>> b25037cf58c5 drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}()
>> 4683e47e72c9 drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants
>> d7b8576c70b9 drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp()
>> d62a40df8dea drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants
>> e59da336b286 drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable()
>> d00f451e0170 drm/i915: Extract intel_disable_ddi_buf()
>> 7410e47bcade drm/i915: Extract intel_ddi_clk_disable()
>> 8d591429231c drm/i915: Dump 'output_types' in crtc state dump
>>
>> == Logs ==
>>
>> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6026/
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915: Cleaner DDI DP vs. HDMI split
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
` (10 preceding siblings ...)
2017-10-13 17:03 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2017-10-14 0:10 ` Patchwork
11 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2017-10-14 0:10 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Cleaner DDI DP vs. HDMI split
URL : https://patchwork.freedesktop.org/series/31652/
State : failure
== Summary ==
Test kms_flip:
Subgroup wf_vblank-vs-dpms-interruptible:
pass -> DMESG-WARN (shard-hsw) fdo#102614
Test kms_cursor_legacy:
Subgroup cursor-vs-flip-atomic-transitions:
pass -> FAIL (shard-hsw)
fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
shard-hsw total:2553 pass:1439 dwarn:2 dfail:0 fail:9 skip:1103 time:9634s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6026/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2017-10-14 0:10 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-10 12:11 [PATCH v2 0/9] drm/i915: Cleaner DDI DP vs. HDMI split Ville Syrjala
2017-10-10 12:11 ` [PATCH v2 1/9] drm/i915: Dump 'output_types' in crtc state dump Ville Syrjala
2017-10-11 19:50 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 2/9] drm/i915: Extract intel_ddi_clk_disable() Ville Syrjala
2017-10-11 19:52 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 3/9] drm/i915: Extract intel_disable_ddi_buf() Ville Syrjala
2017-10-11 19:53 ` Jani Nikula
2017-10-10 12:12 ` [PATCH 4/9] drm/i915: Inline the required bits of intel_ddi_post_disable() into intel_ddi_fdi_post_disable() Ville Syrjala
2017-10-10 12:12 ` [PATCH v2 5/9] drm/i915: Split intel_ddi_post_disable() into DP vs. HDMI variants Ville Syrjala
2017-10-10 12:12 ` [PATCH 6/9] drm/i915: Remove useless eDP check from intel_ddi_pre_enable_dp() Ville Syrjala
2017-10-10 12:12 ` [PATCH 7/9] drm/i915: Split intel_disable_ddi() into DP vs. HDMI variants Ville Syrjala
2017-10-11 20:03 ` Jani Nikula
2017-10-12 9:49 ` Ville Syrjälä
2017-10-13 14:13 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 8/9] drm/i915: Plumb crtc_state etc. directly to intel_ddi_pre_enable_{dp, hdmi}() Ville Syrjala
2017-10-13 14:25 ` Jani Nikula
2017-10-10 12:12 ` [PATCH v2 9/9] drm/i915: Split intel_enable_ddi() into DP and HDMI variants Ville Syrjala
2017-10-11 20:06 ` Jani Nikula
2017-10-13 14:20 ` Jani Nikula
2017-10-13 18:10 ` Ville Syrjälä
2017-10-10 13:07 ` ✗ Fi.CI.BAT: warning for drm/i915: Cleaner DDI DP vs. HDMI split Patchwork
2017-10-10 13:21 ` Ville Syrjälä
2017-10-13 17:03 ` ✓ Fi.CI.BAT: success " Patchwork
2017-10-13 18:16 ` Ville Syrjälä
2017-10-13 18:49 ` Jani Nikula
2017-10-14 0:10 ` ✗ Fi.CI.IGT: failure " Patchwork
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.