aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-02-27 10:42:21 -0500
committerAlex Deucher <alexander.deucher@amd.com>2015-03-03 17:28:22 -0500
commit3ed7ceeabf4d6a6df02121cc7e4b46d39501b6e9 (patch)
treef7cb9b0e8e21efb1b0114a0fae2e9081afbc1bc8 /drivers/gpu
parent88af339f9fe285cb93c264adc75545a3d3b50470 (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.c13
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 */
698static void radeon_audio_hdmi_mode_set(struct drm_encoder *encoder, 698static 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
752void radeon_audio_mode_set(struct drm_encoder *encoder, 741void radeon_audio_mode_set(struct drm_encoder *encoder,