[FIX][STABLE 3.3+][PATCH] drm/radeon/audio: don't hardcode CRTC id

Alex Deucher alexdeucher at gmail.com
Mon Jun 4 09:49:36 PDT 2012


On Mon, Jun 4, 2012 at 12:36 PM, Rafał Miłecki <zajec5 at gmail.com> wrote:
> This is based on info released by AMD, should allow using audio in much
> more cases.
>
> Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
> Cc: <stable at vger.kernel.org>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  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 7c4fa77..7479a5c 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)
>        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) {
> @@ -217,8 +218,8 @@ void r600_audio_set_clock(struct drm_encoder *encoder, int clock)
>                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:
> --
> 1.7.7
>


More information about the dri-devel mailing list