[PATCH 0/4] RFC: drm: Allow driver-specific ioctls to be registered

Daniel Vetter daniel at ffwll.ch
Mon Sep 4 15:25:31 UTC 2017


On Mon, Sep 04, 2017 at 06:16:41PM +0300, Marius Vlad wrote:
> From: Marius Vlad <marius.vlad0 at gmail.com>
> 
> Currently driver-specific ioctls have to be declared static and are confined to
> DRM core driver. This patch series provides the means to remove those constrains
> and allow to register driver-specific ioctls dynamically by keeping a list of
> registered ioctls in struct drm_driver, then each component of the driver can
> then register its own specific ioctls using this interface.
> 
> The driver must assign ioctl_register/ioctl_deregister in
> its drm_driver structure in order to make use of it. 
> 
> While SoC drivers benefit the most from this approach (by not polluting DRM core
> driver and allowing sub drivers to implement and register driver-specific 
> ioctls dynamically), further patches shows how easy is to convert drm/i915 to 
> this approach by registering GEM and perf ioctls separately.

What exactly is the problem you're trying to solve?

This awefully smells like some neat way to make loading driver modules for
blob userspace easy ... And I can't think of any other thing you could use
this for.

And even for the blob userspace use case: Create a separate drm driver
instance, share buffers and fences with dma_buf and dma_fence, and you're
all good. I really have no idea what this is good for, but maybe I'm
missing something?
-Daniel

> 
> Marius Vlad (4):
>   drm/gpu: Support registering driver-specific ioctls dynamically
>   drm/i915: Convert i915 to use ioctl_register/ioctl_deregister.
>   drm/i915: Register perf_ ioctls directly in i915_perf file.
>   drm/i915: Register GEM ioctls directly in i915_gem file.
> 
>  drivers/gpu/drm/drm_drv.c        |   1 +
>  drivers/gpu/drm/drm_ioctl.c      |  99 ++++++++++++++++++++++++++++++++++--
>  drivers/gpu/drm/i915/i915_drv.c  | 107 +++++++++++++++------------------------
>  drivers/gpu/drm/i915/i915_gem.c  |  52 +++++++++++++++++++
>  drivers/gpu/drm/i915/i915_perf.c |  21 ++++++++
>  include/drm/drm_drv.h            |  34 +++++++++++++
>  include/drm/drm_ioctl.h          |   6 +++
>  7 files changed, 249 insertions(+), 71 deletions(-)
> 
> -- 
> 2.9.3
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list