aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_drv.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2017-05-08 18:27:11 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2017-06-02 03:53:43 -0400
commitd6f544f6bf419a5bc65f7f2d070db008d1119097 (patch)
tree634d4fea720707b99c5cb71153f7ac967db2f0e4 /drivers/gpu/drm/omapdrm/omap_drv.c
parenta9e6f9f7d603ef769b4cd33e0a2b61ba48a1058e (diff)
drm: omapdrm: Remove legacy buffer synchronization support
The omapdrm driver uses a custom API to synchronize with the SGX GPU. This is unusable as such in the mainline kernel as the API is only partially implemented and requires additional out-of-tree patches. Furthermore, as no SGX driver is available in the mainline kernel, the API can't be considered as a stable mainline API. Now that the driver supports synchronization through fences, remove legacy buffer synchronization support. The two userspace ioctls are turned into no-ops to avoid breaking userspace and will be removed in the future. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_drv.c')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c53
1 files changed, 4 insertions, 49 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index b4ef3025e3e3..e2e935813cc4 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -365,53 +365,6 @@ static int ioctl_gem_new(struct drm_device *dev, void *data,
365 &args->handle); 365 &args->handle);
366} 366}
367 367
368static int ioctl_gem_cpu_prep(struct drm_device *dev, void *data,
369 struct drm_file *file_priv)
370{
371 struct drm_omap_gem_cpu_prep *args = data;
372 struct drm_gem_object *obj;
373 int ret;
374
375 VERB("%p:%p: handle=%d, op=%x", dev, file_priv, args->handle, args->op);
376
377 obj = drm_gem_object_lookup(file_priv, args->handle);
378 if (!obj)
379 return -ENOENT;
380
381 ret = omap_gem_op_sync(obj, args->op);
382
383 if (!ret)
384 ret = omap_gem_op_start(obj, args->op);
385
386 drm_gem_object_unreference_unlocked(obj);
387
388 return ret;
389}
390
391static int ioctl_gem_cpu_fini(struct drm_device *dev, void *data,
392 struct drm_file *file_priv)
393{
394 struct drm_omap_gem_cpu_fini *args = data;
395 struct drm_gem_object *obj;
396 int ret;
397
398 VERB("%p:%p: handle=%d", dev, file_priv, args->handle);
399
400 obj = drm_gem_object_lookup(file_priv, args->handle);
401 if (!obj)
402 return -ENOENT;
403
404 /* XXX flushy, flushy */
405 ret = 0;
406
407 if (!ret)
408 ret = omap_gem_op_finish(obj, args->op);
409
410 drm_gem_object_unreference_unlocked(obj);
411
412 return ret;
413}
414
415static int ioctl_gem_info(struct drm_device *dev, void *data, 368static int ioctl_gem_info(struct drm_device *dev, void *data,
416 struct drm_file *file_priv) 369 struct drm_file *file_priv)
417{ 370{
@@ -440,9 +393,11 @@ static const struct drm_ioctl_desc ioctls[DRM_COMMAND_END - DRM_COMMAND_BASE] =
440 DRM_AUTH | DRM_MASTER | DRM_ROOT_ONLY), 393 DRM_AUTH | DRM_MASTER | DRM_ROOT_ONLY),
441 DRM_IOCTL_DEF_DRV(OMAP_GEM_NEW, ioctl_gem_new, 394 DRM_IOCTL_DEF_DRV(OMAP_GEM_NEW, ioctl_gem_new,
442 DRM_AUTH | DRM_RENDER_ALLOW), 395 DRM_AUTH | DRM_RENDER_ALLOW),
443 DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_PREP, ioctl_gem_cpu_prep, 396 /* Deprecated, to be removed. */
397 DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_PREP, drm_noop,
444 DRM_AUTH | DRM_RENDER_ALLOW), 398 DRM_AUTH | DRM_RENDER_ALLOW),
445 DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_FINI, ioctl_gem_cpu_fini, 399 /* Deprecated, to be removed. */
400 DRM_IOCTL_DEF_DRV(OMAP_GEM_CPU_FINI, drm_noop,
446 DRM_AUTH | DRM_RENDER_ALLOW), 401 DRM_AUTH | DRM_RENDER_ALLOW),
447 DRM_IOCTL_DEF_DRV(OMAP_GEM_INFO, ioctl_gem_info, 402 DRM_IOCTL_DEF_DRV(OMAP_GEM_INFO, ioctl_gem_info,
448 DRM_AUTH | DRM_RENDER_ALLOW), 403 DRM_AUTH | DRM_RENDER_ALLOW),