Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6282 → Rev 6283

/drivers/video/drm/i915/i915_gem.c
2786,11 → 2786,6
struct drm_i915_gem_object *obj = vma->obj;
struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
int ret;
if(obj == get_fb_obj())
{
WARN(1,"attempt to unbind fb object\n");
return 0;
};
 
if (list_empty(&vma->vma_link))
return 0;
3955,6 → 3950,25
return obj;
}
 
static bool discard_backing_storage(struct drm_i915_gem_object *obj)
{
/* If we are the last user of the backing storage (be it shmemfs
* pages or stolen etc), we know that the pages are going to be
* immediately released. In this case, we can then skip copying
* back the contents from the GPU.
*/
 
if (obj->madv != I915_MADV_WILLNEED)
return false;
 
if (obj->base.filp == NULL)
return true;
 
// printf("filp %p\n", obj->base.filp);
shmem_file_delete(obj->base.filp);
return true;
}
 
void i915_gem_free_object(struct drm_gem_object *gem_obj)
{
struct drm_i915_gem_object *obj = to_intel_bo(gem_obj);
3997,18 → 4011,16
 
if (WARN_ON(obj->pages_pin_count))
obj->pages_pin_count = 0;
if (discard_backing_storage(obj))
obj->madv = I915_MADV_DONTNEED;
i915_gem_object_put_pages(obj);
// i915_gem_object_free_mmap_offset(obj);
 
BUG_ON(obj->pages);
 
if (obj->ops->release)
obj->ops->release(obj);
 
if(obj->base.filp != NULL)
{
// printf("filp %p\n", obj->base.filp);
shmem_file_delete(obj->base.filp);
}
 
drm_gem_object_release(&obj->base);
i915_gem_info_remove_obj(dev_priv, obj->base.size);