diff options
author | Dave Airlie <airlied@redhat.com> | 2016-07-14 23:50:58 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-07-14 23:50:58 -0400 |
commit | ff37c05a996bb96eccc21f4fb1b32ba0e24f3443 (patch) | |
tree | c09b09b37521f2f8f3f7a9bb3b0a33a2b3bde1a1 /drivers/gpu/drm/i915/intel_audio.c | |
parent | 6c181c82106e12dced317e93a7a396cbb8c64f75 (diff) | |
parent | 0b2c0582f1570bfc95aa9ac1cd340a215d8e8335 (diff) |
Merge tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel into drm-next
- select igt testing depencies for CONFIG_DRM_I915_DEBUG (Chris)
- track outputs in crtc state and clean up all our ad-hoc connector/encoder
walking in modest code (Ville)
- demidlayer drm_device/drm_i915_private (Chris Wilson)
- thundering herd fix from Chris Wilson, with lots of help from Tvrtko Ursulin
- piles of assorted clean and fallout from the thundering herd fix
- documentation and more tuning for waitboosting (Chris)
- pooled EU support on bxt (Arun Siluvery)
- bxt support is no longer considered prelimary!
- ring/engine vfunc cleanup from Tvrtko
- introduce intel_wait_for_register helper (Chris)
- opregion updates (Jani Nukla)
- tuning and fixes for wait_for macros (Tvrkto&Imre)
- more kabylake pci ids (Rodrigo)
- pps cleanup and fixes for bxt (Imre)
- move sink crc support over to atomic state (Maarten)
- fix up async fbdev init ordering (Chris)
- fbc fixes from Paulo and Chris
* tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel: (223 commits)
drm/i915: Update DRIVER_DATE to 20160711
drm/i915: Select DRM_VGEM for igt
drm/i915: Select X86_MSR for igt
drm/i915: Fill unused GGTT with scratch pages for VT-d
drm/i915: Introduce Kabypoint PCH for Kabylake H/DT.
drm/i915:gen9: implement WaMediaPoolStateCmdInWABB
drm/i915: Check for invalid cloning earlier during modeset
drm/i915: Simplify hdmi_12bpc_possible()
drm/i915: Kill has_dsi_encoder
drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/
drm/i915: Replace some open coded intel_crtc_has_dp_encoder()s
drm/i915: Kill has_dp_encoder from pipe_config
drm/i915: Replace manual lvds and sdvo/hdmi counting with intel_crtc_has_type()
drm/i915: Unify intel_pipe_has_type() and intel_pipe_will_have_type()
drm/i915: Add output_types bitmask into the crtc state
drm/i915: Remove encoder type checks from MST suspend/resume
drm/i915: Don't mark eDP encoders as MST capable
drm/i915: avoid wait_for_atomic() in non-atomic host2guc_action()
drm/i915: Group the irq breadcrumb variables into the same cacheline
drm/i915: Wake up the bottom-half if we steal their interrupt
...
Diffstat (limited to 'drivers/gpu/drm/i915/intel_audio.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_audio.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index b9329c2a670a..6700a7be7f78 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c | |||
@@ -154,7 +154,7 @@ static bool audio_rate_need_prog(struct intel_crtc *crtc, | |||
154 | { | 154 | { |
155 | if (((mode->clock == TMDS_297M) || | 155 | if (((mode->clock == TMDS_297M) || |
156 | (mode->clock == TMDS_296M)) && | 156 | (mode->clock == TMDS_296M)) && |
157 | intel_pipe_has_type(crtc, INTEL_OUTPUT_HDMI)) | 157 | intel_crtc_has_type(crtc->config, INTEL_OUTPUT_HDMI)) |
158 | return true; | 158 | return true; |
159 | else | 159 | else |
160 | return false; | 160 | return false; |
@@ -165,7 +165,7 @@ static bool intel_eld_uptodate(struct drm_connector *connector, | |||
165 | i915_reg_t reg_elda, uint32_t bits_elda, | 165 | i915_reg_t reg_elda, uint32_t bits_elda, |
166 | i915_reg_t reg_edid) | 166 | i915_reg_t reg_edid) |
167 | { | 167 | { |
168 | struct drm_i915_private *dev_priv = connector->dev->dev_private; | 168 | struct drm_i915_private *dev_priv = to_i915(connector->dev); |
169 | uint8_t *eld = connector->eld; | 169 | uint8_t *eld = connector->eld; |
170 | uint32_t tmp; | 170 | uint32_t tmp; |
171 | int i; | 171 | int i; |
@@ -189,7 +189,7 @@ static bool intel_eld_uptodate(struct drm_connector *connector, | |||
189 | 189 | ||
190 | static void g4x_audio_codec_disable(struct intel_encoder *encoder) | 190 | static void g4x_audio_codec_disable(struct intel_encoder *encoder) |
191 | { | 191 | { |
192 | struct drm_i915_private *dev_priv = encoder->base.dev->dev_private; | 192 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
193 | uint32_t eldv, tmp; | 193 | uint32_t eldv, tmp; |
194 | 194 | ||
195 | DRM_DEBUG_KMS("Disable audio codec\n"); | 195 | DRM_DEBUG_KMS("Disable audio codec\n"); |
@@ -210,7 +210,7 @@ static void g4x_audio_codec_enable(struct drm_connector *connector, | |||
210 | struct intel_encoder *encoder, | 210 | struct intel_encoder *encoder, |
211 | const struct drm_display_mode *adjusted_mode) | 211 | const struct drm_display_mode *adjusted_mode) |
212 | { | 212 | { |
213 | struct drm_i915_private *dev_priv = connector->dev->dev_private; | 213 | struct drm_i915_private *dev_priv = to_i915(connector->dev); |
214 | uint8_t *eld = connector->eld; | 214 | uint8_t *eld = connector->eld; |
215 | uint32_t eldv; | 215 | uint32_t eldv; |
216 | uint32_t tmp; | 216 | uint32_t tmp; |
@@ -247,7 +247,7 @@ static void g4x_audio_codec_enable(struct drm_connector *connector, | |||
247 | 247 | ||
248 | static void hsw_audio_codec_disable(struct intel_encoder *encoder) | 248 | static void hsw_audio_codec_disable(struct intel_encoder *encoder) |
249 | { | 249 | { |
250 | struct drm_i915_private *dev_priv = encoder->base.dev->dev_private; | 250 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
251 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); | 251 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); |
252 | enum pipe pipe = intel_crtc->pipe; | 252 | enum pipe pipe = intel_crtc->pipe; |
253 | uint32_t tmp; | 253 | uint32_t tmp; |
@@ -262,7 +262,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder) | |||
262 | tmp |= AUD_CONFIG_N_PROG_ENABLE; | 262 | tmp |= AUD_CONFIG_N_PROG_ENABLE; |
263 | tmp &= ~AUD_CONFIG_UPPER_N_MASK; | 263 | tmp &= ~AUD_CONFIG_UPPER_N_MASK; |
264 | tmp &= ~AUD_CONFIG_LOWER_N_MASK; | 264 | tmp &= ~AUD_CONFIG_LOWER_N_MASK; |
265 | if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) | 265 | if (intel_crtc_has_dp_encoder(intel_crtc->config)) |
266 | tmp |= AUD_CONFIG_N_VALUE_INDEX; | 266 | tmp |= AUD_CONFIG_N_VALUE_INDEX; |
267 | I915_WRITE(HSW_AUD_CFG(pipe), tmp); | 267 | I915_WRITE(HSW_AUD_CFG(pipe), tmp); |
268 | 268 | ||
@@ -279,7 +279,7 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, | |||
279 | struct intel_encoder *encoder, | 279 | struct intel_encoder *encoder, |
280 | const struct drm_display_mode *adjusted_mode) | 280 | const struct drm_display_mode *adjusted_mode) |
281 | { | 281 | { |
282 | struct drm_i915_private *dev_priv = connector->dev->dev_private; | 282 | struct drm_i915_private *dev_priv = to_i915(connector->dev); |
283 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); | 283 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); |
284 | enum pipe pipe = intel_crtc->pipe; | 284 | enum pipe pipe = intel_crtc->pipe; |
285 | struct i915_audio_component *acomp = dev_priv->audio_component; | 285 | struct i915_audio_component *acomp = dev_priv->audio_component; |
@@ -328,7 +328,7 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, | |||
328 | tmp = I915_READ(HSW_AUD_CFG(pipe)); | 328 | tmp = I915_READ(HSW_AUD_CFG(pipe)); |
329 | tmp &= ~AUD_CONFIG_N_VALUE_INDEX; | 329 | tmp &= ~AUD_CONFIG_N_VALUE_INDEX; |
330 | tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; | 330 | tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; |
331 | if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) | 331 | if (intel_crtc_has_dp_encoder(intel_crtc->config)) |
332 | tmp |= AUD_CONFIG_N_VALUE_INDEX; | 332 | tmp |= AUD_CONFIG_N_VALUE_INDEX; |
333 | else | 333 | else |
334 | tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); | 334 | tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); |
@@ -357,7 +357,7 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, | |||
357 | 357 | ||
358 | static void ilk_audio_codec_disable(struct intel_encoder *encoder) | 358 | static void ilk_audio_codec_disable(struct intel_encoder *encoder) |
359 | { | 359 | { |
360 | struct drm_i915_private *dev_priv = encoder->base.dev->dev_private; | 360 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
361 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); | 361 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); |
362 | struct intel_digital_port *intel_dig_port = | 362 | struct intel_digital_port *intel_dig_port = |
363 | enc_to_dig_port(&encoder->base); | 363 | enc_to_dig_port(&encoder->base); |
@@ -389,7 +389,7 @@ static void ilk_audio_codec_disable(struct intel_encoder *encoder) | |||
389 | tmp |= AUD_CONFIG_N_PROG_ENABLE; | 389 | tmp |= AUD_CONFIG_N_PROG_ENABLE; |
390 | tmp &= ~AUD_CONFIG_UPPER_N_MASK; | 390 | tmp &= ~AUD_CONFIG_UPPER_N_MASK; |
391 | tmp &= ~AUD_CONFIG_LOWER_N_MASK; | 391 | tmp &= ~AUD_CONFIG_LOWER_N_MASK; |
392 | if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) | 392 | if (intel_crtc_has_dp_encoder(intel_crtc->config)) |
393 | tmp |= AUD_CONFIG_N_VALUE_INDEX; | 393 | tmp |= AUD_CONFIG_N_VALUE_INDEX; |
394 | I915_WRITE(aud_config, tmp); | 394 | I915_WRITE(aud_config, tmp); |
395 | 395 | ||
@@ -405,7 +405,7 @@ static void ilk_audio_codec_enable(struct drm_connector *connector, | |||
405 | struct intel_encoder *encoder, | 405 | struct intel_encoder *encoder, |
406 | const struct drm_display_mode *adjusted_mode) | 406 | const struct drm_display_mode *adjusted_mode) |
407 | { | 407 | { |
408 | struct drm_i915_private *dev_priv = connector->dev->dev_private; | 408 | struct drm_i915_private *dev_priv = to_i915(connector->dev); |
409 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); | 409 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); |
410 | struct intel_digital_port *intel_dig_port = | 410 | struct intel_digital_port *intel_dig_port = |
411 | enc_to_dig_port(&encoder->base); | 411 | enc_to_dig_port(&encoder->base); |
@@ -475,7 +475,7 @@ static void ilk_audio_codec_enable(struct drm_connector *connector, | |||
475 | tmp &= ~AUD_CONFIG_N_VALUE_INDEX; | 475 | tmp &= ~AUD_CONFIG_N_VALUE_INDEX; |
476 | tmp &= ~AUD_CONFIG_N_PROG_ENABLE; | 476 | tmp &= ~AUD_CONFIG_N_PROG_ENABLE; |
477 | tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; | 477 | tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; |
478 | if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) | 478 | if (intel_crtc_has_dp_encoder(intel_crtc->config)) |
479 | tmp |= AUD_CONFIG_N_VALUE_INDEX; | 479 | tmp |= AUD_CONFIG_N_VALUE_INDEX; |
480 | else | 480 | else |
481 | tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); | 481 | tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); |
@@ -496,7 +496,7 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder) | |||
496 | const struct drm_display_mode *adjusted_mode = &crtc->config->base.adjusted_mode; | 496 | const struct drm_display_mode *adjusted_mode = &crtc->config->base.adjusted_mode; |
497 | struct drm_connector *connector; | 497 | struct drm_connector *connector; |
498 | struct drm_device *dev = encoder->dev; | 498 | struct drm_device *dev = encoder->dev; |
499 | struct drm_i915_private *dev_priv = dev->dev_private; | 499 | struct drm_i915_private *dev_priv = to_i915(dev); |
500 | struct i915_audio_component *acomp = dev_priv->audio_component; | 500 | struct i915_audio_component *acomp = dev_priv->audio_component; |
501 | struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder); | 501 | struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder); |
502 | enum port port = intel_dig_port->port; | 502 | enum port port = intel_dig_port->port; |
@@ -513,7 +513,7 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder) | |||
513 | 513 | ||
514 | /* ELD Conn_Type */ | 514 | /* ELD Conn_Type */ |
515 | connector->eld[5] &= ~(3 << 2); | 515 | connector->eld[5] &= ~(3 << 2); |
516 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT)) | 516 | if (intel_crtc_has_dp_encoder(crtc->config)) |
517 | connector->eld[5] |= (1 << 2); | 517 | connector->eld[5] |= (1 << 2); |
518 | 518 | ||
519 | connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2; | 519 | connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2; |
@@ -543,7 +543,7 @@ void intel_audio_codec_disable(struct intel_encoder *intel_encoder) | |||
543 | { | 543 | { |
544 | struct drm_encoder *encoder = &intel_encoder->base; | 544 | struct drm_encoder *encoder = &intel_encoder->base; |
545 | struct drm_device *dev = encoder->dev; | 545 | struct drm_device *dev = encoder->dev; |
546 | struct drm_i915_private *dev_priv = dev->dev_private; | 546 | struct drm_i915_private *dev_priv = to_i915(dev); |
547 | struct i915_audio_component *acomp = dev_priv->audio_component; | 547 | struct i915_audio_component *acomp = dev_priv->audio_component; |
548 | struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder); | 548 | struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder); |
549 | enum port port = intel_dig_port->port; | 549 | enum port port = intel_dig_port->port; |
@@ -749,14 +749,14 @@ static int i915_audio_component_bind(struct device *i915_dev, | |||
749 | if (WARN_ON(acomp->ops || acomp->dev)) | 749 | if (WARN_ON(acomp->ops || acomp->dev)) |
750 | return -EEXIST; | 750 | return -EEXIST; |
751 | 751 | ||
752 | drm_modeset_lock_all(dev_priv->dev); | 752 | drm_modeset_lock_all(&dev_priv->drm); |
753 | acomp->ops = &i915_audio_component_ops; | 753 | acomp->ops = &i915_audio_component_ops; |
754 | acomp->dev = i915_dev; | 754 | acomp->dev = i915_dev; |
755 | BUILD_BUG_ON(MAX_PORTS != I915_MAX_PORTS); | 755 | BUILD_BUG_ON(MAX_PORTS != I915_MAX_PORTS); |
756 | for (i = 0; i < ARRAY_SIZE(acomp->aud_sample_rate); i++) | 756 | for (i = 0; i < ARRAY_SIZE(acomp->aud_sample_rate); i++) |
757 | acomp->aud_sample_rate[i] = 0; | 757 | acomp->aud_sample_rate[i] = 0; |
758 | dev_priv->audio_component = acomp; | 758 | dev_priv->audio_component = acomp; |
759 | drm_modeset_unlock_all(dev_priv->dev); | 759 | drm_modeset_unlock_all(&dev_priv->drm); |
760 | 760 | ||
761 | return 0; | 761 | return 0; |
762 | } | 762 | } |
@@ -767,11 +767,11 @@ static void i915_audio_component_unbind(struct device *i915_dev, | |||
767 | struct i915_audio_component *acomp = data; | 767 | struct i915_audio_component *acomp = data; |
768 | struct drm_i915_private *dev_priv = dev_to_i915(i915_dev); | 768 | struct drm_i915_private *dev_priv = dev_to_i915(i915_dev); |
769 | 769 | ||
770 | drm_modeset_lock_all(dev_priv->dev); | 770 | drm_modeset_lock_all(&dev_priv->drm); |
771 | acomp->ops = NULL; | 771 | acomp->ops = NULL; |
772 | acomp->dev = NULL; | 772 | acomp->dev = NULL; |
773 | dev_priv->audio_component = NULL; | 773 | dev_priv->audio_component = NULL; |
774 | drm_modeset_unlock_all(dev_priv->dev); | 774 | drm_modeset_unlock_all(&dev_priv->drm); |
775 | } | 775 | } |
776 | 776 | ||
777 | static const struct component_ops i915_audio_component_bind_ops = { | 777 | static const struct component_ops i915_audio_component_bind_ops = { |
@@ -799,7 +799,7 @@ void i915_audio_component_init(struct drm_i915_private *dev_priv) | |||
799 | { | 799 | { |
800 | int ret; | 800 | int ret; |
801 | 801 | ||
802 | ret = component_add(dev_priv->dev->dev, &i915_audio_component_bind_ops); | 802 | ret = component_add(dev_priv->drm.dev, &i915_audio_component_bind_ops); |
803 | if (ret < 0) { | 803 | if (ret < 0) { |
804 | DRM_ERROR("failed to add audio component (%d)\n", ret); | 804 | DRM_ERROR("failed to add audio component (%d)\n", ret); |
805 | /* continue with reduced functionality */ | 805 | /* continue with reduced functionality */ |
@@ -821,6 +821,6 @@ void i915_audio_component_cleanup(struct drm_i915_private *dev_priv) | |||
821 | if (!dev_priv->audio_component_registered) | 821 | if (!dev_priv->audio_component_registered) |
822 | return; | 822 | return; |
823 | 823 | ||
824 | component_del(dev_priv->dev->dev, &i915_audio_component_bind_ops); | 824 | component_del(dev_priv->drm.dev, &i915_audio_component_bind_ops); |
825 | dev_priv->audio_component_registered = false; | 825 | dev_priv->audio_component_registered = false; |
826 | } | 826 | } |