diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-08-28 10:59:05 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-09-10 11:29:46 -0400 |
commit | f266f04d33e5265e2f61ffc9d2b2f97214804995 (patch) | |
tree | 845df643f57e29098fa63f5fd1a844d424a6362f | |
parent | b76ee67a23e83bdad3e25def116c031eb007904d (diff) |
drm/radeon: add RADEON_GEM_NO_CPU_ACCESS BO creation flag (v4)
Allows pinning of buffers in the non-CPU visible portion of
vram.
v2: incorporate Michel's comments.
v3: rebase on Michel's patch
v4: rebase on Michel's v2 patch
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_object.c | 1 | ||||
-rw-r--r-- | include/uapi/drm/radeon_drm.h | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index 3dbbd65336d5..8abee5fa93bd 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c | |||
@@ -313,6 +313,7 @@ int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain, u64 max_offset, | |||
313 | for (i = 0; i < bo->placement.num_placement; i++) { | 313 | for (i = 0; i < bo->placement.num_placement; i++) { |
314 | /* force to pin into visible video ram */ | 314 | /* force to pin into visible video ram */ |
315 | if ((bo->placements[i].flags & TTM_PL_FLAG_VRAM) && | 315 | if ((bo->placements[i].flags & TTM_PL_FLAG_VRAM) && |
316 | !(bo->flags & RADEON_GEM_NO_CPU_ACCESS) && | ||
316 | (!max_offset || max_offset > bo->rdev->mc.visible_vram_size)) | 317 | (!max_offset || max_offset > bo->rdev->mc.visible_vram_size)) |
317 | bo->placements[i].lpfn = | 318 | bo->placements[i].lpfn = |
318 | bo->rdev->mc.visible_vram_size >> PAGE_SHIFT; | 319 | bo->rdev->mc.visible_vram_size >> PAGE_SHIFT; |
diff --git a/include/uapi/drm/radeon_drm.h b/include/uapi/drm/radeon_drm.h index f755f20d2b5c..50d0fb41a3bf 100644 --- a/include/uapi/drm/radeon_drm.h +++ b/include/uapi/drm/radeon_drm.h | |||
@@ -803,6 +803,8 @@ struct drm_radeon_gem_info { | |||
803 | #define RADEON_GEM_GTT_WC (1 << 2) | 803 | #define RADEON_GEM_GTT_WC (1 << 2) |
804 | /* BO is expected to be accessed by the CPU */ | 804 | /* BO is expected to be accessed by the CPU */ |
805 | #define RADEON_GEM_CPU_ACCESS (1 << 3) | 805 | #define RADEON_GEM_CPU_ACCESS (1 << 3) |
806 | /* CPU access is not expected to work for this BO */ | ||
807 | #define RADEON_GEM_NO_CPU_ACCESS (1 << 4) | ||
806 | 808 | ||
807 | struct drm_radeon_gem_create { | 809 | struct drm_radeon_gem_create { |
808 | uint64_t size; | 810 | uint64_t size; |