diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c index 16f88339866f..065fa7fde336 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c @@ -58,7 +58,7 @@ static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper, size = mode_cmd.pitches[0] * mode_cmd.height; - rk_obj = rockchip_gem_create_object(dev, size, true); + rk_obj = rockchip_gem_create_object(dev, size, true, 0); if (IS_ERR(rk_obj)) return -ENOMEM; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 71c428e2d8f2..c508e10c76b2 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -619,7 +619,7 @@ static struct rockchip_gem_object * struct rockchip_gem_object * rockchip_gem_create_object(struct drm_device *drm, unsigned int size, - bool alloc_kmap) + bool alloc_kmap, unsigned int flags) { struct rockchip_gem_object *rk_obj; int ret; @@ -627,6 +627,7 @@ rockchip_gem_create_object(struct drm_device *drm, unsigned int size, rk_obj = rockchip_gem_alloc_object(drm, size); if (IS_ERR(rk_obj)) return rk_obj; + rk_obj->flags = flags; ret = rockchip_gem_alloc_buf(rk_obj, alloc_kmap); if (ret) @@ -675,13 +676,13 @@ void rockchip_gem_free_object(struct drm_gem_object *obj) static struct rockchip_gem_object * rockchip_gem_create_with_handle(struct drm_file *file_priv, struct drm_device *drm, unsigned int size, - unsigned int *handle) + unsigned int *handle, unsigned int flags) { struct rockchip_gem_object *rk_obj; struct drm_gem_object *obj; int ret; - rk_obj = rockchip_gem_create_object(drm, size, false); + rk_obj = rockchip_gem_create_object(drm, size, false, flags); if (IS_ERR(rk_obj)) return ERR_CAST(rk_obj); @@ -727,7 +728,7 @@ int rockchip_gem_dumb_create(struct drm_file *file_priv, args->size = args->pitch * args->height; rk_obj = rockchip_gem_create_with_handle(file_priv, dev, args->size, - &args->handle); + &args->handle, args->flags); return PTR_ERR_OR_ZERO(rk_obj); } @@ -873,7 +874,7 @@ int rockchip_gem_create_ioctl(struct drm_device *dev, void *data, struct rockchip_gem_object *rk_obj; rk_obj = rockchip_gem_create_with_handle(file_priv, dev, args->size, - &args->handle); + &args->handle, args->flags); return PTR_ERR_OR_ZERO(rk_obj); } diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h index 1e666297dc71..e288890d609d 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.h @@ -52,8 +52,8 @@ int rockchip_gem_mmap_buf(struct drm_gem_object *obj, struct vm_area_struct *vma); struct rockchip_gem_object * - rockchip_gem_create_object(struct drm_device *drm, unsigned int size, - bool alloc_kmap); +rockchip_gem_create_object(struct drm_device *drm, unsigned int size, + bool alloc_kmap, unsigned int flags); void rockchip_gem_free_object(struct drm_gem_object *obj); diff --git a/include/uapi/drm/rockchip_drm.h b/include/uapi/drm/rockchip_drm.h index 27f4e2c8b7f5..089525dc47e3 100644 --- a/include/uapi/drm/rockchip_drm.h +++ b/include/uapi/drm/rockchip_drm.h @@ -35,7 +35,7 @@ enum drm_rockchip_gem_mem_type { ROCKCHIP_BO_WC = 1 << 2, ROCKCHIP_BO_SECURE = 1 << 3, ROCKCHIP_BO_MASK = ROCKCHIP_BO_CONTIG | ROCKCHIP_BO_CACHABLE | - ROCKCHIP_BO_WC + ROCKCHIP_BO_WC | ROCKCHIP_BO_SECURE, }; /**