dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions
@ 2020-06-03  8:31 Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 01/23] drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro Thomas Zimmermann
                   ` (22 more replies)
  0 siblings, 23 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel

Most of the CMA-based drivers use the default implementation for the
callbacks in struct drm_driver. With this patch, these interfaces are
initialized with a common helper macro and GEM object functions replace
several deprecated interfaces.

The first patch updates the existing macro to similar naming as with
SHMEM and adds a helper for drivers that override the default implementation
for .dumb_create(). The remaining patches convert the drivers. The aspeed
driver already uses GEM object functions and only changes to the initializer
macro. The kirin driver also changes to the default dumb_create function.

I don't have much of the hardware, so it's only compile-tested on aarch64,
arm and x86-64 only. Several patches have Tested-by tags. The aspeed driver
has used the implemented scheme for a while.

v2:
	* add more detailed commit messages (Laurent, Sam)
	* use default .dumb_create implementation in kirin (Emil)
	* fix zte build error (Sam, Emil)
	* introduce DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE (everyone)

Thomas Zimmermann (23):
  drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro
  drm/arc: Use GEM CMA object functions
  drm/arm: Use GEM CMA object functions
  drm/aspeed: Set driver CMA functions with DRM_GEM_CMA_DRIVER_OPS
  drm/atmel-hlcdc: Use GEM CMA object functions
  drm/fsl-dcu: Use GEM CMA object functions
  drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create()
  drm/hisilicon/kirin: Use GEM CMA object functions
  drm/imx: Use GEM CMA object functions
  drm/ingenic: Use GEM CMA object functions
  drm/komeda: Use GEM CMA object functions
  drm/malidp: Use GEM CMA object functions
  drm/mcde: Use GEM CMA object functions
  drm/meson: Use GEM CMA object functions
  drm/mxsfb: Use GEM CMA object functions
  drm/rcar-du: Use GEM CMA object functions
  drm/shmobile: Use GEM CMA object functions
  drm/stm: Use GEM CMA object functions
  drm/sti: Use GEM CMA object functions
  drm/tilcdc: Use GEM CMA object functions
  drm/tv200: Use GEM CMA object functions
  drm/zte: Use GEM CMA object functions
  drm: Remove struct drm_driver.gem_print_info

 drivers/gpu/drm/arc/arcpgu_drv.c              | 12 +-------
 .../gpu/drm/arm/display/komeda/komeda_kms.c   | 11 +------
 drivers/gpu/drm/arm/hdlcd_drv.c               | 12 +-------
 drivers/gpu/drm/arm/malidp_drv.c              | 11 +------
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c       |  7 +----
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c  | 11 +------
 drivers/gpu/drm/drm_gem.c                     |  2 --
 drivers/gpu/drm/drm_gem_cma_helper.c          |  2 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c     | 11 +------
 .../gpu/drm/hisilicon/kirin/kirin_drm_ade.c   | 12 +-------
 drivers/gpu/drm/imx/imx-drm-core.c            | 12 +-------
 drivers/gpu/drm/ingenic/ingenic-drm.c         | 13 +-------
 drivers/gpu/drm/mcde/mcde_drv.c               | 12 +-------
 drivers/gpu/drm/meson/meson_drv.c             | 15 ++--------
 drivers/gpu/drm/mxsfb/mxsfb_drv.c             | 11 +------
 drivers/gpu/drm/rcar-du/rcar_du_drv.c         | 11 +------
 drivers/gpu/drm/shmobile/shmob_drm_drv.c      | 11 +------
 drivers/gpu/drm/sti/sti_drv.c                 | 12 +-------
 drivers/gpu/drm/stm/drv.c                     | 11 +------
 drivers/gpu/drm/sun4i/sun4i_drv.c             |  3 +-
 drivers/gpu/drm/tidss/tidss_drv.c             |  2 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c           | 13 +-------
 drivers/gpu/drm/tiny/hx8357d.c                |  2 +-
 drivers/gpu/drm/tiny/ili9225.c                |  2 +-
 drivers/gpu/drm/tiny/ili9341.c                |  2 +-
 drivers/gpu/drm/tiny/ili9486.c                |  2 +-
 drivers/gpu/drm/tiny/mi0283qt.c               |  2 +-
 drivers/gpu/drm/tiny/repaper.c                |  2 +-
 drivers/gpu/drm/tiny/st7586.c                 |  2 +-
 drivers/gpu/drm/tiny/st7735r.c                |  2 +-
 drivers/gpu/drm/tve200/tve200_drv.c           | 12 +-------
 drivers/gpu/drm/zte/zx_drm_drv.c              | 11 +------
 include/drm/drm_drv.h                         | 17 -----------
 include/drm/drm_gem_cma_helper.h              | 30 ++++++++++++++++---
 34 files changed, 58 insertions(+), 245 deletions(-)

--
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v2 01/23] drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 02/23] drm/arc: Use GEM CMA object functions Thomas Zimmermann
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

Rename the macro to DRM_GEM_CMA_DRIVER_OPS to align with SHMEM
helpers. An internal version is provided for drivers that override
the default .dumb_create callback. Adapt drivers to the changes.

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>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/drm_gem_cma_helper.c |  2 +-
 drivers/gpu/drm/sun4i/sun4i_drv.c    |  3 +--
 drivers/gpu/drm/tidss/tidss_drv.c    |  2 +-
 drivers/gpu/drm/tiny/hx8357d.c       |  2 +-
 drivers/gpu/drm/tiny/ili9225.c       |  2 +-
 drivers/gpu/drm/tiny/ili9341.c       |  2 +-
 drivers/gpu/drm/tiny/ili9486.c       |  2 +-
 drivers/gpu/drm/tiny/mi0283qt.c      |  2 +-
 drivers/gpu/drm/tiny/repaper.c       |  2 +-
 drivers/gpu/drm/tiny/st7586.c        |  2 +-
 drivers/gpu/drm/tiny/st7735r.c       |  2 +-
 include/drm/drm_gem_cma_helper.h     | 30 ++++++++++++++++++++++++----
 12 files changed, 37 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c
index b3db3ca7bd7a7..322a695608607 100644
--- a/drivers/gpu/drm/drm_gem_cma_helper.c
+++ b/drivers/gpu/drm/drm_gem_cma_helper.c
@@ -620,7 +620,7 @@ EXPORT_SYMBOL(drm_cma_gem_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 macro provides a shortcut to set
  * the necessary DRM driver operations.
  *
  * Returns:
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index 328272ff77d84..94a90961284ce 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -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_WITH_DUMB_CREATE(drm_sun4i_gem_dumb_create),
 };
 
 static int sun4i_drv_bind(struct device *dev)
diff --git a/drivers/gpu/drm/tidss/tidss_drv.c b/drivers/gpu/drm/tidss/tidss_drv.c
index 99edc66ebdef2..1753cdc74ebda 100644
--- a/drivers/gpu/drm/tidss/tidss_drv.c
+++ b/drivers/gpu/drm/tidss/tidss_drv.c
@@ -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,
 	.name			= "tidss",
 	.desc			= "TI Keystone DSS",
 	.date			= "20180215",
diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
index b4bc358a3269a..592da71d7ca70 100644
--- a/drivers/gpu/drm/tiny/hx8357d.c
+++ b/drivers/gpu/drm/tiny/hx8357d.c
@@ -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,
 	.debugfs_init		= mipi_dbi_debugfs_init,
 	.name			= "hx8357d",
 	.desc			= "HX8357D",
diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
index d1a5ab6747d5c..368ff6c8a1efb 100644
--- a/drivers/gpu/drm/tiny/ili9225.c
+++ b/drivers/gpu/drm/tiny/ili9225.c
@@ -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,
 	.name			= "ili9225",
 	.desc			= "Ilitek ILI9225",
 	.date			= "20171106",
diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
index bb819f45a5d3b..e1b9043ef7a0a 100644
--- a/drivers/gpu/drm/tiny/ili9341.c
+++ b/drivers/gpu/drm/tiny/ili9341.c
@@ -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,
 	.debugfs_init		= mipi_dbi_debugfs_init,
 	.name			= "ili9341",
 	.desc			= "Ilitek ILI9341",
diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
index 2702ea557d297..90a17f40fdf0c 100644
--- a/drivers/gpu/drm/tiny/ili9486.c
+++ b/drivers/gpu/drm/tiny/ili9486.c
@@ -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,
 	.debugfs_init		= mipi_dbi_debugfs_init,
 	.name			= "ili9486",
 	.desc			= "Ilitek ILI9486",
diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
index 08ac549ab0f7f..6624c2098fba2 100644
--- a/drivers/gpu/drm/tiny/mi0283qt.c
+++ b/drivers/gpu/drm/tiny/mi0283qt.c
@@ -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,
 	.debugfs_init		= mipi_dbi_debugfs_init,
 	.name			= "mi0283qt",
 	.desc			= "Multi-Inno MI0283QT",
diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
index 1c0e7169545b4..877dcece25828 100644
--- a/drivers/gpu/drm/tiny/repaper.c
+++ b/drivers/gpu/drm/tiny/repaper.c
@@ -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,
 	.name			= "repaper",
 	.desc			= "Pervasive Displays RePaper e-ink panels",
 	.date			= "20170405",
diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c
index 2a1fae422f7a2..ec84bdc51f60d 100644
--- a/drivers/gpu/drm/tiny/st7586.c
+++ b/drivers/gpu/drm/tiny/st7586.c
@@ -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,
 	.debugfs_init		= mipi_dbi_debugfs_init,
 	.name			= "st7586",
 	.desc			= "Sitronix ST7586",
diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c
index 0af1b15efdf8a..cfd4933f3b30c 100644
--- a/drivers/gpu/drm/tiny/st7735r.c
+++ b/drivers/gpu/drm/tiny/st7735r.c
@@ -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,
 	.debugfs_init		= mipi_dbi_debugfs_init,
 	.name			= "st7735r",
 	.desc			= "Sitronix ST7735R",
diff --git a/include/drm/drm_gem_cma_helper.h b/include/drm/drm_gem_cma_helper.h
index 947ac95eb24a9..75c0eebc663ca 100644
--- a/include/drm/drm_gem_cma_helper.h
+++ b/include/drm/drm_gem_cma_helper.h
@@ -110,21 +110,43 @@ struct drm_gem_object *
 drm_cma_gem_create_object_default_funcs(struct drm_device *dev, size_t size);
 
 /**
- * DRM_GEM_CMA_VMAP_DRIVER_OPS - CMA GEM driver operations ensuring a virtual
- *                               address on the buffer
+ * DRM_GEM_CMA_DRIVER_OPS_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 for drivers that
+ * override the default implementation of &struct rm_driver.dumb_create. Use
+ * DRM_GEM_CMA_DRIVER_OPS if possible.
  */
-#define DRM_GEM_CMA_VMAP_DRIVER_OPS \
+#define DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(dumb_create_func) \
 	.gem_create_object	= drm_cma_gem_create_object_default_funcs, \
-	.dumb_create		= drm_gem_cma_dumb_create, \
+	.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 - 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_WITH_DUMB_CREATE() instead. Use
+ * DRM_GEM_CMA_DRIVER_OPS if possible.
+ */
+#define DRM_GEM_CMA_DRIVER_OPS \
+	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(drm_gem_cma_dumb_create)
+
 struct drm_gem_object *
 drm_gem_cma_prime_import_sg_table_vmap(struct drm_device *drm,
 				       struct dma_buf_attachment *attach,
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 02/23] drm/arc: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 01/23] drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 03/23] drm/arm: " Thomas Zimmermann
                   ` (20 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The arc driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/arc/arcpgu_drv.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
index c05d001163e0e..f164818ec477a 100644
--- a/drivers/gpu/drm/arc/arcpgu_drv.c
+++ b/drivers/gpu/drm/arc/arcpgu_drv.c
@@ -154,17 +154,7 @@ static struct drm_driver arcpgu_drm_driver = {
 	.minor = 0,
 	.patchlevel = 0,
 	.fops = &arcpgu_drm_ops,
-	.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_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_print_info = drm_gem_cma_print_info,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 #ifdef CONFIG_DEBUG_FS
 	.debugfs_init = arcpgu_debugfs_init,
 #endif
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 03/23] drm/arm: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 01/23] drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 02/23] drm/arc: Use GEM CMA object functions Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 04/23] drm/aspeed: Set driver CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
                   ` (19 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The arm driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/arm/hdlcd_drv.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index 194419f47c5e5..c83b81a3a582a 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -240,17 +240,7 @@ static struct drm_driver hdlcd_driver = {
 	.irq_preinstall = hdlcd_irq_preinstall,
 	.irq_postinstall = hdlcd_irq_postinstall,
 	.irq_uninstall = hdlcd_irq_uninstall,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_print_info = drm_gem_cma_print_info,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.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_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 #ifdef CONFIG_DEBUG_FS
 	.debugfs_init = hdlcd_debugfs_init,
 #endif
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 04/23] drm/aspeed: Set driver CMA functions with DRM_GEM_CMA_DRIVER_OPS
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (2 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 03/23] drm/arm: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 05/23] drm/atmel-hlcdc: Use GEM CMA object functions Thomas Zimmermann
                   ` (18 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

DRM_GEM_CMA_DRIVER_OPS sets the functions in struct drm_driver
to their defaults. No functional changes are made.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
index 6b27242b9ee3c..1167ff78e24a3 100644
--- a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
+++ b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
@@ -188,12 +188,7 @@ DEFINE_DRM_GEM_CMA_FOPS(fops);
 
 static struct drm_driver aspeed_gfx_driver = {
 	.driver_features        = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
-	.gem_create_object	= drm_cma_gem_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,
-	.gem_prime_mmap		= drm_gem_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.fops = &fops,
 	.name = "aspeed-gfx-drm",
 	.desc = "ASPEED GFX DRM",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 05/23] drm/atmel-hlcdc: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (3 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 04/23] drm/aspeed: Set driver CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 06/23] drm/fsl-dcu: " Thomas Zimmermann
                   ` (17 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The atmel-hlcdc driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
index 112aa5066ceed..871293d1aeeba 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
@@ -821,16 +821,7 @@ static struct drm_driver atmel_hlcdc_dc_driver = {
 	.irq_preinstall = atmel_hlcdc_dc_irq_uninstall,
 	.irq_postinstall = atmel_hlcdc_dc_irq_postinstall,
 	.irq_uninstall = atmel_hlcdc_dc_irq_uninstall,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
-	.dumb_create = drm_gem_cma_dumb_create,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.fops = &fops,
 	.name = "atmel-hlcdc",
 	.desc = "Atmel HLCD Controller DRM",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 06/23] drm/fsl-dcu: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (4 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 05/23] drm/atmel-hlcdc: Use GEM CMA object functions Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 07/23] drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create() Thomas Zimmermann
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The fsl-dcu driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index f15d2e7967a3e..abbc1ddbf27f0 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -141,16 +141,7 @@ static struct drm_driver fsl_dcu_drm_driver = {
 	.irq_handler		= fsl_dcu_drm_irq,
 	.irq_preinstall		= fsl_dcu_irq_uninstall,
 	.irq_uninstall		= fsl_dcu_irq_uninstall,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
-	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
-	.dumb_create		= drm_gem_cma_dumb_create,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.fops			= &fsl_dcu_drm_fops,
 	.name			= "fsl-dcu-drm",
 	.desc			= "Freescale DCU DRM",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 07/23] drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create()
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (5 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 06/23] drm/fsl-dcu: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-04  5:49   ` John Stultz
  2020-06-03  8:31 ` [PATCH v2 08/23] drm/hisilicon/kirin: Use GEM CMA object functions Thomas Zimmermann
                   ` (15 subsequent siblings)
  22 siblings, 1 reply; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: Xu YiPing, linux-aspeed, dri-devel, Xinliang Liu,
	Thomas Zimmermann, linux-arm-kernel, Emil Velikov

The kirin drivers uses drm_gem_cma_dumb_create_internal() for its
.dumb_create implementation. The function is meant for internal use
only by drivers that require additional buffer setup.

Kirin does not do an additional setup, so convert it over to
drm_gem_cma_dumb_create().

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
Cc: Xu YiPing <xuyiping@hisilicon.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
---
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index c339e632522a9..18e57e571e054 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -923,7 +923,7 @@ static struct drm_driver ade_driver = {
 	.fops = &ade_fops,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
 	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.dumb_create = drm_gem_cma_dumb_create_internal,
+	.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_get_sg_table = drm_gem_cma_prime_get_sg_table,
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 08/23] drm/hisilicon/kirin: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (6 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 07/23] drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create() Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-04  5:49   ` John Stultz
  2020-06-03  8:31 ` [PATCH v2 09/23] drm/imx: " Thomas Zimmermann
                   ` (14 subsequent siblings)
  22 siblings, 1 reply; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: Xu YiPing, linux-aspeed, dri-devel, Xinliang Liu,
	Thomas Zimmermann, linux-arm-kernel, Emil Velikov

The kirin driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

v2:
	* use DRM_GEM_CMA_DRIVER_OPS

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
Cc: Xu YiPing <xuyiping@hisilicon.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
---
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 18e57e571e054..e1108c1735ad0 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -921,17 +921,7 @@ DEFINE_DRM_GEM_CMA_FOPS(ade_fops);
 static struct drm_driver ade_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
 	.fops = &ade_fops,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.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_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
-
+	DRM_GEM_CMA_DRIVER_OPS,
 	.name = "kirin",
 	.desc = "Hisilicon Kirin620 SoC DRM Driver",
 	.date = "20150718",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 09/23] drm/imx: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (7 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 08/23] drm/hisilicon/kirin: Use GEM CMA object functions Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 10/23] drm/ingenic: " Thomas Zimmermann
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The imx driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/imx/imx-drm-core.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
index 2e38f1a5cf8da..36037b2e65647 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -146,17 +146,7 @@ static const struct drm_ioctl_desc imx_drm_ioctls[] = {
 
 static struct drm_driver imx_drm_driver = {
 	.driver_features	= DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
-	.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_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.ioctls			= imx_drm_ioctls,
 	.num_ioctls		= ARRAY_SIZE(imx_drm_ioctls),
 	.fops			= &imx_drm_driver_fops,
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 10/23] drm/ingenic: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (8 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 09/23] drm/imx: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 11/23] drm/komeda: " Thomas Zimmermann
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The ingenic driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Tested-by: Paul Cercueil <paul@crapouillou.net>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/ingenic/ingenic-drm.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/ingenic/ingenic-drm.c b/drivers/gpu/drm/ingenic/ingenic-drm.c
index 55b49a31729bf..16f0740df507c 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm.c
@@ -519,18 +519,7 @@ static struct drm_driver ingenic_drm_driver_data = {
 	.patchlevel		= 0,
 
 	.fops			= &ingenic_drm_fops,
-
-	.dumb_create		= drm_gem_cma_dumb_create,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
-
-	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 
 	.irq_handler		= ingenic_drm_irq_handler,
 };
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 11/23] drm/komeda: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (9 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 10/23] drm/ingenic: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 12/23] drm/malidp: " Thomas Zimmermann
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The komeda driver uses the default implementation for CMA functions; except
for the .dumb_create callback. The DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE()
macro now sets these defaults and .dumb_create in struct drm_driver. All
remaining operations are provided by CMA GEM object functions.

By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

v2:
	* update for DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
index 6b85d5f4caa85..1f6682032ca49 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
@@ -61,16 +61,7 @@ static irqreturn_t komeda_kms_irq_handler(int irq, void *data)
 static struct drm_driver komeda_kms_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
 	.lastclose			= drm_fb_helper_lastclose,
-	.gem_free_object_unlocked	= drm_gem_cma_free_object,
-	.gem_vm_ops			= &drm_gem_cma_vm_ops,
-	.dumb_create			= komeda_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_get_sg_table		= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table	= drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap			= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap		= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap			= drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(komeda_gem_cma_dumb_create),
 	.fops = &komeda_cma_fops,
 	.name = "komeda",
 	.desc = "Arm Komeda Display Processor driver",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 12/23] drm/malidp: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (10 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 11/23] drm/komeda: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 13/23] drm/mcde: " Thomas Zimmermann
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The malidp driver uses the default implementation for CMA functions; except
for the .dumb_create callback. The DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE()
macro now sets these defaults and .dumb_create in struct drm_driver.

By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

v2:
	* update for DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/arm/malidp_drv.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index c2507b7d8512b..cbd35fd305803 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -563,16 +563,7 @@ static void malidp_debugfs_init(struct drm_minor *minor)
 
 static struct drm_driver malidp_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.dumb_create = malidp_dumb_create,
-	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(malidp_dumb_create),
 #ifdef CONFIG_DEBUG_FS
 	.debugfs_init = malidp_debugfs_init,
 #endif
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 13/23] drm/mcde: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (11 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 12/23] drm/malidp: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 14/23] drm/meson: " Thomas Zimmermann
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The mcde driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.
All remaining operations are provided by CMA GEM object functions.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/mcde/mcde_drv.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/mcde/mcde_drv.c b/drivers/gpu/drm/mcde/mcde_drv.c
index 84f3e2dbd77bd..d300be5ee463d 100644
--- a/drivers/gpu/drm/mcde/mcde_drv.c
+++ b/drivers/gpu/drm/mcde/mcde_drv.c
@@ -228,17 +228,7 @@ static struct drm_driver mcde_drm_driver = {
 	.major = 1,
 	.minor = 0,
 	.patchlevel = 0,
-	.dumb_create = drm_gem_cma_dumb_create,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-
-	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 };
 
 static int mcde_drm_bind(struct device *dev)
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 14/23] drm/meson: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (12 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 13/23] drm/mcde: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-04  7:59   ` Neil Armstrong
  2020-06-03  8:31 ` [PATCH v2 15/23] drm/mxsfb: " Thomas Zimmermann
                   ` (8 subsequent siblings)
  22 siblings, 1 reply; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The meson driver uses the default implementation for CMA functions; except
for the .dumb_create callback. The DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE()
macro now sets these defaults and .dumb_create in struct drm_driver.

By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

v2:
	* update for DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/meson/meson_drv.c | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 4c5aafcec7991..8b9c8dd788c41 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -96,19 +96,8 @@ static struct drm_driver meson_driver = {
 	/* IRQ */
 	.irq_handler		= meson_irq,
 
-	/* PRIME Ops */
-	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
-
-	/* GEM Ops */
-	.dumb_create		= meson_dumb_create,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
+	/* CMA Ops */
+	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(meson_dumb_create),
 
 	/* Misc */
 	.fops			= &fops,
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 15/23] drm/mxsfb: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (13 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 14/23] drm/meson: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 16/23] drm/rcar-du: " Thomas Zimmermann
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The mxsfb driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/mxsfb/mxsfb_drv.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 497cf443a9afa..47c7dce03da4a 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -356,16 +356,7 @@ static struct drm_driver mxsfb_driver = {
 	.irq_handler		= mxsfb_irq_handler,
 	.irq_preinstall		= mxsfb_irq_preinstall,
 	.irq_uninstall		= mxsfb_irq_preinstall,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
-	.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_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.fops	= &fops,
 	.name	= "mxsfb-drm",
 	.desc	= "MXSFB Controller DRM",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 16/23] drm/rcar-du: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (14 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 15/23] drm/mxsfb: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-04  3:00   ` Laurent Pinchart
  2020-06-03  8:31 ` [PATCH v2 17/23] drm/shmobile: " Thomas Zimmermann
                   ` (6 subsequent siblings)
  22 siblings, 1 reply; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The rcar-du driver uses the default implementation for CMA functions; except
for the .dumb_create callback. The DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE()
macro now sets these defaults and .dumb_create in struct drm_driver.

By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

v2:
	* update for DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Tested-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/rcar-du/rcar_du_drv.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index 3e67cf70f0402..f53b0ec710850 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -476,16 +476,7 @@ DEFINE_DRM_GEM_CMA_FOPS(rcar_du_fops);
 
 static struct drm_driver rcar_du_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
-	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
-	.dumb_create		= rcar_du_dumb_create,
+	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(rcar_du_dumb_create),
 	.fops			= &rcar_du_fops,
 	.name			= "rcar-du",
 	.desc			= "Renesas R-Car Display Unit",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 17/23] drm/shmobile: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (15 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 16/23] drm/rcar-du: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 18/23] drm/stm: " Thomas Zimmermann
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The shmobile driver uses the default implementation for CMA functions.
The DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct
drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/shmobile/shmob_drm_drv.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index ae9d6b8d3ca87..26a15c214bd3f 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -131,16 +131,7 @@ DEFINE_DRM_GEM_CMA_FOPS(shmob_drm_fops);
 static struct drm_driver shmob_drm_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET,
 	.irq_handler		= shmob_drm_irq,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops		= &drm_gem_cma_vm_ops,
-	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
-	.dumb_create		= drm_gem_cma_dumb_create,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.fops			= &shmob_drm_fops,
 	.name			= "shmob-drm",
 	.desc			= "Renesas SH Mobile DRM",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 18/23] drm/stm: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (16 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 17/23] drm/shmobile: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 19/23] drm/sti: " Thomas Zimmermann
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The stm driver uses the default implementation for CMA functions; except
for the .dumb_create callback. The DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE()
macro now sets these defaults and .dumb_create in struct drm_driver.

By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

v2:
	* update for DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/stm/drv.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
index 0f85dd86cafa7..411103f013e25 100644
--- a/drivers/gpu/drm/stm/drv.c
+++ b/drivers/gpu/drm/stm/drv.c
@@ -62,16 +62,7 @@ static struct drm_driver drv_driver = {
 	.minor = 0,
 	.patchlevel = 0,
 	.fops = &drv_driver_fops,
-	.dumb_create = stm_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_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(stm_gem_cma_dumb_create),
 };
 
 static int drv_load(struct drm_device *ddev)
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 19/23] drm/sti: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (17 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 18/23] drm/stm: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 20/23] drm/tilcdc: " Thomas Zimmermann
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The sti driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/sti/sti_drv.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 3f9db3e3f3978..381804126e70d 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -132,19 +132,9 @@ DEFINE_DRM_GEM_CMA_FOPS(sti_driver_fops);
 
 static struct drm_driver sti_driver = {
 	.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.dumb_create = drm_gem_cma_dumb_create,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.fops = &sti_driver_fops,
 
-	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
-
 	.debugfs_init = sti_drm_dbg_init,
 
 	.name = DRIVER_NAME,
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 20/23] drm/tilcdc: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (18 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 19/23] drm/sti: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 21/23] drm/tv200: " Thomas Zimmermann
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The tilcdc driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/tilcdc/tilcdc_drv.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index a5e9ee4c7fbf4..0d74a64432633 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -496,18 +496,7 @@ DEFINE_DRM_GEM_CMA_FOPS(fops);
 static struct drm_driver tilcdc_driver = {
 	.driver_features    = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
 	.irq_handler        = tilcdc_irq,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_print_info     = drm_gem_cma_print_info,
-	.gem_vm_ops         = &drm_gem_cma_vm_ops,
-	.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_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 #ifdef CONFIG_DEBUG_FS
 	.debugfs_init       = tilcdc_debugfs_init,
 #endif
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 21/23] drm/tv200: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (19 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 20/23] drm/tilcdc: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 22/23] drm/zte: " Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 23/23] drm: Remove struct drm_driver.gem_print_info Thomas Zimmermann
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The tve200 driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/tve200/tve200_drv.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/tve200/tve200_drv.c b/drivers/gpu/drm/tve200/tve200_drv.c
index 00ba9e5ce1307..c3aa39bd38ecd 100644
--- a/drivers/gpu/drm/tve200/tve200_drv.c
+++ b/drivers/gpu/drm/tve200/tve200_drv.c
@@ -147,17 +147,7 @@ static struct drm_driver tve200_drm_driver = {
 	.major = 1,
 	.minor = 0,
 	.patchlevel = 0,
-	.dumb_create = drm_gem_cma_dumb_create,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-
-	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
-	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
-	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 };
 
 static int tve200_probe(struct platform_device *pdev)
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 22/23] drm/zte: Use GEM CMA object functions
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (20 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 21/23] drm/tv200: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  2020-06-03  8:31 ` [PATCH v2 23/23] drm: Remove struct drm_driver.gem_print_info Thomas Zimmermann
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The zte driver uses the default implementation for CMA functions. The
DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.

Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
which sets CMA GEM object functions. GEM object functions implement the
rsp operations where possible. Corresponding interfaces in struct drm_driver
are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
which maps the imported buffer upon import. Mmap operations are performed
by drm_gem_prime_mmap(), which goes through GEM file operations. These
changes have been part of the aspeed driver for some time.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/zte/zx_drm_drv.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c b/drivers/gpu/drm/zte/zx_drm_drv.c
index 1141c1ed1ed04..31014a451f8bd 100644
--- a/drivers/gpu/drm/zte/zx_drm_drv.c
+++ b/drivers/gpu/drm/zte/zx_drm_drv.c
@@ -36,16 +36,7 @@ DEFINE_DRM_GEM_CMA_FOPS(zx_drm_fops);
 
 static struct drm_driver zx_drm_driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
-	.gem_free_object_unlocked = drm_gem_cma_free_object,
-	.gem_vm_ops = &drm_gem_cma_vm_ops,
-	.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_get_sg_table = drm_gem_cma_prime_get_sg_table,
-	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
-	.gem_prime_vmap = drm_gem_cma_prime_vmap,
-	.gem_prime_vunmap = drm_gem_cma_prime_vunmap,
-	.gem_prime_mmap = drm_gem_cma_prime_mmap,
+	DRM_GEM_CMA_DRIVER_OPS,
 	.fops = &zx_drm_fops,
 	.name = "zx-vou",
 	.desc = "ZTE VOU Controller DRM",
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 23/23] drm: Remove struct drm_driver.gem_print_info
  2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
                   ` (21 preceding siblings ...)
  2020-06-03  8:31 ` [PATCH v2 22/23] drm/zte: " Thomas Zimmermann
@ 2020-06-03  8:31 ` Thomas Zimmermann
  22 siblings, 0 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2020-06-03  8:31 UTC (permalink / raw)
  To: abrodkin, airlied, daniel, james.qian.wang, liviu.dudau,
	mihail.atanassov, brian.starkey, joel, andrew, sam, bbrezillon,
	nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, narmstrong, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, Thomas Zimmermann, linux-aspeed, dri-devel,
	Emil Velikov

The .gem_print_info callback in struct drm_driver is obsolete and has
no users left. Remove it.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Suggested-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/drm_gem.c |  2 --
 include/drm/drm_drv.h     | 17 -----------------
 2 files changed, 19 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index efc0367841e2b..08b3fa27ec406 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -1191,8 +1191,6 @@ void drm_gem_print_info(struct drm_printer *p, unsigned int indent,
 
 	if (obj->funcs && obj->funcs->print_info)
 		obj->funcs->print_info(p, indent, obj);
-	else if (obj->dev->driver->gem_print_info)
-		obj->dev->driver->gem_print_info(p, indent, obj);
 }
 
 int drm_gem_pin(struct drm_gem_object *obj)
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index bb924cddc09c1..8f110a28b6a23 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -353,23 +353,6 @@ struct drm_driver {
 	 */
 	void (*gem_close_object) (struct drm_gem_object *, struct drm_file *);
 
-	/**
-	 * @gem_print_info:
-	 *
-	 * This callback is deprecated in favour of
-	 * &drm_gem_object_funcs.print_info.
-	 *
-	 * If driver subclasses struct &drm_gem_object, it can implement this
-	 * optional hook for printing additional driver specific info.
-	 *
-	 * drm_printf_indent() should be used in the callback passing it the
-	 * indent argument.
-	 *
-	 * This callback is called from drm_gem_print_info().
-	 */
-	void (*gem_print_info)(struct drm_printer *p, unsigned int indent,
-			       const struct drm_gem_object *obj);
-
 	/**
 	 * @gem_create_object: constructor for gem objects
 	 *
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 16/23] drm/rcar-du: Use GEM CMA object functions
  2020-06-03  8:31 ` [PATCH v2 16/23] drm/rcar-du: " Thomas Zimmermann
@ 2020-06-04  3:00   ` Laurent Pinchart
  0 siblings, 0 replies; 28+ messages in thread
From: Laurent Pinchart @ 2020-06-04  3:00 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: alexandre.belloni, linux-aspeed, narmstrong, airlied,
	liviu.dudau, philippe.cornu, paul, mihail.atanassov, sam,
	alexandre.torgue, marex, abrodkin, ludovic.desroches,
	xinliang.liu, kong.kongxinwei, tomi.valkeinen, james.qian.wang,
	joel, Emil Velikov, linux-imx, puck.chen, s.hauer, alison.wang,
	jsarha, wens, vincent.abriou, kernel, linux-arm-kernel,
	mcoquelin.stm32, bbrezillon, andrew, dri-devel, nicolas.ferre,
	yannick.fertre, kieran.bingham+renesas, khilman, zourongrong,
	shawnguo

Hi Thomas,

Thank you for the patch.

On Wed, Jun 03, 2020 at 10:31:25AM +0200, Thomas Zimmermann wrote:
> The rcar-du driver uses the default implementation for CMA functions; except
> for the .dumb_create callback. The DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE()
> macro now sets these defaults and .dumb_create in struct drm_driver.
> 
> By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
> sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
> which sets CMA GEM object functions. GEM object functions implement the
> rsp operations where possible. Corresponding interfaces in struct drm_driver
> are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
> which maps the imported buffer upon import. Mmap operations are performed
> by drm_gem_prime_mmap(), which goes through GEM file operations. These
> changes have been part of the aspeed driver for some time.

How is the aspeed driver related to this patch ?

> 
> v2:
> 	* update for DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE

As explained in the review of v1, this combines multiple changes in a
single patch. Some of those changes are not straightforward to review.
It would be easier if they were split in separate patches.

> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Tested-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Acked-by: Emil Velikov <emil.velikov@collabora.com>
> ---
>  drivers/gpu/drm/rcar-du/rcar_du_drv.c | 11 +----------
>  1 file changed, 1 insertion(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index 3e67cf70f0402..f53b0ec710850 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -476,16 +476,7 @@ DEFINE_DRM_GEM_CMA_FOPS(rcar_du_fops);
>  
>  static struct drm_driver rcar_du_driver = {
>  	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
> -	.gem_free_object_unlocked = drm_gem_cma_free_object,
> -	.gem_vm_ops		= &drm_gem_cma_vm_ops,
> -	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
> -	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
> -	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
> -	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
> -	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
> -	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
> -	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
> -	.dumb_create		= rcar_du_dumb_create,
> +	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(rcar_du_dumb_create),
>  	.fops			= &rcar_du_fops,
>  	.name			= "rcar-du",
>  	.desc			= "Renesas R-Car Display Unit",

-- 
Regards,

Laurent Pinchart
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 07/23] drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create()
  2020-06-03  8:31 ` [PATCH v2 07/23] drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create() Thomas Zimmermann
@ 2020-06-04  5:49   ` John Stultz
  0 siblings, 0 replies; 28+ messages in thread
From: John Stultz @ 2020-06-04  5:49 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: Alexandre Belloni, linux-aspeed, Neil Armstrong, David Airlie,
	Liviu Dudau, philippe.cornu, paul, Laurent Pinchart,
	mihail.atanassov, Sam Ravnborg, alexandre.torgue, marex,
	Xu YiPing, abrodkin, ludovic.desroches, Xinliang Liu,
	Xinliang Liu, XinWei Kong, tomi.valkeinen, james.qian.wang, joel,
	Emil Velikov, dl-linux-imx, Feng Chen, Sascha Hauer, alison.wang,
	jsarha, Chen-Yu Tsai, vincent.abriou, Pengutronix Kernel Team,
	linux-arm-kernel, mcoquelin.stm32, bbrezillon, andrew, dri-devel,
	nicolas.ferre, yannick.fertre, kieran.bingham+renesas,
	Kevin Hilman, Rongrong Zou, Shawn Guo

On Wed, Jun 3, 2020 at 1:31 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>
> The kirin drivers uses drm_gem_cma_dumb_create_internal() for its
> .dumb_create implementation. The function is meant for internal use
> only by drivers that require additional buffer setup.
>
> Kirin does not do an additional setup, so convert it over to
> drm_gem_cma_dumb_create().
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Acked-by: Emil Velikov <emil.velikov@collabora.com>
> Cc: Xu YiPing <xuyiping@hisilicon.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>


Thanks for sending this out! Works fine on my HiKey board.

Tested-by: John Stultz <john.stultz@linaro.org>

thanks
-john
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 08/23] drm/hisilicon/kirin: Use GEM CMA object functions
  2020-06-03  8:31 ` [PATCH v2 08/23] drm/hisilicon/kirin: Use GEM CMA object functions Thomas Zimmermann
@ 2020-06-04  5:49   ` John Stultz
  0 siblings, 0 replies; 28+ messages in thread
From: John Stultz @ 2020-06-04  5:49 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: Alexandre Belloni, linux-aspeed, Neil Armstrong, David Airlie,
	Liviu Dudau, philippe.cornu, paul, Laurent Pinchart,
	mihail.atanassov, Sam Ravnborg, alexandre.torgue, marex,
	Xu YiPing, abrodkin, ludovic.desroches, Xinliang Liu,
	Xinliang Liu, XinWei Kong, tomi.valkeinen, james.qian.wang, joel,
	Emil Velikov, dl-linux-imx, Feng Chen, Sascha Hauer, alison.wang,
	jsarha, Chen-Yu Tsai, vincent.abriou, Pengutronix Kernel Team,
	linux-arm-kernel, mcoquelin.stm32, bbrezillon, andrew, dri-devel,
	nicolas.ferre, yannick.fertre, kieran.bingham+renesas,
	Kevin Hilman, Rongrong Zou, Shawn Guo

On Wed, Jun 3, 2020 at 1:31 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>
> The kirin driver uses the default implementation for CMA functions. The
> DRM_GEM_CMA_DRIVER_OPS macro now sets these defaults in struct drm_driver.
>
> Using DRM_GEM_CMA_DRIVER_OPS introduces several changes: the driver now
> sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
> which sets CMA GEM object functions. GEM object functions implement the
> rsp operations where possible. Corresponding interfaces in struct drm_driver
> are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
> which maps the imported buffer upon import. Mmap operations are performed
> by drm_gem_prime_mmap(), which goes through GEM file operations. These
> changes have been part of the aspeed driver for some time.
>
> v2:
>         * use DRM_GEM_CMA_DRIVER_OPS
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Acked-by: Emil Velikov <emil.velikov@collabora.com>
> Cc: Xu YiPing <xuyiping@hisilicon.com>
> Cc: Rongrong Zou <zourongrong@gmail.com>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>

Thanks for sending this out! Works fine on my HiKey board.

Tested-by: John Stultz <john.stultz@linaro.org>

thanks
-john
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 14/23] drm/meson: Use GEM CMA object functions
  2020-06-03  8:31 ` [PATCH v2 14/23] drm/meson: " Thomas Zimmermann
@ 2020-06-04  7:59   ` Neil Armstrong
  0 siblings, 0 replies; 28+ messages in thread
From: Neil Armstrong @ 2020-06-04  7:59 UTC (permalink / raw)
  To: Thomas Zimmermann, abrodkin, airlied, daniel, james.qian.wang,
	liviu.dudau, mihail.atanassov, brian.starkey, joel, andrew, sam,
	bbrezillon, nicolas.ferre, alexandre.belloni, ludovic.desroches,
	maarten.lankhorst, mripard, stefan, alison.wang, xinliang.liu,
	zourongrong, john.stultz, kong.kongxinwei, puck.chen, p.zabel,
	shawnguo, s.hauer, kernel, festevam, linux-imx, paul,
	linus.walleij, khilman, marex, laurent.pinchart,
	kieran.bingham+renesas, benjamin.gaignard, vincent.abriou,
	yannick.fertre, philippe.cornu, mcoquelin.stm32,
	alexandre.torgue, wens, jsarha, tomi.valkeinen, noralf
  Cc: linux-arm-kernel, linux-aspeed, dri-devel, Emil Velikov

On 03/06/2020 10:31, Thomas Zimmermann wrote:
> The meson driver uses the default implementation for CMA functions; except
> for the .dumb_create callback. The DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE()
> macro now sets these defaults and .dumb_create in struct drm_driver.
> 
> By using DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() the driver now
> sets .gem_create_object to drm_cma_gem_create_object_default_funcs(),
> which sets CMA GEM object functions. GEM object functions implement the
> rsp operations where possible. Corresponding interfaces in struct drm_driver
> are cleared. Prime import now uses drm_gem_cma_prime_import_sg_table_vmap(),
> which maps the imported buffer upon import. Mmap operations are performed
> by drm_gem_prime_mmap(), which goes through GEM file operations. These
> changes have been part of the aspeed driver for some time.
> 
> v2:
> 	* update for DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Acked-by: Emil Velikov <emil.velikov@collabora.com>
> ---
>  drivers/gpu/drm/meson/meson_drv.c | 15 ++-------------
>  1 file changed, 2 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
> index 4c5aafcec7991..8b9c8dd788c41 100644
> --- a/drivers/gpu/drm/meson/meson_drv.c
> +++ b/drivers/gpu/drm/meson/meson_drv.c
> @@ -96,19 +96,8 @@ static struct drm_driver meson_driver = {
>  	/* IRQ */
>  	.irq_handler		= meson_irq,
>  
> -	/* PRIME Ops */
> -	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
> -	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
> -	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
> -	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
> -	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
> -	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
> -	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
> -
> -	/* GEM Ops */
> -	.dumb_create		= meson_dumb_create,
> -	.gem_free_object_unlocked = drm_gem_cma_free_object,
> -	.gem_vm_ops		= &drm_gem_cma_vm_ops,
> +	/* CMA Ops */
> +	DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(meson_dumb_create),
>  
>  	/* Misc */
>  	.fops			= &fops,
> 

Acked-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2020-06-04  7:59 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-03  8:31 [PATCH v2 00/23] drm: Convert most CMA-based drivers to GEM object functions Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 01/23] drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 02/23] drm/arc: Use GEM CMA object functions Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 03/23] drm/arm: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 04/23] drm/aspeed: Set driver CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 05/23] drm/atmel-hlcdc: Use GEM CMA object functions Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 06/23] drm/fsl-dcu: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 07/23] drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create() Thomas Zimmermann
2020-06-04  5:49   ` John Stultz
2020-06-03  8:31 ` [PATCH v2 08/23] drm/hisilicon/kirin: Use GEM CMA object functions Thomas Zimmermann
2020-06-04  5:49   ` John Stultz
2020-06-03  8:31 ` [PATCH v2 09/23] drm/imx: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 10/23] drm/ingenic: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 11/23] drm/komeda: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 12/23] drm/malidp: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 13/23] drm/mcde: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 14/23] drm/meson: " Thomas Zimmermann
2020-06-04  7:59   ` Neil Armstrong
2020-06-03  8:31 ` [PATCH v2 15/23] drm/mxsfb: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 16/23] drm/rcar-du: " Thomas Zimmermann
2020-06-04  3:00   ` Laurent Pinchart
2020-06-03  8:31 ` [PATCH v2 17/23] drm/shmobile: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 18/23] drm/stm: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 19/23] drm/sti: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 20/23] drm/tilcdc: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 21/23] drm/tv200: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 22/23] drm/zte: " Thomas Zimmermann
2020-06-03  8:31 ` [PATCH v2 23/23] drm: Remove struct drm_driver.gem_print_info Thomas Zimmermann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).