Subversion Repositories Kolibri OS

Rev

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

Rev 5078 Rev 5271
Line 47... Line 47...
47
	spinlock_t lock;
47
	spinlock_t lock;
48
};
48
};
Line 49... Line 49...
49
 
49
 
50
static int ttm_bo_man_get_node(struct ttm_mem_type_manager *man,
50
static int ttm_bo_man_get_node(struct ttm_mem_type_manager *man,
51
			       struct ttm_buffer_object *bo,
51
			       struct ttm_buffer_object *bo,
52
			       struct ttm_placement *placement,
-
 
53
			       uint32_t flags,
52
			       const struct ttm_place *place,
54
			       struct ttm_mem_reg *mem)
53
			       struct ttm_mem_reg *mem)
55
{
54
{
56
	struct ttm_range_manager *rman = (struct ttm_range_manager *) man->priv;
55
	struct ttm_range_manager *rman = (struct ttm_range_manager *) man->priv;
57
	struct drm_mm *mm = &rman->mm;
56
	struct drm_mm *mm = &rman->mm;
-
 
57
	struct drm_mm_node *node = NULL;
58
	struct drm_mm_node *node = NULL;
58
	enum drm_mm_search_flags sflags = DRM_MM_SEARCH_BEST;
59
	enum drm_mm_allocator_flags aflags = DRM_MM_CREATE_DEFAULT;
59
	enum drm_mm_allocator_flags aflags = DRM_MM_CREATE_DEFAULT;
60
	unsigned long lpfn;
60
	unsigned long lpfn;
Line 61... Line 61...
61
	int ret;
61
	int ret;
62
 
62
 
63
	lpfn = placement->lpfn;
63
	lpfn = place->lpfn;
Line 64... Line 64...
64
	if (!lpfn)
64
	if (!lpfn)
65
		lpfn = man->size;
65
		lpfn = man->size;
66
 
66
 
Line 67... Line 67...
67
	node = kzalloc(sizeof(*node), GFP_KERNEL);
67
	node = kzalloc(sizeof(*node), GFP_KERNEL);
-
 
68
	if (!node)
68
	if (!node)
69
		return -ENOMEM;
-
 
70
 
Line 69... Line 71...
69
		return -ENOMEM;
71
	if (place->flags & TTM_PL_FLAG_TOPDOWN) {
70
 
72
		sflags = DRM_MM_SEARCH_BELOW;
71
	if (flags & TTM_PL_FLAG_TOPDOWN)
73
		aflags = DRM_MM_CREATE_TOP;
72
		aflags = DRM_MM_CREATE_TOP;
74
	}
73
 
-
 
74
		spin_lock(&rman->lock);
75
 
75
	ret = drm_mm_insert_node_in_range_generic(mm, node, mem->num_pages,
76
		spin_lock(&rman->lock);
Line 76... Line 77...
76
					  mem->page_alignment, 0,
77
	ret = drm_mm_insert_node_in_range_generic(mm, node, mem->num_pages,
77
					  placement->fpfn, lpfn,
78
					  mem->page_alignment, 0,
78
					  DRM_MM_SEARCH_BEST,
79
					  place->fpfn, lpfn,