Rev 1963 | Rev 2005 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1963 | Rev 1986 | ||
---|---|---|---|
Line 6... | Line 6... | ||
6 | 6 | ||
7 | static struct drm_mm mm_gtt; |
7 | static struct drm_mm mm_gtt; |
Line -... | Line 8... | ||
- | 8 | static struct drm_mm mm_vram; |
|
- | 9 | ||
- | 10 | ||
- | 11 | /** |
|
- | 12 | * Initialize an already allocate GEM object of the specified size with |
|
- | 13 | * shmfs backing store. |
|
- | 14 | */ |
|
- | 15 | int drm_gem_object_init(struct drm_device *dev, |
|
- | 16 | struct drm_gem_object *obj, size_t size) |
|
- | 17 | { |
|
- | 18 | BUG_ON((size & (PAGE_SIZE - 1)) != 0); |
|
- | 19 | ||
- | 20 | obj->dev = dev; |
|
- | 21 | obj->filp = NULL; |
|
- | 22 | ||
- | 23 | atomic_set(&obj->handle_count, 0); |
|
- | 24 | obj->size = size; |
|
- | 25 | ||
- | 26 | return 0; |
|
- | 27 | } |
|
8 | static struct drm_mm mm_vram; |
28 | |
9 | 29 | ||
10 | int drm_mm_alloc(struct drm_mm *mm, size_t num_pages, |
30 | int drm_mm_alloc(struct drm_mm *mm, size_t num_pages, |
11 | struct drm_mm_node **node) |
31 | struct drm_mm_node **node) |
12 | { |
32 | { |
Line 36... | Line 56... | ||
36 | return 0; |
56 | return 0; |
37 | }; |
57 | }; |
Line -... | Line 58... | ||
- | 58 | ||
38 | 59 | ||
39 | 60 | ||
40 | void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain) |
61 | void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain) |
Line 41... | Line 62... | ||
41 | { |
62 | { |
Line 100... | Line 121... | ||
100 | bo->reserved.counter = 1; |
121 | bo->reserved.counter = 1; |
101 | } |
122 | } |
102 | 123 | ||
Line 103... | Line 124... | ||
103 | int radeon_bo_create(struct radeon_device *rdev, |
124 | int radeon_bo_create(struct radeon_device *rdev, |
104 | unsigned long size, int byte_align, |
125 | unsigned long size, int byte_align, bool kernel, u32 domain, |
105 | bool kernel, u32 domain, |
- | |
106 | struct radeon_bo **bo_ptr) |
126 | struct radeon_bo **bo_ptr) |
107 | { |
127 | { |
- | 128 | struct radeon_bo *bo; |
|
108 | enum ttm_bo_type type; |
129 | enum ttm_bo_type type; |
Line 109... | Line -... | ||
109 | - | ||
110 | struct radeon_bo *bo; |
130 | |
111 | size_t num_pages; |
131 | size_t num_pages; |
112 | struct drm_mm *mman; |
132 | struct drm_mm *mman; |
113 | u32 bo_domain; |
133 | u32 bo_domain; |
Line 141... | Line 161... | ||
141 | bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL); |
161 | bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL); |
142 | if (bo == NULL) |
162 | if (bo == NULL) |
143 | return -ENOMEM; |
163 | return -ENOMEM; |
144 | 164 | ||
Line -... | Line 165... | ||
- | 165 | r = drm_gem_object_init(rdev->ddev, &bo->gem_base, size); |
|
- | 166 | if (unlikely(r)) { |
|
- | 167 | kfree(bo); |
|
- | 168 | return r; |
|
- | 169 | } |
|
145 | bo->rdev = rdev; |
170 | bo->rdev = rdev; |
- | 171 | bo->gem_base.driver_private = NULL; |
|
146 | bo->surface_reg = -1; |
172 | bo->surface_reg = -1; |
147 | bo->tbo.num_pages = num_pages; |
173 | bo->tbo.num_pages = num_pages; |
148 | bo->domain = domain; |
174 | bo->domain = domain; |
Line 149... | Line 175... | ||
149 | 175 |