Hi
Am 05.06.20 um 10:16 schrieb Laurent Pinchart:
Hi Thomas,
Thank you for the patch.
On Fri, Jun 05, 2020 at 09:32:07AM +0200, Thomas Zimmermann wrote:
The macro to DRM_GEM_CMA_DRIVER_OPS sets GEM callbacks in struct drm_driver to their defaults for CMA. An variant of the macro is provided for drivers
s/An variant/A variant/
that override the default .dumb_create callback. Adapt drivers to the changes.
Signed-off-by: Thomas Zimmermann tzimmermann@suse.de Reviewed-by: Sam Ravnborg sam@ravnborg.org Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Acked-by: Emil Velikov emil.velikov@collabora.com
include/drm/drm_gem_cma_helper.h | 46 +++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-)
diff --git a/include/drm/drm_gem_cma_helper.h b/include/drm/drm_gem_cma_helper.h index 2cdf333ae585d..5e1e595c0e72d 100644 --- a/include/drm/drm_gem_cma_helper.h +++ b/include/drm/drm_gem_cma_helper.h @@ -109,6 +109,42 @@ void drm_gem_cma_prime_vunmap(struct drm_gem_object *obj, void *vaddr); struct drm_gem_object * drm_gem_cma_create_object_default_funcs(struct drm_device *dev, size_t size);
+/**
- DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE - CMA GEM driver operations
- @dumb_create_func: callback function for .dumb_create
- This macro provides a shortcut for setting the default GEM operations in the
- &drm_driver structure.
- This macro is a variant of DRM_GEM_CMA_DRIVER_OPS for drivers that
- override the default implementation of &struct rm_driver.dumb_create. Use
- DRM_GEM_CMA_DRIVER_OPS if possible. Drivers that require a virtual address
- on imported buffers should use
- DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE() instead.
- */
+#define DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(dumb_create_func) \
- .gem_create_object = drm_gem_cma_create_object_default_funcs, \
- .dumb_create = (dumb_create_func), \
Do we need parentheses here ?
That can probably be removed.
Best regards Thomas
- .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \
- .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \
- .gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table, \
- .gem_prime_mmap = drm_gem_cma_prime_mmap
+/**
- DRM_GEM_CMA_DRIVER_OPS - CMA GEM driver operations
- This macro provides a shortcut for setting the default GEM operations in the
- &drm_driver structure.
- Drivers that come with their own implementation of
- &struct drm_driver.dumb_create should use
- DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() instead. Use
- DRM_GEM_CMA_DRIVER_OPS if possible. Drivers that require a virtual address
- on imported buffers should use DRM_GEM_CMA_DRIVER_OPS_VMAP instead.
- */
+#define DRM_GEM_CMA_DRIVER_OPS \
- DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(drm_gem_cma_dumb_create)
/**
- DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE - CMA GEM driver operations
ensuring a virtual address
@@ -120,8 +156,10 @@ drm_gem_cma_create_object_default_funcs(struct drm_device *dev, size_t size);
- imported buffers.
- This macro is a variant of DRM_GEM_CMA_DRIVER_OPS_VMAP for drivers that
- override the default implementation of &struct rm_driver.dumb_create. Use
- DRM_GEM_CMA_DRIVER_OPS_VMAP if possible.
- override the default implementation of &struct drm_driver.dumb_create. Use
- DRM_GEM_CMA_DRIVER_OPS_VMAP if possible. Drivers that do not require a
- virtual address on imported buffers should use
*/
- DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() instead.
#define DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(dumb_create_func) \ .gem_create_object = drm_gem_cma_create_object_default_funcs, \ @@ -142,7 +180,9 @@ drm_gem_cma_create_object_default_funcs(struct drm_device *dev, size_t size);
- Drivers that come with their own implementation of
- &struct drm_driver.dumb_create should use
- DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE() instead. Use
- DRM_GEM_CMA_DRIVER_OPS_VMAP if possible.
- DRM_GEM_CMA_DRIVER_OPS_VMAP if possible. Drivers that do not require a
- virtual address on imported buffers should use DRM_GEM_CMA_DRIVER_OPS
*/
- instead.
#define DRM_GEM_CMA_DRIVER_OPS_VMAP \ DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(drm_gem_cma_dumb_create)