aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_object.h
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2011-11-15 11:48:34 -0500
committerDave Airlie <airlied@redhat.com>2011-12-20 14:52:12 -0500
commitb15ba51207e54245409d6f46e20dab36f906eed1 (patch)
treeb34a37395efa5be0a9af4ba5b627e43813713ed3 /drivers/gpu/drm/radeon/radeon_object.h
parent1b37078b7ddf35cab12ac6544187e3636d50c0dc (diff)
drm/radeon: introduce a sub allocator and convert ib pool to it v4
Somewhat specializaed sub-allocator designed to perform sub-allocation for command buffer not only for current cs ioctl but for future command submission ioctl as well. Patch also convert current ib pool to use the sub allocator. Idea is that ib poll buffer can be share with other command buffer submission not having 64K granularity. v2 Harmonize pool handling and add suspend/resume callback to pin/unpin sa bo (tested on rv280, rv370, r420, rv515, rv610, rv710, redwood, cayman, rs480, rs690, rs880) v3 Simplify allocator v4 Fix radeon_ib_get error path to properly free fence 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.h')
-rw-r--r--drivers/gpu/drm/radeon/radeon_object.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_object.h b/drivers/gpu/drm/radeon/radeon_object.h
index b07f0f9b8627..cc236fb128ae 100644
--- a/drivers/gpu/drm/radeon/radeon_object.h
+++ b/drivers/gpu/drm/radeon/radeon_object.h
@@ -128,4 +128,24 @@ extern void radeon_bo_move_notify(struct ttm_buffer_object *bo,
128 struct ttm_mem_reg *mem); 128 struct ttm_mem_reg *mem);
129extern int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo); 129extern int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo);
130extern int radeon_bo_get_surface_reg(struct radeon_bo *bo); 130extern int radeon_bo_get_surface_reg(struct radeon_bo *bo);
131
132/*
133 * sub allocation
134 */
135extern int radeon_sa_bo_manager_init(struct radeon_device *rdev,
136 struct radeon_sa_manager *sa_manager,
137 unsigned size, u32 domain);
138extern void radeon_sa_bo_manager_fini(struct radeon_device *rdev,
139 struct radeon_sa_manager *sa_manager);
140extern int radeon_sa_bo_manager_start(struct radeon_device *rdev,
141 struct radeon_sa_manager *sa_manager);
142extern int radeon_sa_bo_manager_suspend(struct radeon_device *rdev,
143 struct radeon_sa_manager *sa_manager);
144extern int radeon_sa_bo_new(struct radeon_device *rdev,
145 struct radeon_sa_manager *sa_manager,
146 struct radeon_sa_bo *sa_bo,
147 unsigned size, unsigned align);
148extern void radeon_sa_bo_free(struct radeon_device *rdev,
149 struct radeon_sa_bo *sa_bo);
150
131#endif 151#endif