Rev 1123 | Rev 1179 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1123 | Rev 1126 | ||
---|---|---|---|
Line 39... | Line 39... | ||
39 | * |
39 | * |
40 | * Authors: |
40 | * Authors: |
41 | * Thomas Hellström |
41 | * Thomas Hellström |
42 | */ |
42 | */ |
Line 43... | Line 43... | ||
43 | 43 | ||
44 | //#include "drmP.h" |
44 | #include "drmP.h" |
45 | #include "drm_mm.h" |
45 | #include "drm_mm.h" |
Line 46... | Line 46... | ||
46 | //#include |
46 | //#include |
Line 118... | Line 118... | ||
118 | list_add_tail(&node->fl_entry, &mm->unused_nodes); |
118 | list_add_tail(&node->fl_entry, &mm->unused_nodes); |
119 | } |
119 | } |
120 | spin_unlock(&mm->unused_lock); |
120 | spin_unlock(&mm->unused_lock); |
121 | return 0; |
121 | return 0; |
122 | } |
122 | } |
123 | //EXPORT_SYMBOL(drm_mm_pre_get); |
123 | EXPORT_SYMBOL(drm_mm_pre_get); |
Line 124... | Line 124... | ||
124 | 124 | ||
125 | static int drm_mm_create_tail_node(struct drm_mm *mm, |
125 | static int drm_mm_create_tail_node(struct drm_mm *mm, |
126 | unsigned long start, |
126 | unsigned long start, |
127 | unsigned long size, int atomic) |
127 | unsigned long size, int atomic) |
Line 213... | Line 213... | ||
213 | if (align_splitoff) |
213 | if (align_splitoff) |
214 | drm_mm_put_block(align_splitoff); |
214 | drm_mm_put_block(align_splitoff); |
Line 215... | Line 215... | ||
215 | 215 | ||
216 | return node; |
216 | return node; |
217 | } |
217 | } |
Line 218... | Line 218... | ||
218 | //EXPORT_SYMBOL(drm_mm_get_block_generic); |
218 | EXPORT_SYMBOL(drm_mm_get_block_generic); |
219 | 219 | ||
220 | /* |
220 | /* |
221 | * Put a block. Merge with the previous and / or next block if they are free. |
221 | * Put a block. Merge with the previous and / or next block if they are free. |
Line 273... | Line 273... | ||
273 | } else |
273 | } else |
274 | kfree(cur); |
274 | kfree(cur); |
275 | } |
275 | } |
276 | } |
276 | } |
Line 277... | Line 277... | ||
277 | 277 | ||
Line 278... | Line 278... | ||
278 | //EXPORT_SYMBOL(drm_mm_put_block); |
278 | EXPORT_SYMBOL(drm_mm_put_block); |
279 | 279 | ||
280 | struct drm_mm_node *drm_mm_search_free(const struct drm_mm *mm, |
280 | struct drm_mm_node *drm_mm_search_free(const struct drm_mm *mm, |
281 | unsigned long size, |
281 | unsigned long size, |
Line 314... | Line 314... | ||
314 | } |
314 | } |
315 | } |
315 | } |
Line 316... | Line 316... | ||
316 | 316 | ||
317 | return best; |
317 | return best; |
318 | } |
318 | } |
Line 319... | Line 319... | ||
319 | //EXPORT_SYMBOL(drm_mm_search_free); |
319 | EXPORT_SYMBOL(drm_mm_search_free); |
320 | 320 | ||
321 | int drm_mm_clean(struct drm_mm * mm) |
321 | int drm_mm_clean(struct drm_mm * mm) |
Line 322... | Line 322... | ||
322 | { |
322 | { |
323 | struct list_head *head = &mm->ml_entry; |
323 | struct list_head *head = &mm->ml_entry; |
324 | 324 | ||
Line 325... | Line 325... | ||
325 | return (head->next->next == head); |
325 | return (head->next->next == head); |
326 | } |
326 | } |
327 | //EXPORT_SYMBOL(drm_mm_clean); |
327 | EXPORT_SYMBOL(drm_mm_clean); |
328 | 328 | ||
Line 334... | Line 334... | ||
334 | mm->num_unused = 0; |
334 | mm->num_unused = 0; |
335 | spin_lock_init(&mm->unused_lock); |
335 | spin_lock_init(&mm->unused_lock); |
Line 336... | Line 336... | ||
336 | 336 | ||
337 | return drm_mm_create_tail_node(mm, start, size, 0); |
337 | return drm_mm_create_tail_node(mm, start, size, 0); |
338 | } |
338 | } |
Line 339... | Line 339... | ||
339 | //EXPORT_SYMBOL(drm_mm_init); |
339 | EXPORT_SYMBOL(drm_mm_init); |
340 | 340 | ||
341 | void drm_mm_takedown(struct drm_mm * mm) |
341 | void drm_mm_takedown(struct drm_mm * mm) |
342 | { |
342 | { |
Line 364... | Line 364... | ||
364 | } |
364 | } |
365 | spin_unlock(&mm->unused_lock); |
365 | spin_unlock(&mm->unused_lock); |
Line 366... | Line 366... | ||
366 | 366 | ||
367 | BUG_ON(mm->num_unused != 0); |
367 | BUG_ON(mm->num_unused != 0); |
368 | } |
368 | } |