On Thu, Jun 09, 2022 at 10:42:11AM -0700, Rob Clark wrote: > From: Rob Clark <robdclark@xxxxxxxxxxxx> > > 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@xxxxxxxxxxxx> > Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx> 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