diff mbox series

drm/doc: document that PRIME import/export is always supported

Message ID 20230712183156.191445-1-contact@emersion.fr (mailing list archive)
State New, archived
Headers show
Series drm/doc: document that PRIME import/export is always supported | expand

Commit Message

Simon Ser July 12, 2023, 6:32 p.m. UTC
Since commit 6b85aa68d9d5 ("drm: Enable PRIME import/export for all
drivers"), import/export is always supported. Document this so that
user-space knows what to expect.

Signed-off-by: Simon Ser <contact@emersion.fr>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Jeffrey Hugo <quic_jhugo@quicinc.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 include/uapi/drm/drm.h | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Jeffrey Hugo July 12, 2023, 6:37 p.m. UTC | #1
On 7/12/2023 12:32 PM, Simon Ser wrote:
> Since commit 6b85aa68d9d5 ("drm: Enable PRIME import/export for all
> drivers"), import/export is always supported. Document this so that
> user-space knows what to expect.
> 
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Jeffrey Hugo <quic_jhugo@quicinc.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>

Seems reasonable to me.
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Thomas Zimmermann July 13, 2023, 5:09 a.m. UTC | #2
Hi

Am 12.07.23 um 20:32 schrieb Simon Ser:
> Since commit 6b85aa68d9d5 ("drm: Enable PRIME import/export for all
> drivers"), import/export is always supported. Document this so that
> user-space knows what to expect.
> 
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Jeffrey Hugo <quic_jhugo@quicinc.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>   include/uapi/drm/drm.h | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
> index a87bbbbca2d4..56c194df527e 100644
> --- a/include/uapi/drm/drm.h
> +++ b/include/uapi/drm/drm.h
> @@ -673,6 +673,9 @@ struct drm_gem_open {
>    * Bitfield of supported PRIME sharing capabilities. See &DRM_PRIME_CAP_IMPORT
>    * and &DRM_PRIME_CAP_EXPORT.
>    *
> + * Starting from kernel version 6.6, both &DRM_PRIME_CAP_IMPORT and
> + * &DRM_PRIME_CAP_EXPORT are always advertised.
> + *

When people port these changes into their trees the version becomes 
meaningless. There are so many "enterprise kernels" that combine whole 
subsystems from different upstream releases.

That makes me wonder if such documentation makes sense. We want to avoid 
a situation where userspace does

if (v6.6)
   do()
else if (test_flags())
   do()

Best regards
Thomas

>    * PRIME buffers are exposed as dma-buf file descriptors. See
>    * Documentation/gpu/drm-mm.rst, section "PRIME Buffer Sharing".
>    */
> @@ -682,6 +685,8 @@ struct drm_gem_open {
>    *
>    * If this bit is set in &DRM_CAP_PRIME, the driver supports importing PRIME
>    * buffers via the &DRM_IOCTL_PRIME_FD_TO_HANDLE ioctl.
> + *
> + * Starting from kernel version 6.6, this bit is always set in &DRM_CAP_PRIME.
>    */
>   #define  DRM_PRIME_CAP_IMPORT		0x1
>   /**
> @@ -689,6 +694,8 @@ struct drm_gem_open {
>    *
>    * If this bit is set in &DRM_CAP_PRIME, the driver supports exporting PRIME
>    * buffers via the &DRM_IOCTL_PRIME_HANDLE_TO_FD ioctl.
> + *
> + * Starting from kernel version 6.6, this bit is always set in &DRM_CAP_PRIME.
>    */
>   #define  DRM_PRIME_CAP_EXPORT		0x2
>   /**
Simon Ser July 13, 2023, 7:17 a.m. UTC | #3
On Thursday, July 13th, 2023 at 07:09, Thomas Zimmermann <tzimmermann@suse.de> wrote:

> > + * Starting from kernel version 6.6, both &DRM_PRIME_CAP_IMPORT and
> > + * &DRM_PRIME_CAP_EXPORT are always advertised.
> > + *
> 
> When people port these changes into their trees the version becomes
> meaningless. There are so many "enterprise kernels" that combine whole
> subsystems from different upstream releases.
> 
> That makes me wonder if such documentation makes sense. We want to avoid
> a situation where userspace does
> 
> if (v6.6)
> do()
> else if (test_flags())
> do()

Daniel Vetter asked for specific kernel versions in b603e810f740
("drm/uapi: document kernel capabilities"). It allows user-space to
figure out how widespread a cap is.
Thomas Zimmermann July 13, 2023, 7:45 a.m. UTC | #4
Am 13.07.23 um 09:17 schrieb Simon Ser:
> On Thursday, July 13th, 2023 at 07:09, Thomas Zimmermann <tzimmermann@suse.de> wrote:
> 
>>> + * Starting from kernel version 6.6, both &DRM_PRIME_CAP_IMPORT and
>>> + * &DRM_PRIME_CAP_EXPORT are always advertised.
>>> + *
>>
>> When people port these changes into their trees the version becomes
>> meaningless. There are so many "enterprise kernels" that combine whole
>> subsystems from different upstream releases.
>>
>> That makes me wonder if such documentation makes sense. We want to avoid
>> a situation where userspace does
>>
>> if (v6.6)
>> do()
>> else if (test_flags())
>> do()
> 
> Daniel Vetter asked for specific kernel versions in b603e810f740
> ("drm/uapi: document kernel capabilities"). It allows user-space to
> figure out how widespread a cap is.

Well, OK then... :)
diff mbox series

Patch

diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
index a87bbbbca2d4..56c194df527e 100644
--- a/include/uapi/drm/drm.h
+++ b/include/uapi/drm/drm.h
@@ -673,6 +673,9 @@  struct drm_gem_open {
  * Bitfield of supported PRIME sharing capabilities. See &DRM_PRIME_CAP_IMPORT
  * and &DRM_PRIME_CAP_EXPORT.
  *
+ * Starting from kernel version 6.6, both &DRM_PRIME_CAP_IMPORT and
+ * &DRM_PRIME_CAP_EXPORT are always advertised.
+ *
  * PRIME buffers are exposed as dma-buf file descriptors. See
  * Documentation/gpu/drm-mm.rst, section "PRIME Buffer Sharing".
  */
@@ -682,6 +685,8 @@  struct drm_gem_open {
  *
  * If this bit is set in &DRM_CAP_PRIME, the driver supports importing PRIME
  * buffers via the &DRM_IOCTL_PRIME_FD_TO_HANDLE ioctl.
+ *
+ * Starting from kernel version 6.6, this bit is always set in &DRM_CAP_PRIME.
  */
 #define  DRM_PRIME_CAP_IMPORT		0x1
 /**
@@ -689,6 +694,8 @@  struct drm_gem_open {
  *
  * If this bit is set in &DRM_CAP_PRIME, the driver supports exporting PRIME
  * buffers via the &DRM_IOCTL_PRIME_HANDLE_TO_FD ioctl.
+ *
+ * Starting from kernel version 6.6, this bit is always set in &DRM_CAP_PRIME.
  */
 #define  DRM_PRIME_CAP_EXPORT		0x2
 /**