aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
diff options
context:
space:
mode:
authorJakob Bornecrantz <jakob@vmware.com>2011-10-04 14:13:21 -0400
committerDave Airlie <airlied@redhat.com>2011-10-05 05:17:13 -0400
commitd991ef0395596c4aeabcded322011d3f5fa9e74e (patch)
treed9e1b3ab4ad8454f9c6512a2257b07174460d7b1 /drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
parent626ab771c2f2d060d29470f18b3f7d710ba909dc (diff)
vmwgfx: Add dmabuf helper functions for pinning
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c')
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
index 5d665ce8cbe..98a5d7e9054 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
@@ -42,6 +42,10 @@ static uint32_t sys_placement_flags = TTM_PL_FLAG_SYSTEM |
42static uint32_t gmr_placement_flags = VMW_PL_FLAG_GMR | 42static uint32_t gmr_placement_flags = VMW_PL_FLAG_GMR |
43 TTM_PL_FLAG_CACHED; 43 TTM_PL_FLAG_CACHED;
44 44
45static uint32_t gmr_ne_placement_flags = VMW_PL_FLAG_GMR |
46 TTM_PL_FLAG_CACHED |
47 TTM_PL_FLAG_NO_EVICT;
48
45struct ttm_placement vmw_vram_placement = { 49struct ttm_placement vmw_vram_placement = {
46 .fpfn = 0, 50 .fpfn = 0,
47 .lpfn = 0, 51 .lpfn = 0,
@@ -65,6 +69,20 @@ struct ttm_placement vmw_vram_gmr_placement = {
65 .busy_placement = &gmr_placement_flags 69 .busy_placement = &gmr_placement_flags
66}; 70};
67 71
72static uint32_t vram_gmr_ne_placement_flags[] = {
73 TTM_PL_FLAG_VRAM | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT,
74 VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT
75};
76
77struct ttm_placement vmw_vram_gmr_ne_placement = {
78 .fpfn = 0,
79 .lpfn = 0,
80 .num_placement = 2,
81 .placement = vram_gmr_ne_placement_flags,
82 .num_busy_placement = 1,
83 .busy_placement = &gmr_ne_placement_flags
84};
85
68struct ttm_placement vmw_vram_sys_placement = { 86struct ttm_placement vmw_vram_sys_placement = {
69 .fpfn = 0, 87 .fpfn = 0,
70 .lpfn = 0, 88 .lpfn = 0,
@@ -92,6 +110,21 @@ struct ttm_placement vmw_sys_placement = {
92 .busy_placement = &sys_placement_flags 110 .busy_placement = &sys_placement_flags
93}; 111};
94 112
113static uint32_t evictable_placement_flags[] = {
114 TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED,
115 TTM_PL_FLAG_VRAM | TTM_PL_FLAG_CACHED,
116 VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED
117};
118
119struct ttm_placement vmw_evictable_placement = {
120 .fpfn = 0,
121 .lpfn = 0,
122 .num_placement = 3,
123 .placement = evictable_placement_flags,
124 .num_busy_placement = 1,
125 .busy_placement = &sys_placement_flags
126};
127
95struct vmw_ttm_backend { 128struct vmw_ttm_backend {
96 struct ttm_backend backend; 129 struct ttm_backend backend;
97 struct page **pages; 130 struct page **pages;