aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/evergreen.c
diff options
context:
space:
mode:
authorIlija Hadzic <ihadzic@research.bell-labs.com>2011-10-12 23:29:41 -0400
committerDave Airlie <airlied@redhat.com>2011-10-18 05:10:52 -0400
commitfb3d9e97e1ad5f2c19b68fe5a0c6a95bf57c65c3 (patch)
tree144cf1b5b2cd3acee7ebb2c5a199074cf01d1fb4 /drivers/gpu/drm/radeon/evergreen.c
parentb353096345f928d8c1164117804d1407790fb5f3 (diff)
drm/radeon/kms: blit code commoning
factor out most of evergreen blit code and use the refactored code from r600 that is now common for both r600 and evergreen Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.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.c25
1 files changed, 2 insertions, 23 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 7cd402412054..b37b6a0bbec9 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -3087,7 +3087,7 @@ static int evergreen_startup(struct radeon_device *rdev)
3087 3087
3088 r = evergreen_blit_init(rdev); 3088 r = evergreen_blit_init(rdev);
3089 if (r) { 3089 if (r) {
3090 evergreen_blit_fini(rdev); 3090 r600_blit_fini(rdev);
3091 rdev->asic->copy = NULL; 3091 rdev->asic->copy = NULL;
3092 dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); 3092 dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
3093 } 3093 }
@@ -3172,27 +3172,6 @@ int evergreen_suspend(struct radeon_device *rdev)
3172 return 0; 3172 return 0;
3173} 3173}
3174 3174
3175int evergreen_copy_blit(struct radeon_device *rdev,
3176 uint64_t src_offset, uint64_t dst_offset,
3177 unsigned num_pages, struct radeon_fence *fence)
3178{
3179 int r;
3180
3181 mutex_lock(&rdev->r600_blit.mutex);
3182 rdev->r600_blit.vb_ib = NULL;
3183 r = evergreen_blit_prepare_copy(rdev, num_pages);
3184 if (r) {
3185 if (rdev->r600_blit.vb_ib)
3186 radeon_ib_free(rdev, &rdev->r600_blit.vb_ib);
3187 mutex_unlock(&rdev->r600_blit.mutex);
3188 return r;
3189 }
3190 evergreen_kms_blit_copy(rdev, src_offset, dst_offset, num_pages);
3191 evergreen_blit_done_copy(rdev, fence);
3192 mutex_unlock(&rdev->r600_blit.mutex);
3193 return 0;
3194}
3195
3196/* Plan is to move initialization in that function and use 3175/* Plan is to move initialization in that function and use
3197 * helper function so that radeon_device_init pretty much 3176 * helper function so that radeon_device_init pretty much
3198 * do nothing more than calling asic specific function. This 3177 * do nothing more than calling asic specific function. This
@@ -3301,7 +3280,7 @@ int evergreen_init(struct radeon_device *rdev)
3301 3280
3302void evergreen_fini(struct radeon_device *rdev) 3281void evergreen_fini(struct radeon_device *rdev)
3303{ 3282{
3304 evergreen_blit_fini(rdev); 3283 r600_blit_fini(rdev);
3305 r700_cp_fini(rdev); 3284 r700_cp_fini(rdev);
3306 r600_irq_fini(rdev); 3285 r600_irq_fini(rdev);
3307 radeon_wb_fini(rdev); 3286 radeon_wb_fini(rdev);