lkml.org 
[lkml]   [2022]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v3 1/2] drm: Add DRM_GEM_FOPS
From


Am 15.06.22 um 14:45 schrieb Dmitry Baryshkov:
> On 09/06/2022 20:42, 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>
>
> I suspect that with Tomas's ack we can pick this through the drm/msm. Is
> this correct? (I'll then pick it for the msm-lumag).

Sure, go ahead.

>
>> ---
>>   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);
>
>

--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2022-06-15 15:47    [W:0.071 / U:3.472 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site