On Mon, Sep 04, 2017 at 06:16:41PM +0300, Marius Vlad wrote:
> From: Marius Vlad <marius.vlad0@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 What exactly is the problem you're trying to solve?
> 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.
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