diff options
| author | Alex Deucher <alexander.deucher@amd.com> | 2015-02-27 10:42:21 -0500 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2015-03-03 17:28:22 -0500 |
| commit | 3ed7ceeabf4d6a6df02121cc7e4b46d39501b6e9 (patch) | |
| tree | f7cb9b0e8e21efb1b0114a0fae2e9081afbc1bc8 /drivers/gpu | |
| parent | 88af339f9fe285cb93c264adc75545a3d3b50470 (diff) | |
drm/radeon: don't toggle audio state in modeset
Should be done only at detect time to avoid spurious
state changes on the audio side.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_audio.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_audio.c b/drivers/gpu/drm/radeon/radeon_audio.c index 5b579582175b..c16191975916 100644 --- a/drivers/gpu/drm/radeon/radeon_audio.c +++ b/drivers/gpu/drm/radeon/radeon_audio.c | |||
| @@ -696,9 +696,8 @@ static void radeon_audio_set_mute(struct drm_encoder *encoder, bool mute) | |||
| 696 | * update the info frames with the data from the current display mode | 696 | * update the info frames with the data from the current display mode |
| 697 | */ | 697 | */ |
| 698 | static void radeon_audio_hdmi_mode_set(struct drm_encoder *encoder, | 698 | static void radeon_audio_hdmi_mode_set(struct drm_encoder *encoder, |
| 699 | struct drm_display_mode *mode) | 699 | struct drm_display_mode *mode) |
| 700 | { | 700 | { |
| 701 | struct radeon_device *rdev = encoder->dev->dev_private; | ||
| 702 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | 701 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
| 703 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; | 702 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; |
| 704 | 703 | ||
| @@ -706,8 +705,6 @@ static void radeon_audio_hdmi_mode_set(struct drm_encoder *encoder, | |||
| 706 | return; | 705 | return; |
| 707 | 706 | ||
| 708 | radeon_audio_set_mute(encoder, true); | 707 | radeon_audio_set_mute(encoder, true); |
| 709 | /* disable audio prior to setting up hw */ | ||
| 710 | radeon_audio_enable(rdev, dig->afmt->pin, 0); | ||
| 711 | 708 | ||
| 712 | radeon_audio_set_dto(encoder, mode->clock); | 709 | radeon_audio_set_dto(encoder, mode->clock); |
| 713 | radeon_audio_set_vbi_packet(encoder); | 710 | radeon_audio_set_vbi_packet(encoder); |
| @@ -719,8 +716,6 @@ static void radeon_audio_hdmi_mode_set(struct drm_encoder *encoder, | |||
| 719 | if (radeon_audio_set_avi_packet(encoder, mode) < 0) | 716 | if (radeon_audio_set_avi_packet(encoder, mode) < 0) |
| 720 | return; | 717 | return; |
| 721 | 718 | ||
| 722 | /* enable audio after to setting up hw */ | ||
| 723 | radeon_audio_enable(rdev, dig->afmt->pin, 0xf); | ||
| 724 | radeon_audio_set_mute(encoder, false); | 719 | radeon_audio_set_mute(encoder, false); |
| 725 | } | 720 | } |
| 726 | 721 | ||
| @@ -735,18 +730,12 @@ static void radeon_audio_dp_mode_set(struct drm_encoder *encoder, | |||
| 735 | if (!dig || !dig->afmt) | 730 | if (!dig || !dig->afmt) |
| 736 | return; | 731 | return; |
| 737 | 732 | ||
| 738 | /* disable audio prior to setting up hw */ | ||
| 739 | radeon_audio_enable(rdev, dig->afmt->pin, 0); | ||
| 740 | |||
| 741 | radeon_audio_set_dto(encoder, rdev->clock.default_dispclk * 10); | 733 | radeon_audio_set_dto(encoder, rdev->clock.default_dispclk * 10); |
| 742 | radeon_audio_set_audio_packet(encoder); | 734 | radeon_audio_set_audio_packet(encoder); |
| 743 | radeon_audio_select_pin(encoder); | 735 | radeon_audio_select_pin(encoder); |
| 744 | 736 | ||
| 745 | if (radeon_audio_set_avi_packet(encoder, mode) < 0) | 737 | if (radeon_audio_set_avi_packet(encoder, mode) < 0) |
| 746 | return; | 738 | return; |
| 747 | |||
| 748 | /* enable audio after to setting up hw */ | ||
| 749 | radeon_audio_enable(rdev, dig->afmt->pin, 0xf); | ||
| 750 | } | 739 | } |
| 751 | 740 | ||
| 752 | void radeon_audio_mode_set(struct drm_encoder *encoder, | 741 | void radeon_audio_mode_set(struct drm_encoder *encoder, |
