diff options
author | Jerome Glisse <jglisse@redhat.com> | 2010-02-19 09:33:54 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-02-24 20:32:36 -0500 |
commit | 51e5fcd353a55364984bda3dd1391742e4dec53c (patch) | |
tree | ae93752cb78ef228eb48ec961d9e9702796751b7 /drivers/gpu/drm/radeon/radeon_object.c | |
parent | 22e6dd7e700111c1aa49581d27f2b349cbc798dd (diff) |
drm/radeon/kms: force pinning buffer into visible VRAM
This patch properly set visible VRAM and enforce any pinned buffer
to be into visible VRAM. We might later add a flag to release this
constraint for some newer hw more clever than previous.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_object.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_object.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index f1da370928e..fc9d00ac6b1 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c | |||
@@ -178,7 +178,6 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr) | |||
178 | { | 178 | { |
179 | int r, i; | 179 | int r, i; |
180 | 180 | ||
181 | radeon_ttm_placement_from_domain(bo, domain); | ||
182 | if (bo->pin_count) { | 181 | if (bo->pin_count) { |
183 | bo->pin_count++; | 182 | bo->pin_count++; |
184 | if (gpu_addr) | 183 | if (gpu_addr) |
@@ -186,6 +185,8 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr) | |||
186 | return 0; | 185 | return 0; |
187 | } | 186 | } |
188 | radeon_ttm_placement_from_domain(bo, domain); | 187 | radeon_ttm_placement_from_domain(bo, domain); |
188 | /* force to pin into visible video ram */ | ||
189 | bo->placement.lpfn = bo->rdev->mc.visible_vram_size >> PAGE_SHIFT; | ||
189 | for (i = 0; i < bo->placement.num_placement; i++) | 190 | for (i = 0; i < bo->placement.num_placement; i++) |
190 | bo->placements[i] |= TTM_PL_FLAG_NO_EVICT; | 191 | bo->placements[i] |= TTM_PL_FLAG_NO_EVICT; |
191 | r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false); | 192 | r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false); |