diff options
author | Dave Airlie <airlied@linux.ie> | 2009-09-18 04:33:07 -0400 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2009-09-18 04:34:53 -0400 |
commit | 9052aa2458fc13788e468a010fa0ed9aa4020380 (patch) | |
tree | 83d81c4ce5d408e3b000671619c43d01c4f052ae /drivers/gpu/drm/radeon/rv770.c | |
parent | fc30b8efbe1b271eb64e0d4f6cb2a91bb57ee5f3 (diff) |
drm/radeon/kms: rv770 blit init called too late.
re-align with r600 code, to init blit earlier.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/rv770.c')
-rw-r--r-- | drivers/gpu/drm/radeon/rv770.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index a6399662a843..576ae2f6c717 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c | |||
@@ -860,6 +860,14 @@ static int rv770_startup(struct radeon_device *rdev) | |||
860 | if (r) | 860 | if (r) |
861 | return r; | 861 | return r; |
862 | rv770_gpu_init(rdev); | 862 | rv770_gpu_init(rdev); |
863 | |||
864 | r = radeon_object_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM, | ||
865 | &rdev->r600_blit.shader_gpu_addr); | ||
866 | if (r) { | ||
867 | DRM_ERROR("failed to pin blit object %d\n", r); | ||
868 | return r; | ||
869 | } | ||
870 | |||
863 | r = radeon_ring_init(rdev, rdev->cp.ring_size); | 871 | r = radeon_ring_init(rdev, rdev->cp.ring_size); |
864 | if (r) | 872 | if (r) |
865 | return r; | 873 | return r; |
@@ -993,6 +1001,12 @@ int rv770_init(struct radeon_device *rdev) | |||
993 | return r; | 1001 | return r; |
994 | 1002 | ||
995 | rdev->accel_working = true; | 1003 | rdev->accel_working = true; |
1004 | r = r600_blit_init(rdev); | ||
1005 | if (r) { | ||
1006 | DRM_ERROR("radeon: failled blitter (%d).\n", r); | ||
1007 | rdev->accel_working = false; | ||
1008 | } | ||
1009 | |||
996 | r = rv770_startup(rdev); | 1010 | r = rv770_startup(rdev); |
997 | if (r) { | 1011 | if (r) { |
998 | if (rdev->flags & RADEON_IS_AGP) { | 1012 | if (rdev->flags & RADEON_IS_AGP) { |
@@ -1004,11 +1018,6 @@ int rv770_init(struct radeon_device *rdev) | |||
1004 | rdev->accel_working = false; | 1018 | rdev->accel_working = false; |
1005 | } | 1019 | } |
1006 | if (rdev->accel_working) { | 1020 | if (rdev->accel_working) { |
1007 | r = r600_blit_init(rdev); | ||
1008 | if (r) { | ||
1009 | DRM_ERROR("radeon: failled blitter (%d).\n", r); | ||
1010 | rdev->accel_working = false; | ||
1011 | } | ||
1012 | r = radeon_ib_pool_init(rdev); | 1021 | r = radeon_ib_pool_init(rdev); |
1013 | if (r) { | 1022 | if (r) { |
1014 | DRM_ERROR("radeon: failled initializing IB pool (%d).\n", r); | 1023 | DRM_ERROR("radeon: failled initializing IB pool (%d).\n", r); |