diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-01 13:46:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-01 13:46:49 -0500 |
commit | 9ce929078af868ce5f5b0b3537184dad642fba43 (patch) | |
tree | 8d61d65f46ba894bbc346f5e0cfde72e7b2308de /drivers/gpu/drm/radeon/rv770.c | |
parent | 13af75740f345a5ddb5f7020a688c0f96b0d9f1f (diff) | |
parent | 17aafccab4352b422aa01fa6ebf82daff693a5b3 (diff) |
Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/radeon/kms: Fix oops after radeon_cs_parser_init() failure.
drm/radeon/kms: move radeon KMS on/off switch out of staging.
drm/radeon/kms: Bailout of blit if error happen & protect with mutex V3
drm/vmwgfx: Don't send bad flags to the host
drm/vmwgfx: Request SVGA version 2 and bail if not found
drm/vmwgfx: Correctly detect 3D
drm/ttm: remove unnecessary save_flags and ttm_flag_masked in ttm_bo_util.c
drm/kms: Remove incorrect comment in struct drm_mode_modeinfo
drm/ttm: remove padding from ttm_ref_object on 64bit builds
drm/radeon/kms: release agp on error.
drm/kms/radeon/agp: Move the check of the aper_size after drm_acp_acquire and drm_agp_info
drm/kms/radeon/agp: Fix warning, format ‘%d’ expects type ‘int’, but argument 4 has type ‘size_t’
drm/ttm: Avoid conflicting reserve_memtype during ttm_tt_set_page_caching.
drm/kms/radeon: pick digitial encoders smarter. (v3)
drm/radeon/kms: use active device to pick connector for encoder
drm/radeon/kms: fix incorrect logic in DP vs eDP connector checking.
Diffstat (limited to 'drivers/gpu/drm/radeon/rv770.c')
-rw-r--r-- | drivers/gpu/drm/radeon/rv770.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index 55f6ffc4e58b..afd9e8213c29 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c | |||
@@ -887,26 +887,19 @@ static int rv770_startup(struct radeon_device *rdev) | |||
887 | return r; | 887 | return r; |
888 | } | 888 | } |
889 | rv770_gpu_init(rdev); | 889 | rv770_gpu_init(rdev); |
890 | 890 | /* pin copy shader into vram */ | |
891 | if (!rdev->r600_blit.shader_obj) { | 891 | if (rdev->r600_blit.shader_obj) { |
892 | r = r600_blit_init(rdev); | 892 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); |
893 | if (unlikely(r != 0)) | ||
894 | return r; | ||
895 | r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM, | ||
896 | &rdev->r600_blit.shader_gpu_addr); | ||
897 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
893 | if (r) { | 898 | if (r) { |
894 | DRM_ERROR("radeon: failed blitter (%d).\n", r); | 899 | DRM_ERROR("failed to pin blit object %d\n", r); |
895 | return r; | 900 | return r; |
896 | } | 901 | } |
897 | } | 902 | } |
898 | |||
899 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | ||
900 | if (unlikely(r != 0)) | ||
901 | return r; | ||
902 | r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM, | ||
903 | &rdev->r600_blit.shader_gpu_addr); | ||
904 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
905 | if (r) { | ||
906 | DRM_ERROR("failed to pin blit object %d\n", r); | ||
907 | return r; | ||
908 | } | ||
909 | |||
910 | /* Enable IRQ */ | 903 | /* Enable IRQ */ |
911 | r = r600_irq_init(rdev); | 904 | r = r600_irq_init(rdev); |
912 | if (r) { | 905 | if (r) { |
@@ -1062,6 +1055,12 @@ int rv770_init(struct radeon_device *rdev) | |||
1062 | r = r600_pcie_gart_init(rdev); | 1055 | r = r600_pcie_gart_init(rdev); |
1063 | if (r) | 1056 | if (r) |
1064 | return r; | 1057 | return r; |
1058 | r = r600_blit_init(rdev); | ||
1059 | if (r) { | ||
1060 | r600_blit_fini(rdev); | ||
1061 | rdev->asic->copy = NULL; | ||
1062 | dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); | ||
1063 | } | ||
1065 | 1064 | ||
1066 | rdev->accel_working = true; | 1065 | rdev->accel_working = true; |
1067 | r = rv770_startup(rdev); | 1066 | r = rv770_startup(rdev); |