summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xen/xen_drm_front.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/xen/xen_drm_front.c')
-rw-r--r--drivers/gpu/drm/xen/xen_drm_front.c62
1 files changed, 10 insertions, 52 deletions
diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 4a08b77f1c9e..1b0ea9ac330e 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -12,7 +12,6 @@
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_gem.h>
-#include <drm/drm_gem_cma_helper.h>
#include <linux/of_device.h>
@@ -167,10 +166,9 @@ int xen_drm_front_mode_set(struct xen_drm_front_drm_pipeline *pipeline,
return ret;
}
-static int be_dbuf_create_int(struct xen_drm_front_info *front_info,
+int xen_drm_front_dbuf_create(struct xen_drm_front_info *front_info,
u64 dbuf_cookie, u32 width, u32 height,
- u32 bpp, u64 size, struct page **pages,
- struct sg_table *sgt)
+ u32 bpp, u64 size, struct page **pages)
{
struct xen_drm_front_evtchnl *evtchnl;
struct xen_drm_front_shbuf *shbuf;
@@ -187,7 +185,6 @@ static int be_dbuf_create_int(struct xen_drm_front_info *front_info,
buf_cfg.xb_dev = front_info->xb_dev;
buf_cfg.pages = pages;
buf_cfg.size = size;
- buf_cfg.sgt = sgt;
buf_cfg.be_alloc = front_info->cfg.be_alloc;
shbuf = xen_drm_front_shbuf_alloc(&buf_cfg);
@@ -237,22 +234,6 @@ fail:
return ret;
}
-int xen_drm_front_dbuf_create_from_sgt(struct xen_drm_front_info *front_info,
- u64 dbuf_cookie, u32 width, u32 height,
- u32 bpp, u64 size, struct sg_table *sgt)
-{
- return be_dbuf_create_int(front_info, dbuf_cookie, width, height,
- bpp, size, NULL, sgt);
-}
-
-int xen_drm_front_dbuf_create_from_pages(struct xen_drm_front_info *front_info,
- u64 dbuf_cookie, u32 width, u32 height,
- u32 bpp, u64 size, struct page **pages)
-{
- return be_dbuf_create_int(front_info, dbuf_cookie, width, height,
- bpp, size, pages, NULL);
-}
-
static int xen_drm_front_dbuf_destroy(struct xen_drm_front_info *front_info,
u64 dbuf_cookie)
{
@@ -434,24 +415,11 @@ static int xen_drm_drv_dumb_create(struct drm_file *filp,
goto fail;
}
- /*
- * In case of CONFIG_DRM_XEN_FRONTEND_CMA gem_obj is constructed
- * via DRM CMA helpers and doesn't have ->pages allocated
- * (xendrm_gem_get_pages will return NULL), but instead can provide
- * sg table
- */
- if (xen_drm_front_gem_get_pages(obj))
- ret = xen_drm_front_dbuf_create_from_pages(drm_info->front_info,
- xen_drm_front_dbuf_to_cookie(obj),
- args->width, args->height, args->bpp,
- args->size,
- xen_drm_front_gem_get_pages(obj));
- else
- ret = xen_drm_front_dbuf_create_from_sgt(drm_info->front_info,
- xen_drm_front_dbuf_to_cookie(obj),
- args->width, args->height, args->bpp,
- args->size,
- xen_drm_front_gem_get_sg_table(obj));
+ ret = xen_drm_front_dbuf_create(drm_info->front_info,
+ xen_drm_front_dbuf_to_cookie(obj),
+ args->width, args->height, args->bpp,
+ args->size,
+ xen_drm_front_gem_get_pages(obj));
if (ret)
goto fail_backend;
@@ -523,11 +491,7 @@ static const struct file_operations xen_drm_dev_fops = {
.poll = drm_poll,
.read = drm_read,
.llseek = no_llseek,
-#ifdef CONFIG_DRM_XEN_FRONTEND_CMA
- .mmap = drm_gem_cma_mmap,
-#else
.mmap = xen_drm_front_gem_mmap,
-#endif
};
static const struct vm_operations_struct xen_drm_drv_vm_ops = {
@@ -547,6 +511,9 @@ static struct drm_driver xen_drm_driver = {
.gem_prime_export = drm_gem_prime_export,
.gem_prime_import_sg_table = xen_drm_front_gem_import_sg_table,
.gem_prime_get_sg_table = xen_drm_front_gem_get_sg_table,
+ .gem_prime_vmap = xen_drm_front_gem_prime_vmap,
+ .gem_prime_vunmap = xen_drm_front_gem_prime_vunmap,
+ .gem_prime_mmap = xen_drm_front_gem_prime_mmap,
.dumb_create = xen_drm_drv_dumb_create,
.fops = &xen_drm_dev_fops,
.name = "xendrm-du",
@@ -555,15 +522,6 @@ static struct drm_driver xen_drm_driver = {
.major = 1,
.minor = 0,
-#ifdef CONFIG_DRM_XEN_FRONTEND_CMA
- .gem_prime_vmap = drm_gem_cma_prime_vmap,
- .gem_prime_vunmap = drm_gem_cma_prime_vunmap,
- .gem_prime_mmap = drm_gem_cma_prime_mmap,
-#else
- .gem_prime_vmap = xen_drm_front_gem_prime_vmap,
- .gem_prime_vunmap = xen_drm_front_gem_prime_vunmap,
- .gem_prime_mmap = xen_drm_front_gem_prime_mmap,
-#endif
};
static int xen_drm_drv_init(struct xen_drm_front_info *front_info)