intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/i915/debugfs: add dp mst info
@ 2016-11-28 12:07 libin.yang
  2016-11-28 12:07 ` [PATCH 2/3] drm/i915: abstract ddi being audio enabled libin.yang
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: libin.yang @ 2016-11-28 12:07 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, ville.syrjala, daniel.vetter,
	dhinakaran.pandiyan, tiwai
  Cc: Rodrigo Vivi

From: Libin Yang <libin.yang@intel.com>

Add the DP MST info dump in debugfs.

Signed-off-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Lyude <cpaul@redhat.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index e7f731f..f5f88b2 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2877,6 +2877,20 @@ static void intel_dp_info(struct seq_file *m,
 				&intel_dp->aux);
 }
 
+static void intel_dp_mst_info(struct seq_file *m,
+			  struct intel_connector *intel_connector)
+{
+	struct intel_encoder *intel_encoder = intel_connector->encoder;
+	struct intel_dp_mst_encoder *intel_mst =
+		enc_to_mst(&intel_encoder->base);
+	struct intel_digital_port *intel_dig_port = intel_mst->primary;
+	struct intel_dp *intel_dp = &intel_dig_port->dp;
+	bool has_audio = drm_dp_mst_port_has_audio(&intel_dp->mst_mgr,
+					intel_connector->port);
+
+	seq_printf(m, "\taudio support: %s\n", yesno(has_audio));
+}
+
 static void intel_hdmi_info(struct seq_file *m,
 			    struct intel_connector *intel_connector)
 {
@@ -2919,7 +2933,10 @@ static void intel_connector_info(struct seq_file *m,
 	switch (connector->connector_type) {
 	case DRM_MODE_CONNECTOR_DisplayPort:
 	case DRM_MODE_CONNECTOR_eDP:
-		intel_dp_info(m, intel_connector);
+		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
+			intel_dp_mst_info(m, intel_connector);
+		else
+			intel_dp_info(m, intel_connector);
 		break;
 	case DRM_MODE_CONNECTOR_LVDS:
 		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
-- 
2.7.4

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

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

* [PATCH 2/3] drm/i915: abstract ddi being audio enabled
  2016-11-28 12:07 [PATCH 1/3] drm/i915/debugfs: add dp mst info libin.yang
@ 2016-11-28 12:07 ` libin.yang
  2016-11-29  9:25   ` Jani Nikula
  2016-11-28 12:07 ` [PATCH 3/3] drm/i915: enable dp mst audio libin.yang
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: libin.yang @ 2016-11-28 12:07 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, ville.syrjala, daniel.vetter,
	dhinakaran.pandiyan, tiwai
  Cc: Rodrigo Vivi

From: Libin Yang <libin.yang@intel.com>

Prepare for using the same code for judging ddi being audio enabled.
No functional changes.

Signed-off-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Lyude <cpaul@redhat.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/intel_ddi.c | 20 +++++++++++++++-----
 drivers/gpu/drm/i915/intel_drv.h |  2 ++
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 0d680da..e5410be 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1950,6 +1950,19 @@ void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp)
 	udelay(600);
 }
 
+bool intel_ddi_is_audio_enabled(struct drm_i915_private *dev_priv,
+				 struct intel_crtc *intel_crtc)
+{
+	u32 temp;
+
+	if (intel_display_power_is_enabled(dev_priv, POWER_DOMAIN_AUDIO)) {
+		temp = I915_READ(HSW_AUD_PIN_ELD_CP_VLD);
+		if (temp & AUDIO_OUTPUT_ENABLE(intel_crtc->pipe))
+			return true;
+	}
+	return false;
+}
+
 void intel_ddi_get_config(struct intel_encoder *encoder,
 			  struct intel_crtc_state *pipe_config)
 {
@@ -2015,11 +2028,8 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
 		break;
 	}
 
-	if (intel_display_power_is_enabled(dev_priv, POWER_DOMAIN_AUDIO)) {
-		temp = I915_READ(HSW_AUD_PIN_ELD_CP_VLD);
-		if (temp & AUDIO_OUTPUT_ENABLE(intel_crtc->pipe))
-			pipe_config->has_audio = true;
-	}
+	pipe_config->has_audio =
+		intel_ddi_is_audio_enabled(dev_priv, intel_crtc);
 
 	if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp.bpp &&
 	    pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 9bbe5c5..9346660 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1175,6 +1175,8 @@ bool intel_ddi_pll_select(struct intel_crtc *crtc,
 void intel_ddi_set_pipe_settings(struct drm_crtc *crtc);
 void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp);
 bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector);
+bool intel_ddi_is_audio_enabled(struct drm_i915_private *dev_priv,
+				 struct intel_crtc *intel_crtc);
 void intel_ddi_get_config(struct intel_encoder *encoder,
 			  struct intel_crtc_state *pipe_config);
 struct intel_encoder *
-- 
2.7.4

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

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

* [PATCH 3/3] drm/i915: enable dp mst audio
  2016-11-28 12:07 [PATCH 1/3] drm/i915/debugfs: add dp mst info libin.yang
  2016-11-28 12:07 ` [PATCH 2/3] drm/i915: abstract ddi being audio enabled libin.yang
@ 2016-11-28 12:07 ` libin.yang
  2016-11-29  9:28   ` Jani Nikula
  2016-11-28 14:45 ` ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/debugfs: add dp mst info Patchwork
  2016-11-29  9:24 ` [PATCH 1/3] " Jani Nikula
  3 siblings, 1 reply; 10+ messages in thread
From: libin.yang @ 2016-11-28 12:07 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, ville.syrjala, daniel.vetter,
	dhinakaran.pandiyan, tiwai
  Cc: Jani Nikula, Rodrigo Vivi

From: Libin Yang <libin.yang@intel.com>

This patch adds support for DP MST audio in i915.

Enable audio codec when DP MST is enabled if has_audio flag is set.
Disable audio codec when DP MST is disabled if has_audio flag is set.

Another separated patches to support DP MST audio will be implemented
in audio driver.

This patch is ported from
commit 3708d5e082c3 ("drm/i915: start adding dp mst audio")

And because commit 3708d5e082c3 ("drm/i915: start adding dp mst audio")
breaks MST multi-monitor setups on some platforms, the orignal patch is
reverted by
commit be754b101f70 ("Revert "drm/i915: start adding dp mst audio"")

As the multi-monitor setups issue is fixed, let's port the patch and
enable the dp mst audio.

Signed-off-by: Libin Yang <libin.yang@intel.com>
Cc: Lyude <cpaul@redhat.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
 drivers/gpu/drm/i915/intel_dp_mst.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index b029d10..1f98757f 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -37,6 +37,8 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
 	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
+	struct intel_connector *connector =
+		to_intel_connector(conn_state->connector);
 	struct drm_atomic_state *state;
 	int bpp;
 	int lane_count, slots;
@@ -58,6 +60,8 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
 
 	state = pipe_config->base.state;
 
+	if (drm_dp_mst_port_has_audio(&intel_dp->mst_mgr, connector->port))
+		pipe_config->has_audio = true;
 	mst_pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, bpp);
 
 	pipe_config->pbn = mst_pbn;
@@ -83,6 +87,7 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct intel_connector *connector =
 		to_intel_connector(old_conn_state->connector);
+	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	int ret;
 
 	DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
@@ -93,6 +98,10 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
 	if (ret) {
 		DRM_ERROR("failed to update payload %d\n", ret);
 	}
+	if (old_crtc_state->has_audio) {
+		intel_audio_codec_disable(encoder);
+		intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO);
+	}
 }
 
 static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
@@ -205,6 +214,10 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
 	ret = drm_dp_check_act_status(&intel_dp->mst_mgr);
 
 	ret = drm_dp_update_payload_part2(&intel_dp->mst_mgr);
+	if (pipe_config->has_audio) {
+		intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
+		intel_audio_codec_enable(encoder, pipe_config, conn_state);
+	}
 }
 
 static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
@@ -227,6 +240,9 @@ static void intel_dp_mst_enc_get_config(struct intel_encoder *encoder,
 	enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
 	u32 temp, flags = 0;
 
+	pipe_config->has_audio =
+		intel_ddi_is_audio_enabled(dev_priv, crtc);
+
 	temp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));
 	if (temp & TRANS_DDI_PHSYNC)
 		flags |= DRM_MODE_FLAG_PHSYNC;
-- 
2.7.4

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

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

* ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/debugfs: add dp mst info
  2016-11-28 12:07 [PATCH 1/3] drm/i915/debugfs: add dp mst info libin.yang
  2016-11-28 12:07 ` [PATCH 2/3] drm/i915: abstract ddi being audio enabled libin.yang
  2016-11-28 12:07 ` [PATCH 3/3] drm/i915: enable dp mst audio libin.yang
@ 2016-11-28 14:45 ` Patchwork
  2016-11-29  9:24 ` [PATCH 1/3] " Jani Nikula
  3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2016-11-28 14:45 UTC (permalink / raw)
  To: libin.yang; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/3] drm/i915/debugfs: add dp mst info
URL   : https://patchwork.freedesktop.org/series/16036/
State : success

== Summary ==

Series 16036v1 Series without cover letter
https://patchwork.freedesktop.org/api/1.0/series/16036/revisions/1/mbox/


fi-bdw-5557u     total:245  pass:230  dwarn:0   dfail:0   fail:0   skip:15 
fi-bsw-n3050     total:245  pass:205  dwarn:0   dfail:0   fail:0   skip:40 
fi-byt-j1900     total:245  pass:217  dwarn:0   dfail:0   fail:0   skip:28 
fi-byt-n2820     total:245  pass:213  dwarn:0   dfail:0   fail:0   skip:32 
fi-hsw-4770      total:245  pass:225  dwarn:0   dfail:0   fail:0   skip:20 
fi-hsw-4770r     total:245  pass:225  dwarn:0   dfail:0   fail:0   skip:20 
fi-ilk-650       total:245  pass:192  dwarn:0   dfail:0   fail:0   skip:53 
fi-ivb-3520m     total:245  pass:223  dwarn:0   dfail:0   fail:0   skip:22 
fi-ivb-3770      total:245  pass:223  dwarn:0   dfail:0   fail:0   skip:22 
fi-kbl-7500u     total:245  pass:223  dwarn:0   dfail:0   fail:0   skip:22 
fi-skl-6260u     total:245  pass:231  dwarn:0   dfail:0   fail:0   skip:14 
fi-skl-6700hq    total:245  pass:224  dwarn:0   dfail:0   fail:0   skip:21 
fi-skl-6700k     total:245  pass:223  dwarn:1   dfail:0   fail:0   skip:21 
fi-skl-6770hq    total:245  pass:231  dwarn:0   dfail:0   fail:0   skip:14 
fi-snb-2520m     total:245  pass:213  dwarn:0   dfail:0   fail:0   skip:32 
fi-snb-2600      total:245  pass:212  dwarn:0   dfail:0   fail:0   skip:33 

8f02d2103390e48e9e76c9e75d16dbb4396484c8 drm-tip: 2016y-11m-28d-12h-38m-14s UTC integration manifest
398e091 drm/i915: enable dp mst audio
1ebd50a drm/i915: abstract ddi being audio enabled
059c25e drm/i915/debugfs: add dp mst info

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3125/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/3] drm/i915/debugfs: add dp mst info
  2016-11-28 12:07 [PATCH 1/3] drm/i915/debugfs: add dp mst info libin.yang
                   ` (2 preceding siblings ...)
  2016-11-28 14:45 ` ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/debugfs: add dp mst info Patchwork
@ 2016-11-29  9:24 ` Jani Nikula
  2016-11-29 16:01   ` Jani Nikula
  2016-11-29 17:22   ` Vivi, Rodrigo
  3 siblings, 2 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-29  9:24 UTC (permalink / raw)
  To: libin.yang, intel-gfx, ville.syrjala, daniel.vetter,
	dhinakaran.pandiyan, tiwai
  Cc: Rodrigo Vivi

On Mon, 28 Nov 2016, libin.yang@intel.com wrote:
> From: Libin Yang <libin.yang@intel.com>
>
> Add the DP MST info dump in debugfs.
>
> Signed-off-by: Libin Yang <libin.yang@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Reviewed-by: Lyude <cpaul@redhat.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

I don't think Rodrigo's sob is proper here, even if he pushed the
original version of the patch that got later reverted.

Anyway,

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

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index e7f731f..f5f88b2 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2877,6 +2877,20 @@ static void intel_dp_info(struct seq_file *m,
>  				&intel_dp->aux);
>  }
>  
> +static void intel_dp_mst_info(struct seq_file *m,
> +			  struct intel_connector *intel_connector)
> +{
> +	struct intel_encoder *intel_encoder = intel_connector->encoder;
> +	struct intel_dp_mst_encoder *intel_mst =
> +		enc_to_mst(&intel_encoder->base);
> +	struct intel_digital_port *intel_dig_port = intel_mst->primary;
> +	struct intel_dp *intel_dp = &intel_dig_port->dp;
> +	bool has_audio = drm_dp_mst_port_has_audio(&intel_dp->mst_mgr,
> +					intel_connector->port);
> +
> +	seq_printf(m, "\taudio support: %s\n", yesno(has_audio));
> +}
> +
>  static void intel_hdmi_info(struct seq_file *m,
>  			    struct intel_connector *intel_connector)
>  {
> @@ -2919,7 +2933,10 @@ static void intel_connector_info(struct seq_file *m,
>  	switch (connector->connector_type) {
>  	case DRM_MODE_CONNECTOR_DisplayPort:
>  	case DRM_MODE_CONNECTOR_eDP:
> -		intel_dp_info(m, intel_connector);
> +		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> +			intel_dp_mst_info(m, intel_connector);
> +		else
> +			intel_dp_info(m, intel_connector);
>  		break;
>  	case DRM_MODE_CONNECTOR_LVDS:
>  		if (intel_encoder->type == INTEL_OUTPUT_LVDS)

-- 
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] 10+ messages in thread

* Re: [PATCH 2/3] drm/i915: abstract ddi being audio enabled
  2016-11-28 12:07 ` [PATCH 2/3] drm/i915: abstract ddi being audio enabled libin.yang
@ 2016-11-29  9:25   ` Jani Nikula
  0 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-29  9:25 UTC (permalink / raw)
  To: libin.yang, intel-gfx, ville.syrjala, daniel.vetter,
	dhinakaran.pandiyan, tiwai
  Cc: Rodrigo Vivi

On Mon, 28 Nov 2016, libin.yang@intel.com wrote:
> From: Libin Yang <libin.yang@intel.com>
>
> Prepare for using the same code for judging ddi being audio enabled.
> No functional changes.
>
> Signed-off-by: Libin Yang <libin.yang@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Reviewed-by: Lyude <cpaul@redhat.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

Same thing about Rodrigo's sob.

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

> ---
>  drivers/gpu/drm/i915/intel_ddi.c | 20 +++++++++++++++-----
>  drivers/gpu/drm/i915/intel_drv.h |  2 ++
>  2 files changed, 17 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index 0d680da..e5410be 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1950,6 +1950,19 @@ void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp)
>  	udelay(600);
>  }
>  
> +bool intel_ddi_is_audio_enabled(struct drm_i915_private *dev_priv,
> +				 struct intel_crtc *intel_crtc)
> +{
> +	u32 temp;
> +
> +	if (intel_display_power_is_enabled(dev_priv, POWER_DOMAIN_AUDIO)) {
> +		temp = I915_READ(HSW_AUD_PIN_ELD_CP_VLD);
> +		if (temp & AUDIO_OUTPUT_ENABLE(intel_crtc->pipe))
> +			return true;
> +	}
> +	return false;
> +}
> +
>  void intel_ddi_get_config(struct intel_encoder *encoder,
>  			  struct intel_crtc_state *pipe_config)
>  {
> @@ -2015,11 +2028,8 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
>  		break;
>  	}
>  
> -	if (intel_display_power_is_enabled(dev_priv, POWER_DOMAIN_AUDIO)) {
> -		temp = I915_READ(HSW_AUD_PIN_ELD_CP_VLD);
> -		if (temp & AUDIO_OUTPUT_ENABLE(intel_crtc->pipe))
> -			pipe_config->has_audio = true;
> -	}
> +	pipe_config->has_audio =
> +		intel_ddi_is_audio_enabled(dev_priv, intel_crtc);
>  
>  	if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp.bpp &&
>  	    pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 9bbe5c5..9346660 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1175,6 +1175,8 @@ bool intel_ddi_pll_select(struct intel_crtc *crtc,
>  void intel_ddi_set_pipe_settings(struct drm_crtc *crtc);
>  void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp);
>  bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector);
> +bool intel_ddi_is_audio_enabled(struct drm_i915_private *dev_priv,
> +				 struct intel_crtc *intel_crtc);
>  void intel_ddi_get_config(struct intel_encoder *encoder,
>  			  struct intel_crtc_state *pipe_config);
>  struct intel_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] 10+ messages in thread

* Re: [PATCH 3/3] drm/i915: enable dp mst audio
  2016-11-28 12:07 ` [PATCH 3/3] drm/i915: enable dp mst audio libin.yang
@ 2016-11-29  9:28   ` Jani Nikula
  0 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-29  9:28 UTC (permalink / raw)
  To: libin.yang, intel-gfx, ville.syrjala, daniel.vetter,
	dhinakaran.pandiyan, tiwai
  Cc: Rodrigo Vivi

On Mon, 28 Nov 2016, libin.yang@intel.com wrote:
> From: Libin Yang <libin.yang@intel.com>
>
> This patch adds support for DP MST audio in i915.
>
> Enable audio codec when DP MST is enabled if has_audio flag is set.
> Disable audio codec when DP MST is disabled if has_audio flag is set.
>
> Another separated patches to support DP MST audio will be implemented
> in audio driver.
>
> This patch is ported from
> commit 3708d5e082c3 ("drm/i915: start adding dp mst audio")
>
> And because commit 3708d5e082c3 ("drm/i915: start adding dp mst audio")
> breaks MST multi-monitor setups on some platforms, the orignal patch is
> reverted by
> commit be754b101f70 ("Revert "drm/i915: start adding dp mst audio"")
>
> As the multi-monitor setups issue is fixed, let's port the patch and
> enable the dp mst audio.
>
> Signed-off-by: Libin Yang <libin.yang@intel.com>
> Cc: Lyude <cpaul@redhat.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>

Looks nicer now.

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

> ---
>  drivers/gpu/drm/i915/intel_dp_mst.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index b029d10..1f98757f 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -37,6 +37,8 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
>  	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
>  	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>  	struct intel_dp *intel_dp = &intel_dig_port->dp;
> +	struct intel_connector *connector =
> +		to_intel_connector(conn_state->connector);
>  	struct drm_atomic_state *state;
>  	int bpp;
>  	int lane_count, slots;
> @@ -58,6 +60,8 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
>  
>  	state = pipe_config->base.state;
>  
> +	if (drm_dp_mst_port_has_audio(&intel_dp->mst_mgr, connector->port))
> +		pipe_config->has_audio = true;
>  	mst_pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, bpp);
>  
>  	pipe_config->pbn = mst_pbn;
> @@ -83,6 +87,7 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
>  	struct intel_dp *intel_dp = &intel_dig_port->dp;
>  	struct intel_connector *connector =
>  		to_intel_connector(old_conn_state->connector);
> +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	int ret;
>  
>  	DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
> @@ -93,6 +98,10 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
>  	if (ret) {
>  		DRM_ERROR("failed to update payload %d\n", ret);
>  	}
> +	if (old_crtc_state->has_audio) {
> +		intel_audio_codec_disable(encoder);
> +		intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO);
> +	}
>  }
>  
>  static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
> @@ -205,6 +214,10 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
>  	ret = drm_dp_check_act_status(&intel_dp->mst_mgr);
>  
>  	ret = drm_dp_update_payload_part2(&intel_dp->mst_mgr);
> +	if (pipe_config->has_audio) {
> +		intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
> +		intel_audio_codec_enable(encoder, pipe_config, conn_state);
> +	}
>  }
>  
>  static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
> @@ -227,6 +240,9 @@ static void intel_dp_mst_enc_get_config(struct intel_encoder *encoder,
>  	enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
>  	u32 temp, flags = 0;
>  
> +	pipe_config->has_audio =
> +		intel_ddi_is_audio_enabled(dev_priv, crtc);
> +
>  	temp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));
>  	if (temp & TRANS_DDI_PHSYNC)
>  		flags |= DRM_MODE_FLAG_PHSYNC;

-- 
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] 10+ messages in thread

* Re: [PATCH 1/3] drm/i915/debugfs: add dp mst info
  2016-11-29  9:24 ` [PATCH 1/3] " Jani Nikula
@ 2016-11-29 16:01   ` Jani Nikula
  2016-11-29 17:22   ` Vivi, Rodrigo
  1 sibling, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-29 16:01 UTC (permalink / raw)
  To: libin.yang, intel-gfx, ville.syrjala, daniel.vetter,
	dhinakaran.pandiyan, tiwai
  Cc: Rodrigo Vivi

On Tue, 29 Nov 2016, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Mon, 28 Nov 2016, libin.yang@intel.com wrote:
>> From: Libin Yang <libin.yang@intel.com>
>>
>> Add the DP MST info dump in debugfs.
>>
>> Signed-off-by: Libin Yang <libin.yang@intel.com>
>> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
>> Reviewed-by: Lyude <cpaul@redhat.com>
>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> I don't think Rodrigo's sob is proper here, even if he pushed the
> original version of the patch that got later reverted.

Pushed the series, with the tags fixed a bit, thanks for the patches.

BR,
Jani.

>
> Anyway,
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
>> ---
>>  drivers/gpu/drm/i915/i915_debugfs.c | 19 ++++++++++++++++++-
>>  1 file changed, 18 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>> index e7f731f..f5f88b2 100644
>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>> @@ -2877,6 +2877,20 @@ static void intel_dp_info(struct seq_file *m,
>>  				&intel_dp->aux);
>>  }
>>  
>> +static void intel_dp_mst_info(struct seq_file *m,
>> +			  struct intel_connector *intel_connector)
>> +{
>> +	struct intel_encoder *intel_encoder = intel_connector->encoder;
>> +	struct intel_dp_mst_encoder *intel_mst =
>> +		enc_to_mst(&intel_encoder->base);
>> +	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>> +	struct intel_dp *intel_dp = &intel_dig_port->dp;
>> +	bool has_audio = drm_dp_mst_port_has_audio(&intel_dp->mst_mgr,
>> +					intel_connector->port);
>> +
>> +	seq_printf(m, "\taudio support: %s\n", yesno(has_audio));
>> +}
>> +
>>  static void intel_hdmi_info(struct seq_file *m,
>>  			    struct intel_connector *intel_connector)
>>  {
>> @@ -2919,7 +2933,10 @@ static void intel_connector_info(struct seq_file *m,
>>  	switch (connector->connector_type) {
>>  	case DRM_MODE_CONNECTOR_DisplayPort:
>>  	case DRM_MODE_CONNECTOR_eDP:
>> -		intel_dp_info(m, intel_connector);
>> +		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
>> +			intel_dp_mst_info(m, intel_connector);
>> +		else
>> +			intel_dp_info(m, intel_connector);
>>  		break;
>>  	case DRM_MODE_CONNECTOR_LVDS:
>>  		if (intel_encoder->type == INTEL_OUTPUT_LVDS)

-- 
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] 10+ messages in thread

* Re: [PATCH 1/3] drm/i915/debugfs: add dp mst info
  2016-11-29  9:24 ` [PATCH 1/3] " Jani Nikula
  2016-11-29 16:01   ` Jani Nikula
@ 2016-11-29 17:22   ` Vivi, Rodrigo
  2016-11-30  1:37     ` Yang, Libin
  1 sibling, 1 reply; 10+ messages in thread
From: Vivi, Rodrigo @ 2016-11-29 17:22 UTC (permalink / raw)
  To: jani.nikula@linux.intel.com
  Cc: tiwai@suse.de, intel-gfx@lists.freedesktop.org,
	Pandiyan, Dhinakaran, Vetter, Daniel

On Tue, 2016-11-29 at 11:24 +0200, Jani Nikula wrote:
> On Mon, 28 Nov 2016, libin.yang@intel.com wrote:
> > From: Libin Yang <libin.yang@intel.com>
> >
> > Add the DP MST info dump in debugfs.
> >
> > Signed-off-by: Libin Yang <libin.yang@intel.com>
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > Reviewed-by: Lyude <cpaul@redhat.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> 
> I don't think Rodrigo's sob is proper here, even if he pushed the
> original version of the patch that got later reverted.

Jani is right. I haven't signed this off.
I believe the idea was to CC me probably.

> 
> Anyway,
> 
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> 
> > ---
> >  drivers/gpu/drm/i915/i915_debugfs.c | 19 ++++++++++++++++++-
> >  1 file changed, 18 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index e7f731f..f5f88b2 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2877,6 +2877,20 @@ static void intel_dp_info(struct seq_file *m,
> >  				&intel_dp->aux);
> >  }
> >  
> > +static void intel_dp_mst_info(struct seq_file *m,
> > +			  struct intel_connector *intel_connector)
> > +{
> > +	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > +	struct intel_dp_mst_encoder *intel_mst =
> > +		enc_to_mst(&intel_encoder->base);
> > +	struct intel_digital_port *intel_dig_port = intel_mst->primary;
> > +	struct intel_dp *intel_dp = &intel_dig_port->dp;
> > +	bool has_audio = drm_dp_mst_port_has_audio(&intel_dp->mst_mgr,
> > +					intel_connector->port);
> > +
> > +	seq_printf(m, "\taudio support: %s\n", yesno(has_audio));
> > +}
> > +
> >  static void intel_hdmi_info(struct seq_file *m,
> >  			    struct intel_connector *intel_connector)
> >  {
> > @@ -2919,7 +2933,10 @@ static void intel_connector_info(struct seq_file *m,
> >  	switch (connector->connector_type) {
> >  	case DRM_MODE_CONNECTOR_DisplayPort:
> >  	case DRM_MODE_CONNECTOR_eDP:
> > -		intel_dp_info(m, intel_connector);
> > +		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
> > +			intel_dp_mst_info(m, intel_connector);
> > +		else
> > +			intel_dp_info(m, intel_connector);
> >  		break;
> >  	case DRM_MODE_CONNECTOR_LVDS:
> >  		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
> 

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

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

* Re: [PATCH 1/3] drm/i915/debugfs: add dp mst info
  2016-11-29 17:22   ` Vivi, Rodrigo
@ 2016-11-30  1:37     ` Yang, Libin
  0 siblings, 0 replies; 10+ messages in thread
From: Yang, Libin @ 2016-11-30  1:37 UTC (permalink / raw)
  To: Vivi, Rodrigo, jani.nikula@linux.intel.com
  Cc: tiwai@suse.de, Vetter, Daniel, intel-gfx@lists.freedesktop.org,
	Pandiyan, Dhinakaran


>-----Original Message-----
>From: Vivi, Rodrigo
>Sent: Wednesday, November 30, 2016 1:22 AM
>To: jani.nikula@linux.intel.com
>Cc: ville.syrjala@linux.intel.com; intel-gfx@lists.freedesktop.org; Yang, Libin
><libin.yang@intel.com>; Vetter, Daniel <daniel.vetter@intel.com>;
>tiwai@suse.de; Pandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com>
>Subject: Re: [PATCH 1/3] drm/i915/debugfs: add dp mst info
>
>On Tue, 2016-11-29 at 11:24 +0200, Jani Nikula wrote:
>> On Mon, 28 Nov 2016, libin.yang@intel.com wrote:
>> > From: Libin Yang <libin.yang@intel.com>
>> >
>> > Add the DP MST info dump in debugfs.
>> >
>> > Signed-off-by: Libin Yang <libin.yang@intel.com>
>> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
>> > Reviewed-by: Lyude <cpaul@redhat.com>
>> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>
>> I don't think Rodrigo's sob is proper here, even if he pushed the
>> original version of the patch that got later reverted.
>
>Jani is right. I haven't signed this off.
>I believe the idea was to CC me probably.

Get it. I will take care next time.
I added you because the original patch has your signed-off :)

Regards,
Libin

>
>>
>> Anyway,
>>
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>>
>> > ---
>> >  drivers/gpu/drm/i915/i915_debugfs.c | 19 ++++++++++++++++++-
>> >  1 file changed, 18 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c
>> > b/drivers/gpu/drm/i915/i915_debugfs.c
>> > index e7f731f..f5f88b2 100644
>> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
>> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>> > @@ -2877,6 +2877,20 @@ static void intel_dp_info(struct seq_file *m,
>> >  				&intel_dp->aux);
>> >  }
>> >
>> > +static void intel_dp_mst_info(struct seq_file *m,
>> > +			  struct intel_connector *intel_connector) {
>> > +	struct intel_encoder *intel_encoder = intel_connector->encoder;
>> > +	struct intel_dp_mst_encoder *intel_mst =
>> > +		enc_to_mst(&intel_encoder->base);
>> > +	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>> > +	struct intel_dp *intel_dp = &intel_dig_port->dp;
>> > +	bool has_audio = drm_dp_mst_port_has_audio(&intel_dp->mst_mgr,
>> > +					intel_connector->port);
>> > +
>> > +	seq_printf(m, "\taudio support: %s\n", yesno(has_audio)); }
>> > +
>> >  static void intel_hdmi_info(struct seq_file *m,
>> >  			    struct intel_connector *intel_connector)  { @@ -
>2919,7
>> > +2933,10 @@ static void intel_connector_info(struct seq_file *m,
>> >  	switch (connector->connector_type) {
>> >  	case DRM_MODE_CONNECTOR_DisplayPort:
>> >  	case DRM_MODE_CONNECTOR_eDP:
>> > -		intel_dp_info(m, intel_connector);
>> > +		if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
>> > +			intel_dp_mst_info(m, intel_connector);
>> > +		else
>> > +			intel_dp_info(m, intel_connector);
>> >  		break;
>> >  	case DRM_MODE_CONNECTOR_LVDS:
>> >  		if (intel_encoder->type == INTEL_OUTPUT_LVDS)
>>

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

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

end of thread, other threads:[~2016-11-30  1:37 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-28 12:07 [PATCH 1/3] drm/i915/debugfs: add dp mst info libin.yang
2016-11-28 12:07 ` [PATCH 2/3] drm/i915: abstract ddi being audio enabled libin.yang
2016-11-29  9:25   ` Jani Nikula
2016-11-28 12:07 ` [PATCH 3/3] drm/i915: enable dp mst audio libin.yang
2016-11-29  9:28   ` Jani Nikula
2016-11-28 14:45 ` ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/debugfs: add dp mst info Patchwork
2016-11-29  9:24 ` [PATCH 1/3] " Jani Nikula
2016-11-29 16:01   ` Jani Nikula
2016-11-29 17:22   ` Vivi, Rodrigo
2016-11-30  1:37     ` Yang, Libin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).