[PATCH 1/3] drm/udl: Remove flags field from struct udl_gem_object
Gerd Hoffmann
kraxel at redhat.com
Tue Nov 5 11:05:37 UTC 2019
On Mon, Oct 28, 2019 at 09:45:47AM +0100, Thomas Zimmermann wrote:
> The flags field in struct udl_gem control mapping parameters: cached
> access for local buffers, write-combined access for imported buffers.
>
> We can drop the field and distingush both cases by testing whether
> struct drm_gem_object.import_attach is NULL.
Acked-by: Gerd Hoffmann <kraxel at redhat.com>
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> ---
> drivers/gpu/drm/udl/udl_dmabuf.c | 1 -
> drivers/gpu/drm/udl/udl_drv.h | 4 ----
> drivers/gpu/drm/udl/udl_gem.c | 27 +++++++--------------------
> 3 files changed, 7 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/gpu/drm/udl/udl_dmabuf.c b/drivers/gpu/drm/udl/udl_dmabuf.c
> index 3108e9a9234b..b1c1ee64de59 100644
> --- a/drivers/gpu/drm/udl/udl_dmabuf.c
> +++ b/drivers/gpu/drm/udl/udl_dmabuf.c
> @@ -241,7 +241,6 @@ struct drm_gem_object *udl_gem_prime_import(struct drm_device *dev,
> goto fail_unmap;
>
> uobj->base.import_attach = attach;
> - uobj->flags = UDL_BO_WC;
>
> return &uobj->base;
>
> diff --git a/drivers/gpu/drm/udl/udl_drv.h b/drivers/gpu/drm/udl/udl_drv.h
> index 12a970fd9a87..e1306a51903c 100644
> --- a/drivers/gpu/drm/udl/udl_drv.h
> +++ b/drivers/gpu/drm/udl/udl_drv.h
> @@ -29,9 +29,6 @@ struct drm_mode_create_dumb;
> #define DRIVER_MINOR 0
> #define DRIVER_PATCHLEVEL 1
>
> -#define UDL_BO_CACHEABLE (1 << 0)
> -#define UDL_BO_WC (1 << 1)
> -
> struct udl_device;
>
> struct urb_node {
> @@ -81,7 +78,6 @@ struct udl_gem_object {
> struct page **pages;
> void *vmapping;
> struct sg_table *sg;
> - unsigned int flags;
> };
>
> #define to_udl_bo(x) container_of(x, struct udl_gem_object, base)
> diff --git a/drivers/gpu/drm/udl/udl_gem.c b/drivers/gpu/drm/udl/udl_gem.c
> index b23a5c2fcd80..7d3c1b73ea02 100644
> --- a/drivers/gpu/drm/udl/udl_gem.c
> +++ b/drivers/gpu/drm/udl/udl_gem.c
> @@ -25,7 +25,6 @@ struct udl_gem_object *udl_gem_alloc_object(struct drm_device *dev,
> return NULL;
> }
>
> - obj->flags = UDL_BO_CACHEABLE;
> return obj;
> }
>
> @@ -57,23 +56,6 @@ udl_gem_create(struct drm_file *file,
> return 0;
> }
>
> -static void update_vm_cache_attr(struct udl_gem_object *obj,
> - struct vm_area_struct *vma)
> -{
> - DRM_DEBUG_KMS("flags = 0x%x\n", obj->flags);
> -
> - /* non-cacheable as default. */
> - if (obj->flags & UDL_BO_CACHEABLE) {
> - vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
> - } else if (obj->flags & UDL_BO_WC) {
> - vma->vm_page_prot =
> - pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
> - } else {
> - vma->vm_page_prot =
> - pgprot_noncached(vm_get_page_prot(vma->vm_flags));
> - }
> -}
> -
> int udl_dumb_create(struct drm_file *file,
> struct drm_device *dev,
> struct drm_mode_create_dumb *args)
> @@ -86,16 +68,21 @@ int udl_dumb_create(struct drm_file *file,
>
> int udl_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
> {
> + struct drm_gem_object *obj;
> int ret;
>
> ret = drm_gem_mmap(filp, vma);
> if (ret)
> return ret;
>
> + obj = vma->vm_private_data;
> +
> vma->vm_flags &= ~VM_PFNMAP;
> vma->vm_flags |= VM_MIXEDMAP;
>
> - update_vm_cache_attr(to_udl_bo(vma->vm_private_data), vma);
> + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
> + if (obj->import_attach)
> + vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
>
> return ret;
> }
> @@ -155,7 +142,7 @@ int udl_gem_vmap(struct udl_gem_object *obj)
> return -ENOMEM;
> return 0;
> }
> -
> +
> ret = udl_gem_get_pages(obj);
> if (ret)
> return ret;
> --
> 2.23.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list