diff options
| author | Rafał Miłecki <zajec5@gmail.com> | 2012-06-04 12:36:58 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2012-06-05 04:25:01 -0400 |
| commit | 0aecb5a4ba1ea4167f31d1790eec027f1e658f2d (patch) | |
| tree | 8e0f2460097a005e3b44a7c8810f633d175836ee /drivers/gpu | |
| parent | d4e30ef05c9e0fad9782de34f0acd039e238fd43 (diff) | |
drm/radeon/audio: don't hardcode CRTC id
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>
Cc: <stable@vger.kernel.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/radeon/r600_audio.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r600_audio.c b/drivers/gpu/drm/radeon/r600_audio.c index 7c4fa77f018..7479a5c503e 100644 --- a/drivers/gpu/drm/radeon/r600_audio.c +++ b/drivers/gpu/drm/radeon/r600_audio.c | |||
| @@ -192,6 +192,7 @@ void r600_audio_set_clock(struct drm_encoder *encoder, int clock) | |||
| 192 | struct radeon_device *rdev = dev->dev_private; | 192 | struct radeon_device *rdev = dev->dev_private; |
| 193 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | 193 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
| 194 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; | 194 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; |
| 195 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); | ||
| 195 | int base_rate = 48000; | 196 | int base_rate = 48000; |
| 196 | 197 | ||
| 197 | switch (radeon_encoder->encoder_id) { | 198 | switch (radeon_encoder->encoder_id) { |
| @@ -217,8 +218,8 @@ void r600_audio_set_clock(struct drm_encoder *encoder, int clock) | |||
| 217 | WREG32(EVERGREEN_AUDIO_PLL1_DIV, clock * 10); | 218 | WREG32(EVERGREEN_AUDIO_PLL1_DIV, clock * 10); |
| 218 | WREG32(EVERGREEN_AUDIO_PLL1_UNK, 0x00000071); | 219 | WREG32(EVERGREEN_AUDIO_PLL1_UNK, 0x00000071); |
| 219 | 220 | ||
| 220 | /* Some magic trigger or src sel? */ | 221 | /* Select DTO source */ |
| 221 | WREG32_P(0x5ac, 0x01, ~0x77); | 222 | WREG32(0x5ac, radeon_crtc->crtc_id); |
| 222 | } else { | 223 | } else { |
| 223 | switch (dig->dig_encoder) { | 224 | switch (dig->dig_encoder) { |
| 224 | case 0: | 225 | case 0: |
