Message ID | 20170425202730.1384-6-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 4/25/17 3:27 PM, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > There's no need to distinguish between the DP link rate and HDMI TMDS > clock for the purposes of the LPE audio. Both are actually the same > thing more or less, which is the link symbol clock. So let's just > call the thing ls_clock and simplify the code. there are still occurences of 'tmds' in sound/x86 and there are are couple of debug messages that don't make sense any longer. > > Cc: Takashi Iwai <tiwai@suse.de> > Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/i915_drv.h | 4 ++-- > drivers/gpu/drm/i915/intel_audio.c | 19 ++++--------------- > drivers/gpu/drm/i915/intel_lpe_audio.c | 14 ++++++-------- > include/drm/intel_lpe_audio.h | 3 +-- > sound/x86/intel_hdmi_audio.c | 11 ++++++++--- > 5 files changed, 21 insertions(+), 30 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 357b6c6c2f04..876eee56a958 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -3721,8 +3721,8 @@ int intel_lpe_audio_init(struct drm_i915_private *dev_priv); > void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv); > void intel_lpe_audio_irq_handler(struct drm_i915_private *dev_priv); > void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > - void *eld, int port, int pipe, int tmds_clk_speed, > - bool dp_output, int link_rate); > + void *eld, int port, int pipe, int ls_clock, > + bool dp_output); > > /* intel_i2c.c */ > extern int intel_setup_gmbus(struct drm_i915_private *dev_priv); > diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c > index 52c207e81f41..79eeef25321f 100644 > --- a/drivers/gpu/drm/i915/intel_audio.c > +++ b/drivers/gpu/drm/i915/intel_audio.c > @@ -632,20 +632,9 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder, > (int) port, (int) pipe); > } > > - switch (intel_encoder->type) { > - case INTEL_OUTPUT_HDMI: > - intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, > - crtc_state->port_clock, > - false, 0); > - break; > - case INTEL_OUTPUT_DP: > - intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, > - adjusted_mode->crtc_clock, > - true, crtc_state->port_clock); > - break; > - default: > - break; > - } > + intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, > + crtc_state->port_clock, > + intel_encoder->type == INTEL_OUTPUT_DP); > } > > /** > @@ -680,7 +669,7 @@ void intel_audio_codec_disable(struct intel_encoder *intel_encoder) > (int) port, (int) pipe); > } > > - intel_lpe_audio_notify(dev_priv, NULL, port, pipe, 0, false, 0); > + intel_lpe_audio_notify(dev_priv, NULL, port, pipe, 0, false); > } > > /** > diff --git a/drivers/gpu/drm/i915/intel_lpe_audio.c b/drivers/gpu/drm/i915/intel_lpe_audio.c > index 79b9dca985ff..5a1a37e963f1 100644 > --- a/drivers/gpu/drm/i915/intel_lpe_audio.c > +++ b/drivers/gpu/drm/i915/intel_lpe_audio.c > @@ -309,13 +309,14 @@ void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv) > * @eld : ELD data > * @pipe: pipe id > * @port: port id > - * @tmds_clk_speed: tmds clock frequency in Hz > + * @ls_clock: Link symbol clock in kHz > + * @dp_output: Driving a DP output? > * > * Notify lpe audio driver of eld change. > */ > void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > - void *eld, int port, int pipe, int tmds_clk_speed, > - bool dp_output, int link_rate) > + void *eld, int port, int pipe, int ls_clock, > + bool dp_output) > { > unsigned long irq_flags; > struct intel_hdmi_lpe_audio_pdata *pdata = NULL; > @@ -337,12 +338,8 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > pdata->eld.port_id = port; > pdata->eld.pipe_id = pipe; > pdata->hdmi_connected = true; > - > + pdata->ls_clock = ls_clock; > pdata->dp_output = dp_output; > - if (tmds_clk_speed) > - pdata->tmds_clock_speed = tmds_clk_speed; > - if (link_rate) > - pdata->link_rate = link_rate; > > /* Unmute the amp for both DP and HDMI */ > I915_WRITE(VLV_AUD_PORT_EN_DBG(port), > @@ -352,6 +349,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > memset(pdata->eld.eld_data, 0, > HDMI_MAX_ELD_BYTES); > pdata->hdmi_connected = false; > + pdata->ls_clock = 0; > pdata->dp_output = false; > > /* Mute the amp for both DP and HDMI */ > diff --git a/include/drm/intel_lpe_audio.h b/include/drm/intel_lpe_audio.h > index c201d39cdfea..8bf804ce8905 100644 > --- a/include/drm/intel_lpe_audio.h > +++ b/include/drm/intel_lpe_audio.h > @@ -38,10 +38,9 @@ struct intel_hdmi_lpe_audio_eld { > }; > > struct intel_hdmi_lpe_audio_pdata { > - int tmds_clock_speed; > + int ls_clock; > bool hdmi_connected; > bool dp_output; > - int link_rate; > struct intel_hdmi_lpe_audio_eld eld; > void (*notify_audio_lpe)(struct platform_device *pdev); > spinlock_t lpe_audio_slock; > diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c > index cbba4a78afb5..4eaf5de54f61 100644 > --- a/sound/x86/intel_hdmi_audio.c > +++ b/sound/x86/intel_hdmi_audio.c > @@ -1568,7 +1568,7 @@ static void had_audio_wq(struct work_struct *work) > struct intel_hdmi_lpe_audio_eld *eld = &pdata->eld; > > dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n", > - __func__, eld->port_id, pdata->tmds_clock_speed); > + __func__, eld->port_id, pdata->ls_clock); > > switch (eld->pipe_id) { > case 0: > @@ -1589,8 +1589,13 @@ static void had_audio_wq(struct work_struct *work) > memcpy(ctx->eld, eld->eld_data, sizeof(ctx->eld)); > > ctx->dp_output = pdata->dp_output; > - ctx->tmds_clock_speed = pdata->tmds_clock_speed; > - ctx->link_rate = pdata->link_rate; > + if (ctx->dp_output) { > + ctx->tmds_clock_speed = 0; > + ctx->link_rate = pdata->ls_clock; > + } else { > + ctx->tmds_clock_speed = pdata->ls_clock; > + ctx->link_rate = 0; > + } > > had_process_hot_plug(ctx); > >
On Tue, Apr 25, 2017 at 08:09:34PM -0500, Pierre-Louis Bossart wrote: > On 4/25/17 3:27 PM, ville.syrjala@linux.intel.com wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > There's no need to distinguish between the DP link rate and HDMI TMDS > > clock for the purposes of the LPE audio. Both are actually the same > > thing more or less, which is the link symbol clock. So let's just > > call the thing ls_clock and simplify the code. > > there are still occurences of 'tmds' in sound/x86 and there are are > couple of debug messages that don't make sense any longer. I was being a bit lazy and didn't remove the tmds vs. link_rate distinction from the audio driver side. Not quite sure if we want to do it not. > > > > > Cc: Takashi Iwai <tiwai@suse.de> > > Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/i915/i915_drv.h | 4 ++-- > > drivers/gpu/drm/i915/intel_audio.c | 19 ++++--------------- > > drivers/gpu/drm/i915/intel_lpe_audio.c | 14 ++++++-------- > > include/drm/intel_lpe_audio.h | 3 +-- > > sound/x86/intel_hdmi_audio.c | 11 ++++++++--- > > 5 files changed, 21 insertions(+), 30 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > > index 357b6c6c2f04..876eee56a958 100644 > > --- a/drivers/gpu/drm/i915/i915_drv.h > > +++ b/drivers/gpu/drm/i915/i915_drv.h > > @@ -3721,8 +3721,8 @@ int intel_lpe_audio_init(struct drm_i915_private *dev_priv); > > void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv); > > void intel_lpe_audio_irq_handler(struct drm_i915_private *dev_priv); > > void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > > - void *eld, int port, int pipe, int tmds_clk_speed, > > - bool dp_output, int link_rate); > > + void *eld, int port, int pipe, int ls_clock, > > + bool dp_output); > > > > /* intel_i2c.c */ > > extern int intel_setup_gmbus(struct drm_i915_private *dev_priv); > > diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c > > index 52c207e81f41..79eeef25321f 100644 > > --- a/drivers/gpu/drm/i915/intel_audio.c > > +++ b/drivers/gpu/drm/i915/intel_audio.c > > @@ -632,20 +632,9 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder, > > (int) port, (int) pipe); > > } > > > > - switch (intel_encoder->type) { > > - case INTEL_OUTPUT_HDMI: > > - intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, > > - crtc_state->port_clock, > > - false, 0); > > - break; > > - case INTEL_OUTPUT_DP: > > - intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, > > - adjusted_mode->crtc_clock, > > - true, crtc_state->port_clock); > > - break; > > - default: > > - break; > > - } > > + intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, > > + crtc_state->port_clock, > > + intel_encoder->type == INTEL_OUTPUT_DP); > > } > > > > /** > > @@ -680,7 +669,7 @@ void intel_audio_codec_disable(struct intel_encoder *intel_encoder) > > (int) port, (int) pipe); > > } > > > > - intel_lpe_audio_notify(dev_priv, NULL, port, pipe, 0, false, 0); > > + intel_lpe_audio_notify(dev_priv, NULL, port, pipe, 0, false); > > } > > > > /** > > diff --git a/drivers/gpu/drm/i915/intel_lpe_audio.c b/drivers/gpu/drm/i915/intel_lpe_audio.c > > index 79b9dca985ff..5a1a37e963f1 100644 > > --- a/drivers/gpu/drm/i915/intel_lpe_audio.c > > +++ b/drivers/gpu/drm/i915/intel_lpe_audio.c > > @@ -309,13 +309,14 @@ void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv) > > * @eld : ELD data > > * @pipe: pipe id > > * @port: port id > > - * @tmds_clk_speed: tmds clock frequency in Hz > > + * @ls_clock: Link symbol clock in kHz > > + * @dp_output: Driving a DP output? > > * > > * Notify lpe audio driver of eld change. > > */ > > void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > > - void *eld, int port, int pipe, int tmds_clk_speed, > > - bool dp_output, int link_rate) > > + void *eld, int port, int pipe, int ls_clock, > > + bool dp_output) > > { > > unsigned long irq_flags; > > struct intel_hdmi_lpe_audio_pdata *pdata = NULL; > > @@ -337,12 +338,8 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > > pdata->eld.port_id = port; > > pdata->eld.pipe_id = pipe; > > pdata->hdmi_connected = true; > > - > > + pdata->ls_clock = ls_clock; > > pdata->dp_output = dp_output; > > - if (tmds_clk_speed) > > - pdata->tmds_clock_speed = tmds_clk_speed; > > - if (link_rate) > > - pdata->link_rate = link_rate; > > > > /* Unmute the amp for both DP and HDMI */ > > I915_WRITE(VLV_AUD_PORT_EN_DBG(port), > > @@ -352,6 +349,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, > > memset(pdata->eld.eld_data, 0, > > HDMI_MAX_ELD_BYTES); > > pdata->hdmi_connected = false; > > + pdata->ls_clock = 0; > > pdata->dp_output = false; > > > > /* Mute the amp for both DP and HDMI */ > > diff --git a/include/drm/intel_lpe_audio.h b/include/drm/intel_lpe_audio.h > > index c201d39cdfea..8bf804ce8905 100644 > > --- a/include/drm/intel_lpe_audio.h > > +++ b/include/drm/intel_lpe_audio.h > > @@ -38,10 +38,9 @@ struct intel_hdmi_lpe_audio_eld { > > }; > > > > struct intel_hdmi_lpe_audio_pdata { > > - int tmds_clock_speed; > > + int ls_clock; > > bool hdmi_connected; > > bool dp_output; > > - int link_rate; > > struct intel_hdmi_lpe_audio_eld eld; > > void (*notify_audio_lpe)(struct platform_device *pdev); > > spinlock_t lpe_audio_slock; > > diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c > > index cbba4a78afb5..4eaf5de54f61 100644 > > --- a/sound/x86/intel_hdmi_audio.c > > +++ b/sound/x86/intel_hdmi_audio.c > > @@ -1568,7 +1568,7 @@ static void had_audio_wq(struct work_struct *work) > > struct intel_hdmi_lpe_audio_eld *eld = &pdata->eld; > > > > dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n", > > - __func__, eld->port_id, pdata->tmds_clock_speed); > > + __func__, eld->port_id, pdata->ls_clock); > > > > switch (eld->pipe_id) { > > case 0: > > @@ -1589,8 +1589,13 @@ static void had_audio_wq(struct work_struct *work) > > memcpy(ctx->eld, eld->eld_data, sizeof(ctx->eld)); > > > > ctx->dp_output = pdata->dp_output; > > - ctx->tmds_clock_speed = pdata->tmds_clock_speed; > > - ctx->link_rate = pdata->link_rate; > > + if (ctx->dp_output) { > > + ctx->tmds_clock_speed = 0; > > + ctx->link_rate = pdata->ls_clock; > > + } else { > > + ctx->tmds_clock_speed = pdata->ls_clock; > > + ctx->link_rate = 0; > > + } > > > > had_process_hot_plug(ctx); > > > >
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 357b6c6c2f04..876eee56a958 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -3721,8 +3721,8 @@ int intel_lpe_audio_init(struct drm_i915_private *dev_priv); void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv); void intel_lpe_audio_irq_handler(struct drm_i915_private *dev_priv); void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, - void *eld, int port, int pipe, int tmds_clk_speed, - bool dp_output, int link_rate); + void *eld, int port, int pipe, int ls_clock, + bool dp_output); /* intel_i2c.c */ extern int intel_setup_gmbus(struct drm_i915_private *dev_priv); diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 52c207e81f41..79eeef25321f 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -632,20 +632,9 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder, (int) port, (int) pipe); } - switch (intel_encoder->type) { - case INTEL_OUTPUT_HDMI: - intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, - crtc_state->port_clock, - false, 0); - break; - case INTEL_OUTPUT_DP: - intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, - adjusted_mode->crtc_clock, - true, crtc_state->port_clock); - break; - default: - break; - } + intel_lpe_audio_notify(dev_priv, connector->eld, port, pipe, + crtc_state->port_clock, + intel_encoder->type == INTEL_OUTPUT_DP); } /** @@ -680,7 +669,7 @@ void intel_audio_codec_disable(struct intel_encoder *intel_encoder) (int) port, (int) pipe); } - intel_lpe_audio_notify(dev_priv, NULL, port, pipe, 0, false, 0); + intel_lpe_audio_notify(dev_priv, NULL, port, pipe, 0, false); } /** diff --git a/drivers/gpu/drm/i915/intel_lpe_audio.c b/drivers/gpu/drm/i915/intel_lpe_audio.c index 79b9dca985ff..5a1a37e963f1 100644 --- a/drivers/gpu/drm/i915/intel_lpe_audio.c +++ b/drivers/gpu/drm/i915/intel_lpe_audio.c @@ -309,13 +309,14 @@ void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv) * @eld : ELD data * @pipe: pipe id * @port: port id - * @tmds_clk_speed: tmds clock frequency in Hz + * @ls_clock: Link symbol clock in kHz + * @dp_output: Driving a DP output? * * Notify lpe audio driver of eld change. */ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, - void *eld, int port, int pipe, int tmds_clk_speed, - bool dp_output, int link_rate) + void *eld, int port, int pipe, int ls_clock, + bool dp_output) { unsigned long irq_flags; struct intel_hdmi_lpe_audio_pdata *pdata = NULL; @@ -337,12 +338,8 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, pdata->eld.port_id = port; pdata->eld.pipe_id = pipe; pdata->hdmi_connected = true; - + pdata->ls_clock = ls_clock; pdata->dp_output = dp_output; - if (tmds_clk_speed) - pdata->tmds_clock_speed = tmds_clk_speed; - if (link_rate) - pdata->link_rate = link_rate; /* Unmute the amp for both DP and HDMI */ I915_WRITE(VLV_AUD_PORT_EN_DBG(port), @@ -352,6 +349,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, memset(pdata->eld.eld_data, 0, HDMI_MAX_ELD_BYTES); pdata->hdmi_connected = false; + pdata->ls_clock = 0; pdata->dp_output = false; /* Mute the amp for both DP and HDMI */ diff --git a/include/drm/intel_lpe_audio.h b/include/drm/intel_lpe_audio.h index c201d39cdfea..8bf804ce8905 100644 --- a/include/drm/intel_lpe_audio.h +++ b/include/drm/intel_lpe_audio.h @@ -38,10 +38,9 @@ struct intel_hdmi_lpe_audio_eld { }; struct intel_hdmi_lpe_audio_pdata { - int tmds_clock_speed; + int ls_clock; bool hdmi_connected; bool dp_output; - int link_rate; struct intel_hdmi_lpe_audio_eld eld; void (*notify_audio_lpe)(struct platform_device *pdev); spinlock_t lpe_audio_slock; diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c index cbba4a78afb5..4eaf5de54f61 100644 --- a/sound/x86/intel_hdmi_audio.c +++ b/sound/x86/intel_hdmi_audio.c @@ -1568,7 +1568,7 @@ static void had_audio_wq(struct work_struct *work) struct intel_hdmi_lpe_audio_eld *eld = &pdata->eld; dev_dbg(ctx->dev, "%s: HAD_NOTIFY_ELD : port = %d, tmds = %d\n", - __func__, eld->port_id, pdata->tmds_clock_speed); + __func__, eld->port_id, pdata->ls_clock); switch (eld->pipe_id) { case 0: @@ -1589,8 +1589,13 @@ static void had_audio_wq(struct work_struct *work) memcpy(ctx->eld, eld->eld_data, sizeof(ctx->eld)); ctx->dp_output = pdata->dp_output; - ctx->tmds_clock_speed = pdata->tmds_clock_speed; - ctx->link_rate = pdata->link_rate; + if (ctx->dp_output) { + ctx->tmds_clock_speed = 0; + ctx->link_rate = pdata->ls_clock; + } else { + ctx->tmds_clock_speed = pdata->ls_clock; + ctx->link_rate = 0; + } had_process_hot_plug(ctx);