diff options
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 | } |