From: Thomas Zimmermann <tzimmermann@suse.de>
To: abrodkin@synopsys.com, airlied@linux.ie, daniel@ffwll.ch,
james.qian.wang@arm.com, liviu.dudau@arm.com,
mihail.atanassov@arm.com, brian.starkey@arm.com, joel@jms.id.au,
andrew@aj.id.au, sam@ravnborg.org, bbrezillon@kernel.org,
nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com,
ludovic.desroches@microchip.com,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
stefan@agner.ch, alison.wang@nxp.com, xinliang.liu@linaro.org,
zourongrong@gmail.com, john.stultz@linaro.org,
kong.kongxinwei@hisilicon.com, puck.chen@hisilicon.com,
p.zabel@pengutronix.de, shawnguo@kernel.org,
s.hauer@pengutronix.de, kernel@pengutronix.de,
festevam@gmail.com, linux-imx@nxp.com, paul@crapouillou.net,
linus.walleij@linaro.org, narmstrong@baylibre.com,
khilman@baylibre.com, marex@denx.de,
laurent.pinchart@ideasonboard.com,
kieran.bingham+renesas@ideasonboard.com,
benjamin.gaignard@linaro.org, vincent.abriou@st.com,
yannick.fertre@st.com, philippe.cornu@st.com,
mcoquelin.stm32@gmail.com, alexandre.torgue@st.com,
wens@csie.org, jsarha@ti.com, tomi.valkeinen@ti.com,
noralf@tronnes.org
Cc: linux-arm-kernel@lists.infradead.org,
Thomas Zimmermann <tzimmermann@suse.de>,
linux-aspeed@lists.ozlabs.org, dri-devel@lists.freedesktop.org
Subject: [PATCH v3 00/43] Convert most CMA-based drivers to GEM object functions
Date: Fri, 5 Jun 2020 09:32:04 +0200 [thread overview]
Message-ID: <20200605073247.4057-1-tzimmermann@suse.de> (raw)
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.
To address Laurent's comment on the amount of changes per patch, I re-
organized the series.
1) There are now DRIVER_OPS macros for drivers that require a virtual
address on imported buffers, and macros for drivers that don't. Therefore,
drivers don't switch to drm_gem_cma_prime_import_sg_table_vmap()
implicitly when they begin using the DRIVER_OPS macro.
2) I split each driver's patch into two: the first converts the driver to
GEM CMA object functions, the second introduces the DRIVER_OPS macro.
Neither patch should result in a functional change. I kept existing R-b
and A-b tags on both patches. Existing Tested-by tags are only on the
final patch, as that's closest to what has been tested.
3) I dropped the conversion to drm_gem_prime_mmap() from the patchset. As
part of this change, the CMA object functions could provide an mmap
function, which is worth it's own series. The patch for aspeed requires
drm_gem_prime_mmap(), so I removed it from the series.
Patches 1 to 3 update the existing macro and helper to similar naming as with
SHMEM, add a new DRIVER_OPS macro, and add helpers for drivers that override
the default implementation for .dumb_create(). The remaining patches up to
the final one convert the drivers. The kirin driver also changes to the
default dumb_create function. The final patch deletes .gem_print_info from
struct drm_driver.
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.
v3:
* reorganized the series
* split each driver patch into two small ones (Laurent)
* drop the conversion to drm_gem_prime_mmap()
* remove the patch for aspeed
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 (43):
drm/cma-helper: Rename symbols from drm_cma_gem_ to drm_gem_cma_
drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro
drm/cma-helper: Add DRM_GEM_CMA_DRIVER_OPS to set default GEM CMA
functions
drm/arc: Use GEM CMA object functions
drm/arc: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/arm: Use GEM CMA object functions
drm/arm: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/atmel-hlcdc: Use GEM CMA object functions
drm/atmel-hlcdc: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/fsl-dcu: Use GEM CMA object functions
drm/fsl-dcu: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create()
drm/hisilicon/kirin: Use GEM CMA object functions
drm/hisilicon/kirin: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/imx: Use GEM CMA object functions
drm/imx: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/ingenic: Use GEM CMA object functions
drm/ingenic: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/komeda: Use GEM CMA object functions
drm/komeda: Set GEM CMA functions with
DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE
drm/malidp: Use GEM CMA object functions
drm/malidp: Set GEM CMA functions with
DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE
drm/mcde: Use GEM CMA object functions
drm/mcde: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/meson: Use GEM CMA object functions
drm/meson: Set GEM CMA functions with
DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE
drm/mxsfb: Use GEM CMA object functions
drm/mxsfb: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/rcar-du: Use GEM CMA object functions
drm/rcar-du: Set GEM CMA functions with
DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE
drm/shmobile: Use GEM CMA object functions
drm/shmobile: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/stm: Use GEM CMA object functions
drm/stm: Set GEM CMA functions with
DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE
drm/sti: Use GEM CMA object functions
drm/sti: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/tilcdc: Use GEM CMA object functions
drm/tilcdc: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/tve200: Use GEM CMA object functions
drm/tve200: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
drm/zte: Use GEM CMA object functions
drm/zte: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS
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 | 2 +-
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 | 12 +--
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 | 74 +++++++++++++++++--
34 files changed, 105 insertions(+), 247 deletions(-)
--
2.26.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2020-06-05 7:33 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 7:32 Thomas Zimmermann [this message]
2020-06-05 7:32 ` [PATCH v3 01/43] drm/cma-helper: Rename symbols from drm_cma_gem_ to drm_gem_cma_ Thomas Zimmermann
2020-06-05 8:40 ` Laurent Pinchart
2020-06-05 14:15 ` Thomas Zimmermann
2020-06-05 14:23 ` Sam Ravnborg
2020-06-05 14:40 ` Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 02/43] drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 03/43] drm/cma-helper: Add DRM_GEM_CMA_DRIVER_OPS to set default GEM CMA functions Thomas Zimmermann
2020-06-05 8:16 ` Laurent Pinchart
2020-06-09 9:45 ` Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 04/43] drm/arc: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 05/43] drm/arc: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 06/43] drm/arm: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 07/43] drm/arm: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 08/43] drm/atmel-hlcdc: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 09/43] drm/atmel-hlcdc: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 10/43] drm/fsl-dcu: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 11/43] drm/fsl-dcu: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 12/43] drm/hisilicon/kirin: Set .dumb_create to drm_gem_cma_dumb_create() Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 13/43] drm/hisilicon/kirin: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 14/43] drm/hisilicon/kirin: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 15/43] drm/imx: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 16/43] drm/imx: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 17/43] drm/ingenic: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 18/43] drm/ingenic: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 19/43] drm/komeda: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 20/43] drm/komeda: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 21/43] drm/malidp: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 22/43] drm/malidp: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 23/43] drm/mcde: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 24/43] drm/mcde: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 25/43] drm/meson: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 26/43] drm/meson: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 27/43] drm/mxsfb: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 28/43] drm/mxsfb: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 29/43] drm/rcar-du: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 8:23 ` Laurent Pinchart
2020-06-05 7:32 ` [PATCH v3 30/43] drm/rcar-du: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE Thomas Zimmermann
2020-06-05 8:14 ` Laurent Pinchart
2020-06-05 7:32 ` [PATCH v3 31/43] drm/shmobile: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 8:20 ` Laurent Pinchart
2020-06-05 7:32 ` [PATCH v3 32/43] drm/shmobile: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 8:13 ` Laurent Pinchart
2020-06-05 7:32 ` [PATCH v3 33/43] drm/stm: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 34/43] drm/stm: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 35/43] drm/sti: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 36/43] drm/sti: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 37/43] drm/tilcdc: Use GEM CMA object functions Thomas Zimmermann
2020-06-24 9:03 ` Jyri Sarha
2020-06-05 7:32 ` [PATCH v3 38/43] drm/tilcdc: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-24 9:03 ` Jyri Sarha
2020-06-05 7:32 ` [PATCH v3 39/43] drm/tve200: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 40/43] drm/tve200: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 41/43] drm/zte: Use GEM CMA object functions Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 42/43] drm/zte: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS Thomas Zimmermann
2020-06-05 7:32 ` [PATCH v3 43/43] drm: Remove struct drm_driver.gem_print_info Thomas Zimmermann
2020-06-05 8:37 ` Laurent Pinchart
2020-06-05 15:40 ` [PATCH v3 00/43] Convert most CMA-based drivers to GEM object functions Emil Velikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200605073247.4057-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=abrodkin@synopsys.com \
--cc=airlied@linux.ie \
--cc=alexandre.belloni@bootlin.com \
--cc=alexandre.torgue@st.com \
--cc=alison.wang@nxp.com \
--cc=andrew@aj.id.au \
--cc=bbrezillon@kernel.org \
--cc=benjamin.gaignard@linaro.org \
--cc=brian.starkey@arm.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=festevam@gmail.com \
--cc=james.qian.wang@arm.com \
--cc=joel@jms.id.au \
--cc=john.stultz@linaro.org \
--cc=jsarha@ti.com \
--cc=kernel@pengutronix.de \
--cc=khilman@baylibre.com \
--cc=kieran.bingham+renesas@ideasonboard.com \
--cc=kong.kongxinwei@hisilicon.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-imx@nxp.com \
--cc=liviu.dudau@arm.com \
--cc=ludovic.desroches@microchip.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=marex@denx.de \
--cc=mcoquelin.stm32@gmail.com \
--cc=mihail.atanassov@arm.com \
--cc=mripard@kernel.org \
--cc=narmstrong@baylibre.com \
--cc=nicolas.ferre@microchip.com \
--cc=noralf@tronnes.org \
--cc=p.zabel@pengutronix.de \
--cc=paul@crapouillou.net \
--cc=philippe.cornu@st.com \
--cc=puck.chen@hisilicon.com \
--cc=s.hauer@pengutronix.de \
--cc=sam@ravnborg.org \
--cc=shawnguo@kernel.org \
--cc=stefan@agner.ch \
--cc=tomi.valkeinen@ti.com \
--cc=vincent.abriou@st.com \
--cc=wens@csie.org \
--cc=xinliang.liu@linaro.org \
--cc=yannick.fertre@st.com \
--cc=zourongrong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox