diff options
author | Jakob Bornecrantz <jakob@vmware.com> | 2011-10-04 14:13:21 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-10-05 05:17:13 -0400 |
commit | d991ef0395596c4aeabcded322011d3f5fa9e74e (patch) | |
tree | d9e1b3ab4ad8454f9c6512a2257b07174460d7b1 /drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | |
parent | 626ab771c2f2d060d29470f18b3f7d710ba909dc (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.c | 33 |
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 | | |||
42 | static uint32_t gmr_placement_flags = VMW_PL_FLAG_GMR | | 42 | static uint32_t gmr_placement_flags = VMW_PL_FLAG_GMR | |
43 | TTM_PL_FLAG_CACHED; | 43 | TTM_PL_FLAG_CACHED; |
44 | 44 | ||
45 | static uint32_t gmr_ne_placement_flags = VMW_PL_FLAG_GMR | | ||
46 | TTM_PL_FLAG_CACHED | | ||
47 | TTM_PL_FLAG_NO_EVICT; | ||
48 | |||
45 | struct ttm_placement vmw_vram_placement = { | 49 | struct 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 | ||
72 | static 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 | |||
77 | struct 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 | |||
68 | struct ttm_placement vmw_vram_sys_placement = { | 86 | struct 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 | ||
113 | static 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 | |||
119 | struct 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 | |||
95 | struct vmw_ttm_backend { | 128 | struct vmw_ttm_backend { |
96 | struct ttm_backend backend; | 129 | struct ttm_backend backend; |
97 | struct page **pages; | 130 | struct page **pages; |