Subversion Repositories Kolibri OS

Rev

Rev 4075 | Rev 4569 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4075 Rev 4112
Line 37... Line 37...
37
#include 
37
#include 
38
#include 
38
#include 
39
#include 
39
#include 
40
#include 
40
#include 
Line -... Line 41...
-
 
41
 
-
 
42
#define TTM_ASSERT_LOCKED(param)
-
 
43
#define TTM_DEBUG(fmt, arg...)
-
 
44
#define TTM_BO_HASH_ORDER 13
41
 
45
 
42
#define pr_err(fmt, ...) \
46
#define pr_err(fmt, ...) \
Line 43... Line 47...
43
        printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
47
        printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
44
 
48
 
Line 217... Line 221...
217
	spin_unlock(&bo->glob->lru_lock);
221
	spin_unlock(&bo->glob->lru_lock);
218
	ttm_bo_list_ref_sub(bo, put_count, true);
222
	ttm_bo_list_ref_sub(bo, put_count, true);
219
}
223
}
220
EXPORT_SYMBOL(ttm_bo_del_sub_from_lru);
224
EXPORT_SYMBOL(ttm_bo_del_sub_from_lru);
Line 221... Line -...
221
 
-
 
222
 
225
 
223
/*
226
/*
224
 * Call bo->mutex locked.
227
 * Call bo->mutex locked.
225
 */
228
 */
226
static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
229
static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
227
{
230
{
228
	struct ttm_bo_device *bdev = bo->bdev;
231
	struct ttm_bo_device *bdev = bo->bdev;
229
	struct ttm_bo_global *glob = bo->glob;
232
	struct ttm_bo_global *glob = bo->glob;
230
	int ret = 0;
233
	int ret = 0;
Line 231... Line 234...
231
	uint32_t page_flags = 0;
234
	uint32_t page_flags = 0;
232
 
235
 
Line 233... Line 236...
233
//   TTM_ASSERT_LOCKED(&bo->mutex);
236
	TTM_ASSERT_LOCKED(&bo->mutex);
234
	bo->ttm = NULL;
237
	bo->ttm = NULL;
Line 607... Line 610...
607
	struct ttm_buffer_object *bo =
610
	struct ttm_buffer_object *bo =
608
	    container_of(kref, struct ttm_buffer_object, kref);
611
	    container_of(kref, struct ttm_buffer_object, kref);
609
	struct ttm_bo_device *bdev = bo->bdev;
612
	struct ttm_bo_device *bdev = bo->bdev;
610
	struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type];
613
	struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type];
Line 611... Line -...
611
 
-
 
612
	write_lock(&bdev->vm_lock);
-
 
613
	if (likely(bo->vm_node != NULL)) {
-
 
614
//       rb_erase(&bo->vm_rb, &bdev->addr_space_rb);
614
 
615
		drm_mm_put_block(bo->vm_node);
-
 
616
		bo->vm_node = NULL;
-
 
617
	}
-
 
618
	write_unlock(&bdev->vm_lock);
615
	drm_vma_offset_remove(&bdev->vma_manager, &bo->vma_node);
619
	ttm_mem_io_lock(man, false);
616
	ttm_mem_io_lock(man, false);
620
//   ttm_mem_io_free_vm(bo);
617
//   ttm_mem_io_free_vm(bo);
621
	ttm_mem_io_unlock(man);
618
	ttm_mem_io_unlock(man);
622
//   ttm_bo_cleanup_refs_or_queue(bo);
619
//   ttm_bo_cleanup_refs_or_queue(bo);
Line 1123... Line 1120...
1123
	bo->acc_size = acc_size;
1120
	bo->acc_size = acc_size;
1124
	bo->sg = sg;
1121
	bo->sg = sg;
1125
	bo->resv = &bo->ttm_resv;
1122
	bo->resv = &bo->ttm_resv;
1126
//   reservation_object_init(bo->resv);
1123
//   reservation_object_init(bo->resv);
1127
	atomic_inc(&bo->glob->bo_count);
1124
	atomic_inc(&bo->glob->bo_count);
-
 
1125
	drm_vma_node_reset(&bo->vma_node);
Line 1128... Line 1126...
1128
 
1126
 
Line 1129... Line 1127...
1129
	ret = ttm_bo_check_placement(bo, placement);
1127
	ret = ttm_bo_check_placement(bo, placement);
1130
 
1128
 
Line 1301... Line 1299...
1301
 
1299
 
1302
out_no_drp:
1300
out_no_drp:
1303
    kfree(glob);
1301
    kfree(glob);
1304
    return ret;
1302
    return ret;
-
 
1303
}
Line 1305... Line 1304...
1305
}
1304
EXPORT_SYMBOL(ttm_bo_global_init);
1306
 
1305
 
1307
 
1306
 
Line 1313... Line 1312...
1313
{
1312
{
1314
	int ret = -EINVAL;
1313
	int ret = -EINVAL;
Line 1315... Line 1314...
1315
 
1314
 
Line 1316... Line -...
1316
    ENTER();
-
 
1317
 
1315
    ENTER();
Line 1318... Line 1316...
1318
//	rwlock_init(&bdev->vm_lock);
1316
 
Line 1319... Line 1317...
1319
	bdev->driver = driver;
1317
	bdev->driver = driver;
Line 1326... Line 1324...
1326
	 */
1324
	 */
1327
	ret = ttm_bo_init_mm(bdev, TTM_PL_SYSTEM, 0);
1325
	ret = ttm_bo_init_mm(bdev, TTM_PL_SYSTEM, 0);
1328
	if (unlikely(ret != 0))
1326
	if (unlikely(ret != 0))
1329
		goto out_no_sys;
1327
		goto out_no_sys;
Line 1330... Line -...
1330
 
-
 
1331
	bdev->addr_space_rb = RB_ROOT;
1328
 
1332
	drm_mm_init(&bdev->addr_space_mm, file_page_offset, 0x10000000);
-
 
-
 
1329
	drm_vma_offset_manager_init(&bdev->vma_manager, file_page_offset,
1333
 
1330
				    0x10000000);
1334
//	INIT_DELAYED_WORK(&bdev->wq, ttm_bo_delayed_workqueue);
1331
//	INIT_DELAYED_WORK(&bdev->wq, ttm_bo_delayed_workqueue);
1335
	INIT_LIST_HEAD(&bdev->ddestroy);
1332
	INIT_LIST_HEAD(&bdev->ddestroy);
1336
	bdev->dev_mapping = NULL;
1333
	bdev->dev_mapping = NULL;
1337
	bdev->glob = glob;
1334
	bdev->glob = glob;