drm/msm: Initialize mmap offset after constructing the buffer object
Only the msm driver provides its own implementation of gem_prime_mmap from struct drm_driver. All other drivers use the drm_gem_prime_mmap() helper. Initialize the mmap offset when constructing the buffer object in msm and reduce the gem_prime_mmap code to the generic helper. Prepares msm for the removal of struct drm_driver.gem_prime_mmap. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230613150441.17720-2-tzimmermann@suse.de
This commit is contained in:
parent
a74e041def
commit
734458b762
|
@ -1240,6 +1240,10 @@ struct drm_gem_object *msm_gem_new(struct drm_device *dev, uint32_t size, uint32
|
|||
list_add_tail(&msm_obj->node, &priv->objects);
|
||||
mutex_unlock(&priv->obj_lock);
|
||||
|
||||
ret = drm_gem_create_mmap_offset(obj);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
return obj;
|
||||
|
||||
fail:
|
||||
|
@ -1296,6 +1300,10 @@ struct drm_gem_object *msm_gem_import(struct drm_device *dev,
|
|||
list_add_tail(&msm_obj->node, &priv->objects);
|
||||
mutex_unlock(&priv->obj_lock);
|
||||
|
||||
ret = drm_gem_create_mmap_offset(obj);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
return obj;
|
||||
|
||||
fail:
|
||||
|
|
|
@ -13,16 +13,6 @@
|
|||
|
||||
int msm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* Ensure the mmap offset is initialized. We lazily initialize it,
|
||||
* so if it has not been first mmap'd directly as a GEM object, the
|
||||
* mmap offset will not be already initialized.
|
||||
*/
|
||||
ret = drm_gem_create_mmap_offset(obj);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return drm_gem_prime_mmap(obj, vma);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue