diff options
Diffstat (limited to 'drivers/gpu/drm/i915')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_evict.c | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_execbuffer.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_gtt.c | 39 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_stolen.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_fbdev.c | 3 | 
6 files changed, 33 insertions, 39 deletions
| diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index a07b62732923..c8689892a89f 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -69,12 +69,10 @@ insert_mappable_node(struct i915_ggtt *ggtt,                       struct drm_mm_node *node, u32 size)  {  	memset(node, 0, sizeof(*node)); -	return drm_mm_insert_node_in_range_generic(&ggtt->base.mm, node, -						   size, 0, -						   I915_COLOR_UNEVICTABLE, -						   0, ggtt->mappable_end, -						   DRM_MM_SEARCH_DEFAULT, -						   DRM_MM_CREATE_DEFAULT); +	return drm_mm_insert_node_in_range(&ggtt->base.mm, node, +					   size, 0, I915_COLOR_UNEVICTABLE, +					   0, ggtt->mappable_end, +					   DRM_MM_INSERT_LOW);  }  static void diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c index a43e44e18042..c181b1bb3d2c 100644 --- a/drivers/gpu/drm/i915/i915_gem_evict.c +++ b/drivers/gpu/drm/i915/i915_gem_evict.c @@ -109,6 +109,7 @@ i915_gem_evict_something(struct i915_address_space *vm,  	}, **phase;  	struct i915_vma *vma, *next;  	struct drm_mm_node *node; +	enum drm_mm_insert_mode mode;  	int ret;  	lockdep_assert_held(&vm->i915->drm.struct_mutex); @@ -127,10 +128,14 @@ i915_gem_evict_something(struct i915_address_space *vm,  	 * On each list, the oldest objects lie at the HEAD with the freshest  	 * object on the TAIL.  	 */ +	mode = DRM_MM_INSERT_BEST; +	if (flags & PIN_HIGH) +		mode = DRM_MM_INSERT_HIGH; +	if (flags & PIN_MAPPABLE) +		mode = DRM_MM_INSERT_LOW;  	drm_mm_scan_init_with_range(&scan, &vm->mm,  				    min_size, alignment, cache_level, -				    start, end, -				    flags & PIN_HIGH ? DRM_MM_CREATE_TOP : 0); +				    start, end, mode);  	/* Retire before we search the active list. Although we have  	 * reasonable accuracy in our retirement lists, we may have diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index c66e90571031..57bec08e80c5 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -436,12 +436,11 @@ static void *reloc_iomap(struct drm_i915_gem_object *obj,  					       PIN_MAPPABLE | PIN_NONBLOCK);  		if (IS_ERR(vma)) {  			memset(&cache->node, 0, sizeof(cache->node)); -			ret = drm_mm_insert_node_in_range_generic +			ret = drm_mm_insert_node_in_range  				(&ggtt->base.mm, &cache->node,  				 PAGE_SIZE, 0, I915_COLOR_UNEVICTABLE,  				 0, ggtt->mappable_end, -				 DRM_MM_SEARCH_DEFAULT, -				 DRM_MM_CREATE_DEFAULT); +				 DRM_MM_INSERT_LOW);  			if (ret) /* no inactive aperture space, use cpu reloc */  				return NULL;  		} else { diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index e808aad203d8..30d8dbd04f0b 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -2748,12 +2748,10 @@ int i915_gem_init_ggtt(struct drm_i915_private *dev_priv)  		return ret;  	/* Reserve a mappable slot for our lockless error capture */ -	ret = drm_mm_insert_node_in_range_generic(&ggtt->base.mm, -						  &ggtt->error_capture, -						  PAGE_SIZE, 0, -						  I915_COLOR_UNEVICTABLE, -						  0, ggtt->mappable_end, -						  0, 0); +	ret = drm_mm_insert_node_in_range(&ggtt->base.mm, &ggtt->error_capture, +					  PAGE_SIZE, 0, I915_COLOR_UNEVICTABLE, +					  0, ggtt->mappable_end, +					  DRM_MM_INSERT_LOW);  	if (ret)  		return ret; @@ -3663,7 +3661,7 @@ int i915_gem_gtt_insert(struct i915_address_space *vm,  			u64 size, u64 alignment, unsigned long color,  			u64 start, u64 end, unsigned int flags)  { -	u32 search_flag, alloc_flag; +	enum drm_mm_insert_mode mode;  	u64 offset;  	int err; @@ -3684,13 +3682,11 @@ int i915_gem_gtt_insert(struct i915_address_space *vm,  	if (unlikely(round_up(start, alignment) > round_down(end - size, alignment)))  		return -ENOSPC; -	if (flags & PIN_HIGH) { -		search_flag = DRM_MM_SEARCH_BELOW; -		alloc_flag = DRM_MM_CREATE_TOP; -	} else { -		search_flag = DRM_MM_SEARCH_DEFAULT; -		alloc_flag = DRM_MM_CREATE_DEFAULT; -	} +	mode = DRM_MM_INSERT_BEST; +	if (flags & PIN_HIGH) +		mode = DRM_MM_INSERT_HIGH; +	if (flags & PIN_MAPPABLE) +		mode = DRM_MM_INSERT_LOW;  	/* We only allocate in PAGE_SIZE/GTT_PAGE_SIZE (4096) chunks,  	 * so we know that we always have a minimum alignment of 4096. @@ -3702,10 +3698,9 @@ int i915_gem_gtt_insert(struct i915_address_space *vm,  	if (alignment <= I915_GTT_MIN_ALIGNMENT)  		alignment = 0; -	err = drm_mm_insert_node_in_range_generic(&vm->mm, node, -						  size, alignment, color, -						  start, end, -						  search_flag, alloc_flag); +	err = drm_mm_insert_node_in_range(&vm->mm, node, +					  size, alignment, color, +					  start, end, mode);  	if (err != -ENOSPC)  		return err; @@ -3743,9 +3738,7 @@ int i915_gem_gtt_insert(struct i915_address_space *vm,  	if (err)  		return err; -	search_flag = DRM_MM_SEARCH_DEFAULT; -	return drm_mm_insert_node_in_range_generic(&vm->mm, node, -						   size, alignment, color, -						   start, end, -						   search_flag, alloc_flag); +	return drm_mm_insert_node_in_range(&vm->mm, node, +					   size, alignment, color, +					   start, end, DRM_MM_INSERT_EVICT);  } diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c index 127d698e7c84..ec7c5d80fe4f 100644 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -55,9 +55,9 @@ int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv,  		return -ENODEV;  	mutex_lock(&dev_priv->mm.stolen_lock); -	ret = drm_mm_insert_node_in_range(&dev_priv->mm.stolen, node, size, -					  alignment, start, end, -					  DRM_MM_SEARCH_DEFAULT); +	ret = drm_mm_insert_node_in_range(&dev_priv->mm.stolen, node, +					  size, alignment, 0, +					  start, end, DRM_MM_INSERT_BEST);  	mutex_unlock(&dev_priv->mm.stolen_lock);  	return ret; diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c index e0d9e72cf3d1..1b8ba2e77539 100644 --- a/drivers/gpu/drm/i915/intel_fbdev.c +++ b/drivers/gpu/drm/i915/intel_fbdev.c @@ -713,8 +713,7 @@ int intel_fbdev_init(struct drm_device *dev)  	if (!intel_fbdev_init_bios(dev, ifbdev))  		ifbdev->preferred_bpp = 32; -	ret = drm_fb_helper_init(dev, &ifbdev->helper, -				 INTEL_INFO(dev_priv)->num_pipes, 4); +	ret = drm_fb_helper_init(dev, &ifbdev->helper, 4);  	if (ret) {  		kfree(ifbdev);  		return ret; | 
