Commit ee8375d5 authored by Daniel Vetter's avatar Daniel Vetter

drm/prime: Make DRIVER_PRIME a no-op

Drivers must fill out the handle_to_fd and fd_to_handle hooks to
enable export/import prime functionality already. The additional
DRIVER_PRIME flag doesn't serve any real purpose, since the overall
flag doesn't even tell you whether import or export or maybe even both
is supported.

Ditch it.

This patch just makes it defunct, subsequent patches will remove it
from all the drivers.

Note this changes the userspace visible errno in some situations from
EOPNOTSUPP to ENOSYS. Userspace already needs to treat both as "no
prime support", so this should break anything.

v2: Improve commit message as suggested by Emil
Reviewed-by: default avatarEmil Velikov <emil.velikov@collabora.com>
Reviewed-by: default avatarEric Anholt <eric@anholt.net>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190614203615.12639-6-daniel.vetter@ffwll.ch
parent ae75f836
...@@ -47,8 +47,7 @@ ...@@ -47,8 +47,7 @@
* between applications, they can't be guessed like the globally unique GEM * between applications, they can't be guessed like the globally unique GEM
* names. * names.
* *
* Drivers that support the PRIME API must set the DRIVER_PRIME bit in the * Drivers that support the PRIME API implement the
* &drm_driver.driver_features field, and implement the
* &drm_driver.prime_handle_to_fd and &drm_driver.prime_fd_to_handle operations. * &drm_driver.prime_handle_to_fd and &drm_driver.prime_fd_to_handle operations.
* GEM based drivers must use drm_gem_prime_handle_to_fd() and * GEM based drivers must use drm_gem_prime_handle_to_fd() and
* drm_gem_prime_fd_to_handle() to implement these. For GEM based drivers the * drm_gem_prime_fd_to_handle() to implement these. For GEM based drivers the
...@@ -363,9 +362,6 @@ int drm_prime_fd_to_handle_ioctl(struct drm_device *dev, void *data, ...@@ -363,9 +362,6 @@ int drm_prime_fd_to_handle_ioctl(struct drm_device *dev, void *data,
{ {
struct drm_prime_handle *args = data; struct drm_prime_handle *args = data;
if (!drm_core_check_feature(dev, DRIVER_PRIME))
return -EOPNOTSUPP;
if (!dev->driver->prime_fd_to_handle) if (!dev->driver->prime_fd_to_handle)
return -ENOSYS; return -ENOSYS;
...@@ -514,9 +510,6 @@ int drm_prime_handle_to_fd_ioctl(struct drm_device *dev, void *data, ...@@ -514,9 +510,6 @@ int drm_prime_handle_to_fd_ioctl(struct drm_device *dev, void *data,
{ {
struct drm_prime_handle *args = data; struct drm_prime_handle *args = data;
if (!drm_core_check_feature(dev, DRIVER_PRIME))
return -EOPNOTSUPP;
if (!dev->driver->prime_handle_to_fd) if (!dev->driver->prime_handle_to_fd)
return -ENOSYS; return -ENOSYS;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment