Message ID | 20190913122908.784-7-kraxel@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: rework mmap() workflow | expand |
Hi Am 13.09.19 um 14:29 schrieb Gerd Hoffmann: > Wire up the new drm_gem_ttm_mmap() helper function, > use generic drm_gem_mmap for &fops.mmap and > delete dead drm_vram_mm_file_operations_mmap(). > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> > --- > include/drm/drm_gem_vram_helper.h | 9 +------ > drivers/gpu/drm/drm_gem_vram_helper.c | 34 +-------------------------- > 2 files changed, 2 insertions(+), 41 deletions(-) > > diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h > index 9aaef4f8c327..9d5526650291 100644 > --- a/include/drm/drm_gem_vram_helper.h > +++ b/include/drm/drm_gem_vram_helper.h > @@ -180,13 +180,6 @@ struct drm_vram_mm *drm_vram_helper_alloc_mm( > struct drm_device *dev, uint64_t vram_base, size_t vram_size); > void drm_vram_helper_release_mm(struct drm_device *dev); > > -/* > - * Helpers for &struct file_operations > - */ > - > -int drm_vram_mm_file_operations_mmap( > - struct file *filp, struct vm_area_struct *vma); > - > /** > * define DRM_VRAM_MM_FILE_OPERATIONS - default callback functions for \ > &struct file_operations > @@ -200,7 +193,7 @@ int drm_vram_mm_file_operations_mmap( > .poll = drm_poll, \ > .unlocked_ioctl = drm_ioctl, \ > .compat_ioctl = drm_compat_ioctl, \ > - .mmap = drm_vram_mm_file_operations_mmap, \ > + .mmap = drm_gem_mmap, \ > .open = drm_open, \ > .release = drm_release \ > > diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c > index 7bee80c6b6e8..e100b97ea6e3 100644 > --- a/drivers/gpu/drm/drm_gem_vram_helper.c > +++ b/drivers/gpu/drm/drm_gem_vram_helper.c > @@ -681,6 +681,7 @@ static const struct drm_gem_object_funcs drm_gem_vram_object_funcs = { > .unpin = drm_gem_vram_object_unpin, > .vmap = drm_gem_vram_object_vmap, > .vunmap = drm_gem_vram_object_vunmap, > + .mmap = drm_gem_ttm_mmap, > .print_info = drm_gem_ttm_print_info, > }; > > @@ -915,12 +916,6 @@ static void drm_vram_mm_cleanup(struct drm_vram_mm *vmm) > ttm_bo_device_release(&vmm->bdev); > } > > -static int drm_vram_mm_mmap(struct file *filp, struct vm_area_struct *vma, > - struct drm_vram_mm *vmm) > -{ > - return ttm_bo_mmap(filp, vma, &vmm->bdev); > -} > - > /* > * Helpers for integration with struct drm_device > */ > @@ -976,30 +971,3 @@ void drm_vram_helper_release_mm(struct drm_device *dev) > dev->vram_mm = NULL; > } > EXPORT_SYMBOL(drm_vram_helper_release_mm); > - > -/* > - * Helpers for &struct file_operations > - */ > - > -/** > - * drm_vram_mm_file_operations_mmap() - \ > - Implements &struct file_operations.mmap() > - * @filp: the mapping's file structure > - * @vma: the mapping's memory area > - * > - * Returns: > - * 0 on success, or > - * a negative error code otherwise. > - */ > -int drm_vram_mm_file_operations_mmap( > - struct file *filp, struct vm_area_struct *vma) > -{ > - struct drm_file *file_priv = filp->private_data; > - struct drm_device *dev = file_priv->minor->dev; > - > - if (WARN_ONCE(!dev->vram_mm, "VRAM MM not initialized")) > - return -EINVAL; > - > - return drm_vram_mm_mmap(filp, vma, dev->vram_mm); > -} > -EXPORT_SYMBOL(drm_vram_mm_file_operations_mmap); >
diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h index 9aaef4f8c327..9d5526650291 100644 --- a/include/drm/drm_gem_vram_helper.h +++ b/include/drm/drm_gem_vram_helper.h @@ -180,13 +180,6 @@ struct drm_vram_mm *drm_vram_helper_alloc_mm( struct drm_device *dev, uint64_t vram_base, size_t vram_size); void drm_vram_helper_release_mm(struct drm_device *dev); -/* - * Helpers for &struct file_operations - */ - -int drm_vram_mm_file_operations_mmap( - struct file *filp, struct vm_area_struct *vma); - /** * define DRM_VRAM_MM_FILE_OPERATIONS - default callback functions for \ &struct file_operations @@ -200,7 +193,7 @@ int drm_vram_mm_file_operations_mmap( .poll = drm_poll, \ .unlocked_ioctl = drm_ioctl, \ .compat_ioctl = drm_compat_ioctl, \ - .mmap = drm_vram_mm_file_operations_mmap, \ + .mmap = drm_gem_mmap, \ .open = drm_open, \ .release = drm_release \ diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c index 7bee80c6b6e8..e100b97ea6e3 100644 --- a/drivers/gpu/drm/drm_gem_vram_helper.c +++ b/drivers/gpu/drm/drm_gem_vram_helper.c @@ -681,6 +681,7 @@ static const struct drm_gem_object_funcs drm_gem_vram_object_funcs = { .unpin = drm_gem_vram_object_unpin, .vmap = drm_gem_vram_object_vmap, .vunmap = drm_gem_vram_object_vunmap, + .mmap = drm_gem_ttm_mmap, .print_info = drm_gem_ttm_print_info, }; @@ -915,12 +916,6 @@ static void drm_vram_mm_cleanup(struct drm_vram_mm *vmm) ttm_bo_device_release(&vmm->bdev); } -static int drm_vram_mm_mmap(struct file *filp, struct vm_area_struct *vma, - struct drm_vram_mm *vmm) -{ - return ttm_bo_mmap(filp, vma, &vmm->bdev); -} - /* * Helpers for integration with struct drm_device */ @@ -976,30 +971,3 @@ void drm_vram_helper_release_mm(struct drm_device *dev) dev->vram_mm = NULL; } EXPORT_SYMBOL(drm_vram_helper_release_mm); - -/* - * Helpers for &struct file_operations - */ - -/** - * drm_vram_mm_file_operations_mmap() - \ - Implements &struct file_operations.mmap() - * @filp: the mapping's file structure - * @vma: the mapping's memory area - * - * Returns: - * 0 on success, or - * a negative error code otherwise. - */ -int drm_vram_mm_file_operations_mmap( - struct file *filp, struct vm_area_struct *vma) -{ - struct drm_file *file_priv = filp->private_data; - struct drm_device *dev = file_priv->minor->dev; - - if (WARN_ONCE(!dev->vram_mm, "VRAM MM not initialized")) - return -EINVAL; - - return drm_vram_mm_mmap(filp, vma, dev->vram_mm); -} -EXPORT_SYMBOL(drm_vram_mm_file_operations_mmap);
Wire up the new drm_gem_ttm_mmap() helper function, use generic drm_gem_mmap for &fops.mmap and delete dead drm_vram_mm_file_operations_mmap(). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- include/drm/drm_gem_vram_helper.h | 9 +------ drivers/gpu/drm/drm_gem_vram_helper.c | 34 +-------------------------- 2 files changed, 2 insertions(+), 41 deletions(-)