[ 68/82] drm/radeon/audio: dont hardcode CRTC id
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2012-06-07 04:20:53
Also in:
lkml
3.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Rafa�� Mi��ecki <zajec5@gmail.com> commit 0aecb5a4ba1ea4167f31d1790eec027f1e658f2d upstream. This is based on info released by AMD, should allow using audio in much more cases. Signed-off-by: Rafa�� Mi��ecki <zajec5@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/gpu/drm/radeon/r600_audio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/radeon/r600_audio.c
+++ b/drivers/gpu/drm/radeon/r600_audio.c@@ -239,6 +239,7 @@ void r600_audio_set_clock(struct drm_enc struct radeon_device *rdev = dev->dev_private; struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; + struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); int base_rate = 48000; switch (radeon_encoder->encoder_id) {
@@ -264,8 +265,8 @@ void r600_audio_set_clock(struct drm_enc WREG32(EVERGREEN_AUDIO_PLL1_DIV, clock * 10); WREG32(EVERGREEN_AUDIO_PLL1_UNK, 0x00000071); - /* Some magic trigger or src sel? */ - WREG32_P(0x5ac, 0x01, ~0x77); + /* Select DTO source */ + WREG32(0x5ac, radeon_crtc->crtc_id); } else { switch (dig->dig_encoder) { case 0: