mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-11 23:27:42 +07:00
drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro
Rename the macro to DRM_GEM_CMA_DRIVER_OPS_VMAP to align naming with SHMEM helpers and drm_gem_cma_prime_import_sg_table_vmap(). An variant of the macro is provided for drivers that override the default .dumb_create callback. Adapt drivers to the changes. v3: * rename macro to signal implicit vmap on imported buffers v2: * provide DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200605073247.4057-3-tzimmermann@suse.de
This commit is contained in:
parent
26eb603b59
commit
06d6620164
@ -620,7 +620,7 @@ EXPORT_SYMBOL(drm_gem_cma_create_object_default_funcs);
|
||||
* address set. This address is released when the object is freed.
|
||||
*
|
||||
* This function can be used as the &drm_driver.gem_prime_import_sg_table
|
||||
* callback. The DRM_GEM_CMA_VMAP_DRIVER_OPS() macro provides a shortcut to set
|
||||
* callback. The &DRM_GEM_CMA_DRIVER_OPS_VMAP macro provides a shortcut to set
|
||||
* the necessary DRM driver operations.
|
||||
*
|
||||
* Returns:
|
||||
|
@ -52,8 +52,7 @@ static struct drm_driver sun4i_drv_driver = {
|
||||
.minor = 0,
|
||||
|
||||
/* GEM Operations */
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
.dumb_create = drm_sun4i_gem_dumb_create,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(drm_sun4i_gem_dumb_create),
|
||||
};
|
||||
|
||||
static int sun4i_drv_bind(struct device *dev)
|
||||
|
@ -112,7 +112,7 @@ static struct drm_driver tidss_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &tidss_fops,
|
||||
.release = tidss_release,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.name = "tidss",
|
||||
.desc = "TI Keystone DSS",
|
||||
.date = "20180215",
|
||||
|
@ -196,7 +196,7 @@ DEFINE_DRM_GEM_CMA_FOPS(hx8357d_fops);
|
||||
static struct drm_driver hx8357d_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &hx8357d_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.debugfs_init = mipi_dbi_debugfs_init,
|
||||
.name = "hx8357d",
|
||||
.desc = "HX8357D",
|
||||
|
@ -346,7 +346,7 @@ DEFINE_DRM_GEM_CMA_FOPS(ili9225_fops);
|
||||
static struct drm_driver ili9225_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &ili9225_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.name = "ili9225",
|
||||
.desc = "Ilitek ILI9225",
|
||||
.date = "20171106",
|
||||
|
@ -152,7 +152,7 @@ DEFINE_DRM_GEM_CMA_FOPS(ili9341_fops);
|
||||
static struct drm_driver ili9341_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &ili9341_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.debugfs_init = mipi_dbi_debugfs_init,
|
||||
.name = "ili9341",
|
||||
.desc = "Ilitek ILI9341",
|
||||
|
@ -165,7 +165,7 @@ DEFINE_DRM_GEM_CMA_FOPS(ili9486_fops);
|
||||
static struct drm_driver ili9486_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &ili9486_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.debugfs_init = mipi_dbi_debugfs_init,
|
||||
.name = "ili9486",
|
||||
.desc = "Ilitek ILI9486",
|
||||
|
@ -156,7 +156,7 @@ DEFINE_DRM_GEM_CMA_FOPS(mi0283qt_fops);
|
||||
static struct drm_driver mi0283qt_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &mi0283qt_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.debugfs_init = mipi_dbi_debugfs_init,
|
||||
.name = "mi0283qt",
|
||||
.desc = "Multi-Inno MI0283QT",
|
||||
|
@ -946,7 +946,7 @@ DEFINE_DRM_GEM_CMA_FOPS(repaper_fops);
|
||||
static struct drm_driver repaper_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &repaper_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.name = "repaper",
|
||||
.desc = "Pervasive Displays RePaper e-ink panels",
|
||||
.date = "20170405",
|
||||
|
@ -285,7 +285,7 @@ DEFINE_DRM_GEM_CMA_FOPS(st7586_fops);
|
||||
static struct drm_driver st7586_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &st7586_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.debugfs_init = mipi_dbi_debugfs_init,
|
||||
.name = "st7586",
|
||||
.desc = "Sitronix ST7586",
|
||||
|
@ -157,7 +157,7 @@ DEFINE_DRM_GEM_CMA_FOPS(st7735r_fops);
|
||||
static struct drm_driver st7735r_driver = {
|
||||
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
|
||||
.fops = &st7735r_fops,
|
||||
DRM_GEM_CMA_VMAP_DRIVER_OPS,
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP,
|
||||
.debugfs_init = mipi_dbi_debugfs_init,
|
||||
.name = "st7735r",
|
||||
.desc = "Sitronix ST7735R",
|
||||
|
@ -110,20 +110,42 @@ struct drm_gem_object *
|
||||
drm_gem_cma_create_object_default_funcs(struct drm_device *dev, size_t size);
|
||||
|
||||
/**
|
||||
* DRM_GEM_CMA_VMAP_DRIVER_OPS - CMA GEM driver operations ensuring a virtual
|
||||
* DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE - CMA GEM driver operations
|
||||
* ensuring a virtual address
|
||||
* on the buffer
|
||||
* @dumb_create_func: callback function for .dumb_create
|
||||
*
|
||||
* This macro provides a shortcut for setting the default GEM operations in the
|
||||
* &drm_driver structure for drivers that need the virtual address also on
|
||||
* 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.
|
||||
*/
|
||||
#define DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(dumb_create_func) \
|
||||
.gem_create_object = drm_gem_cma_create_object_default_funcs, \
|
||||
.dumb_create = (dumb_create_func), \
|
||||
.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_vmap, \
|
||||
.gem_prime_mmap = drm_gem_prime_mmap
|
||||
|
||||
/**
|
||||
* DRM_GEM_CMA_DRIVER_OPS_VMAP - CMA GEM driver operations ensuring a virtual
|
||||
* address on the buffer
|
||||
*
|
||||
* This macro provides a shortcut for setting the default GEM operations in the
|
||||
* &drm_driver structure for drivers that need the virtual address also on
|
||||
* imported buffers.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#define DRM_GEM_CMA_VMAP_DRIVER_OPS \
|
||||
.gem_create_object = drm_gem_cma_create_object_default_funcs, \
|
||||
.dumb_create = drm_gem_cma_dumb_create, \
|
||||
.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_vmap, \
|
||||
.gem_prime_mmap = drm_gem_prime_mmap
|
||||
#define DRM_GEM_CMA_DRIVER_OPS_VMAP \
|
||||
DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(drm_gem_cma_dumb_create)
|
||||
|
||||
struct drm_gem_object *
|
||||
drm_gem_cma_prime_import_sg_table_vmap(struct drm_device *drm,
|
||||
|
Loading…
Reference in New Issue
Block a user