diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2011-12-07 17:32:24 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-12-19 13:40:26 -0500 |
commit | 69d2ae574b3a4b35e4970d8dec0bd598cfbe68a8 (patch) | |
tree | 5210cb06b6e421c24cf03391ccdd7e32c57937de /drivers/gpu/drm/radeon/evergreen.c | |
parent | ebcb796fa63a67ea2b7e8c023257ec6fe2813dc2 (diff) |
drm/radeon/kms: support for audio on Evergreen
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index e4c384b9511c..a7da8d437161 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
@@ -3069,6 +3069,12 @@ static int evergreen_startup(struct radeon_device *rdev) | |||
3069 | if (r) | 3069 | if (r) |
3070 | return r; | 3070 | return r; |
3071 | 3071 | ||
3072 | r = r600_audio_init(rdev); | ||
3073 | if (r) { | ||
3074 | DRM_ERROR("radeon: audio init failed\n"); | ||
3075 | return r; | ||
3076 | } | ||
3077 | |||
3072 | return 0; | 3078 | return 0; |
3073 | } | 3079 | } |
3074 | 3080 | ||
@@ -3100,12 +3106,19 @@ int evergreen_resume(struct radeon_device *rdev) | |||
3100 | return r; | 3106 | return r; |
3101 | } | 3107 | } |
3102 | 3108 | ||
3109 | r = r600_audio_init(rdev); | ||
3110 | if (r) { | ||
3111 | DRM_ERROR("radeon: audio resume failed\n"); | ||
3112 | return r; | ||
3113 | } | ||
3114 | |||
3103 | return r; | 3115 | return r; |
3104 | 3116 | ||
3105 | } | 3117 | } |
3106 | 3118 | ||
3107 | int evergreen_suspend(struct radeon_device *rdev) | 3119 | int evergreen_suspend(struct radeon_device *rdev) |
3108 | { | 3120 | { |
3121 | r600_audio_fini(rdev); | ||
3109 | /* FIXME: we should wait for ring to be empty */ | 3122 | /* FIXME: we should wait for ring to be empty */ |
3110 | r700_cp_stop(rdev); | 3123 | r700_cp_stop(rdev); |
3111 | rdev->cp.ready = false; | 3124 | rdev->cp.ready = false; |
@@ -3225,6 +3238,7 @@ int evergreen_init(struct radeon_device *rdev) | |||
3225 | 3238 | ||
3226 | void evergreen_fini(struct radeon_device *rdev) | 3239 | void evergreen_fini(struct radeon_device *rdev) |
3227 | { | 3240 | { |
3241 | r600_audio_fini(rdev); | ||
3228 | r600_blit_fini(rdev); | 3242 | r600_blit_fini(rdev); |
3229 | r700_cp_fini(rdev); | 3243 | r700_cp_fini(rdev); |
3230 | r600_irq_fini(rdev); | 3244 | r600_irq_fini(rdev); |