diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.c')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_gem.c | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index cd39b9d8abdb..20cfd86d2b32 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -1090,6 +1090,20 @@ int msm_gem_new_handle(struct drm_device *dev, struct drm_file *file,  	return ret;  } +static enum drm_gem_object_status msm_gem_status(struct drm_gem_object *obj) +{ +	struct msm_gem_object *msm_obj = to_msm_bo(obj); +	enum drm_gem_object_status status = 0; + +	if (msm_obj->pages) +		status |= DRM_GEM_OBJECT_RESIDENT; + +	if (msm_obj->madv == MSM_MADV_DONTNEED) +		status |= DRM_GEM_OBJECT_PURGEABLE; + +	return status; +} +  static const struct vm_operations_struct vm_ops = {  	.fault = msm_gem_fault,  	.open = drm_gem_vm_open, @@ -1104,6 +1118,7 @@ static const struct drm_gem_object_funcs msm_gem_object_funcs = {  	.vmap = msm_gem_prime_vmap,  	.vunmap = msm_gem_prime_vunmap,  	.mmap = msm_gem_object_mmap, +	.status = msm_gem_status,  	.vm_ops = &vm_ops,  };  | 
