diff options
| author | Alex Deucher <alexander.deucher@amd.com> | 2015-02-27 10:51:40 -0500 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2015-03-03 17:28:23 -0500 |
| commit | b20932dd62f77a96124ec8f0c7ad0908b5584526 (patch) | |
| tree | 82741b7c11081d392d7d31faa9d80f99401fbc62 /drivers/gpu | |
| parent | 3ed7ceeabf4d6a6df02121cc7e4b46d39501b6e9 (diff) | |
drm/radeon/audio: update EDID derived fields in modeset
We don't necessarily have an EDID at this point when
audio detect gets called. Ideally we'd update these
fields in detect, but that requires a larger rework
of the display detect code.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_audio.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_audio.c b/drivers/gpu/drm/radeon/radeon_audio.c index c16191975916..31de59271007 100644 --- a/drivers/gpu/drm/radeon/radeon_audio.c +++ b/drivers/gpu/drm/radeon/radeon_audio.c | |||
| @@ -484,11 +484,6 @@ void radeon_audio_detect(struct drm_connector *connector, | |||
| 484 | radeon_encoder->audio = rdev->audio.hdmi_funcs; | 484 | radeon_encoder->audio = rdev->audio.hdmi_funcs; |
| 485 | 485 | ||
| 486 | dig->afmt->pin = radeon_audio_get_pin(connector->encoder); | 486 | dig->afmt->pin = radeon_audio_get_pin(connector->encoder); |
| 487 | radeon_audio_write_speaker_allocation(connector->encoder); | ||
| 488 | radeon_audio_write_sad_regs(connector->encoder); | ||
| 489 | if (connector->encoder->crtc) | ||
| 490 | radeon_audio_write_latency_fields(connector->encoder, | ||
| 491 | &connector->encoder->crtc->mode); | ||
| 492 | radeon_audio_enable(rdev, dig->afmt->pin, 0xf); | 487 | radeon_audio_enable(rdev, dig->afmt->pin, 0xf); |
| 493 | } else { | 488 | } else { |
| 494 | radeon_audio_enable(rdev, dig->afmt->pin, 0); | 489 | radeon_audio_enable(rdev, dig->afmt->pin, 0); |
| @@ -706,6 +701,9 @@ static void radeon_audio_hdmi_mode_set(struct drm_encoder *encoder, | |||
| 706 | 701 | ||
| 707 | radeon_audio_set_mute(encoder, true); | 702 | radeon_audio_set_mute(encoder, true); |
| 708 | 703 | ||
| 704 | radeon_audio_write_speaker_allocation(encoder); | ||
| 705 | radeon_audio_write_sad_regs(encoder); | ||
| 706 | radeon_audio_write_latency_fields(encoder, mode); | ||
| 709 | radeon_audio_set_dto(encoder, mode->clock); | 707 | radeon_audio_set_dto(encoder, mode->clock); |
| 710 | radeon_audio_set_vbi_packet(encoder); | 708 | radeon_audio_set_vbi_packet(encoder); |
| 711 | radeon_hdmi_set_color_depth(encoder); | 709 | radeon_hdmi_set_color_depth(encoder); |
| @@ -730,6 +728,9 @@ static void radeon_audio_dp_mode_set(struct drm_encoder *encoder, | |||
| 730 | if (!dig || !dig->afmt) | 728 | if (!dig || !dig->afmt) |
| 731 | return; | 729 | return; |
| 732 | 730 | ||
| 731 | radeon_audio_write_speaker_allocation(encoder); | ||
| 732 | radeon_audio_write_sad_regs(encoder); | ||
| 733 | radeon_audio_write_latency_fields(encoder, mode); | ||
| 733 | radeon_audio_set_dto(encoder, rdev->clock.default_dispclk * 10); | 734 | radeon_audio_set_dto(encoder, rdev->clock.default_dispclk * 10); |
| 734 | radeon_audio_set_audio_packet(encoder); | 735 | radeon_audio_set_audio_packet(encoder); |
| 735 | radeon_audio_select_pin(encoder); | 736 | radeon_audio_select_pin(encoder); |
