diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2010-01-28 12:16:30 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-02-05 00:26:19 -0500 |
commit | 38fd2c6ff526e6a59edfa8e08f6f0724646784c4 (patch) | |
tree | f77deb312a650d3acfe35694010f31240288938b /drivers/gpu | |
parent | 5ff55717674470b96562f931f778c878080755b7 (diff) |
drm/radeon/kms: suspend and resume audio stuff
Fixes FDO bug #26214
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r600_audio.c | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 9661a469f3bd..29faebc105df 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
@@ -1950,6 +1950,13 @@ int r600_resume(struct radeon_device *rdev) | |||
1950 | DRM_ERROR("radeon: failled testing IB (%d).\n", r); | 1950 | DRM_ERROR("radeon: failled testing IB (%d).\n", r); |
1951 | return r; | 1951 | return r; |
1952 | } | 1952 | } |
1953 | |||
1954 | r = r600_audio_init(rdev); | ||
1955 | if (r) { | ||
1956 | DRM_ERROR("radeon: audio resume failed\n"); | ||
1957 | return r; | ||
1958 | } | ||
1959 | |||
1953 | return r; | 1960 | return r; |
1954 | } | 1961 | } |
1955 | 1962 | ||
@@ -1957,6 +1964,7 @@ int r600_suspend(struct radeon_device *rdev) | |||
1957 | { | 1964 | { |
1958 | int r; | 1965 | int r; |
1959 | 1966 | ||
1967 | r600_audio_fini(rdev); | ||
1960 | /* FIXME: we should wait for ring to be empty */ | 1968 | /* FIXME: we should wait for ring to be empty */ |
1961 | r600_cp_stop(rdev); | 1969 | r600_cp_stop(rdev); |
1962 | rdev->cp.ready = false; | 1970 | rdev->cp.ready = false; |
diff --git a/drivers/gpu/drm/radeon/r600_audio.c b/drivers/gpu/drm/radeon/r600_audio.c index b1c1d3433454..0dcb6904c4ff 100644 --- a/drivers/gpu/drm/radeon/r600_audio.c +++ b/drivers/gpu/drm/radeon/r600_audio.c | |||
@@ -261,7 +261,6 @@ void r600_audio_fini(struct radeon_device *rdev) | |||
261 | if (!r600_audio_chipset_supported(rdev)) | 261 | if (!r600_audio_chipset_supported(rdev)) |
262 | return; | 262 | return; |
263 | 263 | ||
264 | WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x81000000); | ||
265 | |||
266 | del_timer(&rdev->audio_timer); | 264 | del_timer(&rdev->audio_timer); |
265 | WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x81000000); | ||
267 | } | 266 | } |