All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/20] Convert all remaining drivers to GEM object functions
@ 2020-08-13  8:36 ` Thomas Zimmermann
  0 siblings, 0 replies; 243+ messages in thread
From: Thomas Zimmermann @ 2020-08-13  8:36 UTC (permalink / raw)
  To: alexander.deucher, christian.koenig, airlied, daniel, linux,
	maarten.lankhorst, mripard, l.stach, christian.gmeiner, inki.dae,
	jy0922.shim, sw0312.kim, kyungmin.park, kgene, krzk,
	patrik.r.jakobsson, jani.nikula, joonas.lahtinen, rodrigo.vivi,
	chunkuang.hu, p.zabel, matthias.bgg, robdclark, sean, bskeggs,
	tomi.valkeinen, eric, hjc, heiko, thierry.reding, jonathanh,
	rodrigosiqueiramelo, hamohammed.sa, oleksandr_andrushchenko,
	hyun.kwon, laurent.pinchart, michal.simek, sumit.semwal,
	evan.quan, Hawking.Zhang, tianci.yin, marek.olsak, hdegoede,
	andrey.grodzovsky, Felix.Kuehling, xinhui.pan, aaron.liu,
	nirmoy.das, chris, matthew.auld, abdiel.janulgue, tvrtko.ursulin,
	andi.shyti, sam, miaoqinglang, emil.velikov
  Cc: amd-gfx, dri-devel, etnaviv, linux-arm-kernel, linux-samsung-soc,
	intel-gfx, linux-mediatek, linux-arm-msm, freedreno, nouveau,
	linux-rockchip, linux-tegra, xen-devel, Thomas Zimmermann

The GEM and PRIME related callbacks in struct drm_driver are deprecated in
favor of GEM object functions in struct drm_gem_object_funcs. This patchset
converts the remaining drivers to object functions and removes most of the
obsolete interfaces.

Patches #1 to #18 convert DRM drivers to GEM object functions, one by one.
Each patch moves existing callbacks from struct drm_driver to an instance
of struct drm_gem_object_funcs, and sets these funcs when the GEM object is
initialized. The expection is .gem_prime_mmap. There are different ways of
how drivers implement the callback, and moving it to GEM object functions
requires a closer review for each.

Patch #19 converts xlnx to CMA helper macros. There's no apparent reason
why the driver does the GEM setup on it's own. Using CMA helper macros
adds GEM object functions implicitly.

With most of the GEM and PRIME moved to GEM object functions, related code
in struct drm_driver and in the DRM core/helpers is being removed by patch
#20.

Further testing is welcome. I tested the drivers for which I have HW
available, which are gma500, i915, nouveau, radeon and vc4. The console,
Weston and Xorg apparently work with the patches applied.

Thomas Zimmermann (20):
  drm/amdgpu: Introduce GEM object functions
  drm/armada: Introduce GEM object functions
  drm/etnaviv: Introduce GEM object functions
  drm/exynos: Introduce GEM object functions
  drm/gma500: Introduce GEM object functions
  drm/i915: Introduce GEM object functions
  drm/mediatek: Introduce GEM object functions
  drm/msm: Introduce GEM object funcs
  drm/nouveau: Introduce GEM object functions
  drm/omapdrm: Introduce GEM object functions
  drm/pl111: Introduce GEM object functions
  drm/radeon: Introduce GEM object functions
  drm/rockchip: Convert to drm_gem_object_funcs
  drm/tegra: Introduce GEM object functions
  drm/vc4: Introduce GEM object functions
  drm/vgem: Introduce GEM object functions
  drm/vkms: Introduce GEM object functions
  drm/xen: Introduce GEM object functions
  drm/xlnx: Initialize DRM driver instance with CMA helper macro
  drm: Remove obsolete GEM and PRIME callbacks from struct drm_driver

 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c       |  6 --
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    | 12 +++
 drivers/gpu/drm/armada/armada_drv.c           |  3 -
 drivers/gpu/drm/armada/armada_gem.c           | 12 ++-
 drivers/gpu/drm/armada/armada_gem.h           |  2 -
 drivers/gpu/drm/drm_gem.c                     | 35 ++------
 drivers/gpu/drm/drm_gem_cma_helper.c          |  6 +-
 drivers/gpu/drm/drm_prime.c                   | 17 ++--
 drivers/gpu/drm/etnaviv/etnaviv_drv.c         | 13 ---
 drivers/gpu/drm/etnaviv/etnaviv_drv.h         |  1 -
 drivers/gpu/drm/etnaviv/etnaviv_gem.c         | 19 ++++-
 drivers/gpu/drm/exynos/exynos_drm_drv.c       | 10 ---
 drivers/gpu/drm/exynos/exynos_drm_gem.c       | 15 ++++
 drivers/gpu/drm/gma500/framebuffer.c          |  2 +
 drivers/gpu/drm/gma500/gem.c                  | 18 +++-
 drivers/gpu/drm/gma500/gem.h                  |  3 +
 drivers/gpu/drm/gma500/psb_drv.c              |  9 --
 drivers/gpu/drm/gma500/psb_drv.h              |  2 -
 drivers/gpu/drm/i915/gem/i915_gem_object.c    |  9 +-
 drivers/gpu/drm/i915/i915_drv.c               | 10 ++-
 drivers/gpu/drm/i915/i915_drv.h               |  1 +
 .../gpu/drm/i915/selftests/mock_gem_device.c  |  3 -
 drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  5 --
 drivers/gpu/drm/mediatek/mtk_drm_gem.c        | 11 +++
 drivers/gpu/drm/msm/msm_drv.c                 | 13 ---
 drivers/gpu/drm/msm/msm_drv.h                 |  1 -
 drivers/gpu/drm/msm/msm_gem.c                 | 19 ++++-
 drivers/gpu/drm/nouveau/nouveau_drm.c         |  9 --
 drivers/gpu/drm/nouveau/nouveau_gem.c         | 13 +++
 drivers/gpu/drm/nouveau/nouveau_gem.h         |  2 +
 drivers/gpu/drm/nouveau/nouveau_prime.c       |  2 +
 drivers/gpu/drm/omapdrm/omap_drv.c            |  9 --
 drivers/gpu/drm/omapdrm/omap_gem.c            | 16 +++-
 drivers/gpu/drm/omapdrm/omap_gem.h            |  1 -
 drivers/gpu/drm/pl111/pl111_drv.c             | 28 +++++-
 drivers/gpu/drm/radeon/radeon_drv.c           | 23 +----
 drivers/gpu/drm/radeon/radeon_object.c        | 26 ++++++
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c   |  5 --
 drivers/gpu/drm/rockchip/rockchip_drm_gem.c   | 10 +++
 drivers/gpu/drm/tegra/drm.c                   |  4 -
 drivers/gpu/drm/tegra/gem.c                   |  8 ++
 drivers/gpu/drm/vc4/vc4_bo.c                  | 21 ++++-
 drivers/gpu/drm/vc4/vc4_drv.c                 | 12 ---
 drivers/gpu/drm/vc4/vc4_drv.h                 |  1 -
 drivers/gpu/drm/vgem/vgem_drv.c               | 21 +++--
 drivers/gpu/drm/vkms/vkms_drv.c               |  8 --
 drivers/gpu/drm/vkms/vkms_gem.c               | 13 +++
 drivers/gpu/drm/xen/xen_drm_front.c           | 12 +--
 drivers/gpu/drm/xen/xen_drm_front.h           |  2 +
 drivers/gpu/drm/xen/xen_drm_front_gem.c       | 15 ++++
 drivers/gpu/drm/xlnx/zynqmp_dpsub.c           | 14 +--
 include/drm/drm_drv.h                         | 85 +------------------
 52 files changed, 311 insertions(+), 306 deletions(-)

--
2.28.0


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

end of thread, other threads:[~2020-09-15  8:57 UTC | newest]

Thread overview: 243+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-13  8:36 [PATCH 00/20] Convert all remaining drivers to GEM object functions Thomas Zimmermann
2020-08-13  8:36 ` Thomas Zimmermann
2020-08-13  8:36 ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36 ` Thomas Zimmermann
2020-08-13  8:36 ` Thomas Zimmermann
2020-08-13  8:36 ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 01/20] drm/amdgpu: Introduce " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13 10:22   ` Christian König
2020-08-13 10:22     ` Christian König
2020-08-13 10:22     ` [Intel-gfx] " Christian König
2020-08-13 10:22     ` Christian König
2020-08-13 10:22     ` Christian König
2020-08-13 10:22     ` Christian König
2020-08-13 10:22     ` Christian König
2020-09-14 15:05     ` Thomas Zimmermann
2020-09-14 15:05       ` Thomas Zimmermann
2020-09-14 15:05       ` [Intel-gfx] " Thomas Zimmermann
2020-09-14 15:05       ` Thomas Zimmermann
2020-09-14 15:05       ` Thomas Zimmermann
2020-09-14 15:05       ` Thomas Zimmermann
2020-09-14 15:05       ` Thomas Zimmermann
     [not found]       ` <c445493b-9914-63f2-1cf2-c3c1de14e3e5-l3A5Bk7waGM@public.gmane.org>
2020-09-14 17:51         ` Christian König
2020-09-14 17:51           ` Christian König
2020-09-14 17:51           ` Christian König
2020-09-14 17:51           ` [Intel-gfx] " Christian König
2020-09-14 17:51           ` Christian König
2020-08-13  8:36 ` [PATCH 02/20] drm/armada: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 03/20] drm/etnaviv: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 04/20] drm/exynos: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 05/20] drm/gma500: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 06/20] drm/i915: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  9:08   ` Jani Nikula
2020-08-13  9:08     ` Jani Nikula
2020-08-13  9:08     ` [Intel-gfx] " Jani Nikula
2020-08-13  9:08     ` Jani Nikula
2020-08-13  9:08     ` Jani Nikula
2020-08-13  9:08     ` Jani Nikula
2020-08-13  9:13     ` Thomas Zimmermann
2020-08-13  9:13       ` Thomas Zimmermann
2020-08-13  9:13       ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  9:13       ` Thomas Zimmermann
2020-08-13  9:13       ` Thomas Zimmermann
2020-08-13  9:13       ` Thomas Zimmermann
2020-08-13  9:13       ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 07/20] drm/mediatek: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 08/20] drm/msm: Introduce GEM object funcs Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 09/20] drm/nouveau: Introduce GEM object functions Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 10/20] drm/omapdrm: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13 13:38   ` Laurent Pinchart
2020-08-13 13:38     ` Laurent Pinchart
2020-08-13 13:38     ` [Intel-gfx] " Laurent Pinchart
2020-08-13 13:38     ` Laurent Pinchart
2020-08-13 13:38     ` Laurent Pinchart
2020-08-13 13:38     ` Laurent Pinchart
2020-08-13 13:38     ` Laurent Pinchart
2020-08-19 10:43   ` Tomi Valkeinen
2020-08-19 10:43     ` Tomi Valkeinen
2020-08-19 10:43     ` [Intel-gfx] " Tomi Valkeinen
2020-08-19 10:43     ` Tomi Valkeinen
2020-08-19 10:43     ` Tomi Valkeinen
2020-08-19 10:43     ` Tomi Valkeinen
2020-08-19 10:43     ` Tomi Valkeinen
2020-08-13  8:36 ` [PATCH 11/20] drm/pl111: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 12/20] drm/radeon: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13 10:24   ` Christian König
2020-08-13 10:24     ` Christian König
2020-08-13 10:24     ` [Intel-gfx] " Christian König
2020-08-13 10:24     ` Christian König
2020-08-13 10:24     ` Christian König
2020-08-13 10:24     ` Christian König
2020-08-13 10:24     ` Christian König
2020-08-13 10:41     ` Thomas Zimmermann
2020-08-13 10:41       ` Thomas Zimmermann
2020-08-13 10:41       ` [Intel-gfx] " Thomas Zimmermann
2020-08-13 10:41       ` Thomas Zimmermann
2020-08-13 10:41       ` Thomas Zimmermann
2020-08-13 10:41       ` Thomas Zimmermann
2020-08-13 10:41       ` Thomas Zimmermann
2020-08-13 10:47       ` Christian König
2020-08-13 10:47         ` Christian König
2020-08-13 10:47         ` [Intel-gfx] " Christian König
2020-08-13 10:47         ` Christian König
2020-08-13 10:47         ` Christian König
2020-08-13 10:47         ` Christian König
2020-08-13 10:47         ` Christian König
2020-08-13  8:36 ` [PATCH 13/20] drm/rockchip: Convert to drm_gem_object_funcs Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13 11:26   ` [Intel-gfx] " kernel test robot
2020-08-13  8:36 ` [PATCH 14/20] drm/tegra: Introduce GEM object functions Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 15/20] drm/vc4: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 16/20] drm/vgem: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 17/20] drm/vkms: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 18/20] drm/xen: " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13 11:19   ` Oleksandr Andrushchenko
2020-08-13 11:19     ` Oleksandr Andrushchenko
2020-08-13 11:19     ` Oleksandr Andrushchenko
2020-08-13 11:19     ` [Intel-gfx] " Oleksandr Andrushchenko
2020-08-13 11:19     ` Oleksandr Andrushchenko
2020-08-13 11:19     ` Oleksandr Andrushchenko
2020-08-13 11:19     ` Oleksandr Andrushchenko
2020-09-15  8:56     ` Thomas Zimmermann
2020-09-15  8:56       ` Thomas Zimmermann
2020-09-15  8:56       ` Thomas Zimmermann
2020-09-15  8:56       ` [Intel-gfx] " Thomas Zimmermann
2020-09-15  8:56       ` Thomas Zimmermann
2020-09-15  8:56       ` Thomas Zimmermann
2020-09-15  8:56       ` Thomas Zimmermann
2020-09-15  8:56       ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 19/20] drm/xlnx: Initialize DRM driver instance with CMA helper macro Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13 13:36   ` Laurent Pinchart
2020-08-13 13:36     ` Laurent Pinchart
2020-08-13 13:36     ` [Intel-gfx] " Laurent Pinchart
2020-08-13 13:36     ` Laurent Pinchart
2020-08-13 13:36     ` Laurent Pinchart
2020-08-13 13:36     ` Laurent Pinchart
2020-08-13 13:36     ` Laurent Pinchart
2020-08-13 13:57     ` Thomas Zimmermann
2020-08-13 13:57       ` Thomas Zimmermann
2020-08-13 13:57       ` Thomas Zimmermann
2020-08-13 13:57       ` [Intel-gfx] " Thomas Zimmermann
2020-08-13 13:57       ` Thomas Zimmermann
2020-08-13 13:57       ` Thomas Zimmermann
2020-08-13 13:57       ` Thomas Zimmermann
2020-08-13 13:57       ` Thomas Zimmermann
2020-08-13  8:36 ` [PATCH 20/20] drm: Remove obsolete GEM and PRIME callbacks from struct drm_driver Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` [Intel-gfx] " Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13  8:36   ` Thomas Zimmermann
2020-08-13 10:16   ` Sam Ravnborg
2020-08-13 10:16     ` Sam Ravnborg
2020-08-13 10:16     ` [Intel-gfx] " Sam Ravnborg
2020-08-13 10:16     ` Sam Ravnborg
2020-08-13 10:16     ` Sam Ravnborg
2020-08-13 10:16     ` Sam Ravnborg
2020-08-13 10:16     ` Sam Ravnborg
2020-08-13 10:33     ` Thomas Zimmermann
2020-08-13 10:33       ` Thomas Zimmermann
2020-08-13 10:33       ` Thomas Zimmermann
2020-08-13 10:33       ` [Intel-gfx] " Thomas Zimmermann
2020-08-13 10:33       ` Thomas Zimmermann
2020-08-13 10:33       ` Thomas Zimmermann
2020-08-13 10:33       ` Thomas Zimmermann
2020-08-13 10:33       ` Thomas Zimmermann
2020-08-13 12:45   ` [Intel-gfx] " kernel test robot
2020-08-13 15:41   ` kernel test robot
2020-08-13  9:30 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Convert all remaining drivers to GEM object functions Patchwork
2020-08-13  9:47 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.