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 |
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>
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 > /**
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.
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 --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 /**
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(+)