* [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).