lkml.org 
[lkml]   [2022]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 1/2] drm: Add DRM_GEM_FOPS
    On Thu, Jun 09, 2022 at 10:42:11AM -0700, Rob Clark wrote:
    > From: Rob Clark <robdclark@chromium.org>
    >
    > The DEFINE_DRM_GEM_FOPS() helper is a bit limiting if a driver wants to
    > provide additional file ops, like show_fdinfo().
    >
    > v2: Split out DRM_GEM_FOPS instead of making DEFINE_DRM_GEM_FOPS
    > varardic
    > v3: nits
    >
    > Signed-off-by: Rob Clark <robdclark@chromium.org>
    > Acked-by: Thomas Zimmermann <tzimmermann@suse.de>

    We're at three drivers, maybe it'd be better if this is more standardized?
    I feel like we're opening a bit a can of worms here where everyone just
    has some good odl fashioned fun. It's at least much better documented than
    the old property proliferation :-)
    -Daniel

    > ---
    > include/drm/drm_gem.h | 26 ++++++++++++++++++--------
    > 1 file changed, 18 insertions(+), 8 deletions(-)
    >
    > diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h
    > index 9d7c61a122dc..87cffc9efa85 100644
    > --- a/include/drm/drm_gem.h
    > +++ b/include/drm/drm_gem.h
    > @@ -314,6 +314,23 @@ struct drm_gem_object {
    > const struct drm_gem_object_funcs *funcs;
    > };
    >
    > +/**
    > + * DRM_GEM_FOPS - Default drm GEM file operations
    > + *
    > + * This macro provides a shorthand for setting the GEM file ops in the
    > + * &file_operations structure. If all you need are the default ops, use
    > + * DEFINE_DRM_GEM_FOPS instead.
    > + */
    > +#define DRM_GEM_FOPS \
    > + .open = drm_open,\
    > + .release = drm_release,\
    > + .unlocked_ioctl = drm_ioctl,\
    > + .compat_ioctl = drm_compat_ioctl,\
    > + .poll = drm_poll,\
    > + .read = drm_read,\
    > + .llseek = noop_llseek,\
    > + .mmap = drm_gem_mmap
    > +
    > /**
    > * DEFINE_DRM_GEM_FOPS() - macro to generate file operations for GEM drivers
    > * @name: name for the generated structure
    > @@ -330,14 +347,7 @@ struct drm_gem_object {
    > #define DEFINE_DRM_GEM_FOPS(name) \
    > static const struct file_operations name = {\
    > .owner = THIS_MODULE,\
    > - .open = drm_open,\
    > - .release = drm_release,\
    > - .unlocked_ioctl = drm_ioctl,\
    > - .compat_ioctl = drm_compat_ioctl,\
    > - .poll = drm_poll,\
    > - .read = drm_read,\
    > - .llseek = noop_llseek,\
    > - .mmap = drm_gem_mmap,\
    > + DRM_GEM_FOPS,\
    > }
    >
    > void drm_gem_object_release(struct drm_gem_object *obj);
    > --
    > 2.36.1
    >

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

    \
     
     \ /
      Last update: 2022-06-24 22:51    [W:2.629 / U:0.504 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site