From: Daniel Vetter <daniel@ffwll.ch>
To: "Noralf Trønnes" <noralf@tronnes.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>,
Daniel Vetter <daniel.vetter@ffwll.ch>,
Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
DRI Development <dri-devel@lists.freedesktop.org>,
Gerd Hoffmann <kraxel@redhat.com>,
Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 01/59] drm/todo: Improve drm_gem_object funcs todo
Date: Mon, 17 Jun 2019 23:20:46 +0200 [thread overview]
Message-ID: <20190617212046.GL12905@phenom.ffwll.local> (raw)
In-Reply-To: <fd97eea4-32cd-81a4-6b3e-076a1d524a4a@tronnes.org>
On Mon, Jun 17, 2019 at 06:54:04PM +0200, Noralf Trønnes wrote:
>
>
> Den 17.06.2019 18.29, skrev Daniel Vetter:
> > On Mon, Jun 17, 2019 at 05:47:50PM +0200, Noralf Trønnes wrote:
> >>
> >>
> >> Den 14.06.2019 22.35, skrev Daniel Vetter:
> >>> We're kinda going in the wrong direction. Spotted while typing better
> >>> gem/prime docs.
> >>>
> >>> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> >>> Cc: Gerd Hoffmann <kraxel@redhat.com>
> >>> Cc: Rob Herring <robh@kernel.org>
> >>> Cc: Noralf Trønnes <noralf@tronnes.org>
> >>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> >>> ---
> >>> Documentation/gpu/todo.rst | 4 ++++
> >>> 1 file changed, 4 insertions(+)
> >>>
> >>> diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
> >>> index b4a76c2703e5..23583f0e3755 100644
> >>> --- a/Documentation/gpu/todo.rst
> >>> +++ b/Documentation/gpu/todo.rst
> >>> @@ -228,6 +228,10 @@ struct drm_gem_object_funcs
> >>> GEM objects can now have a function table instead of having the callbacks on the
> >>> DRM driver struct. This is now the preferred way and drivers can be moved over.
> >>>
> >>> +Unfortunately some of the recently added GEM helpers are going in the wrong
> >>> +direction by adding OPS macros that use the old, deprecated hooks. See
> >>> +DRM_GEM_CMA_VMAP_DRIVER_OPS, DRM_GEM_SHMEM_DRIVER_OPS, and DRM_GEM_VRAM_DRIVER_PRIME.
> >>> +
> >>
> >> Both DRM_GEM_CMA_VMAP_DRIVER_OPS and DRM_GEM_SHMEM_DRIVER_OPS use the
> >> GEM vtable. Or am I missing something here?
> >
> > gem vtable I mean drm_gem_object_funcs. Which these macros definitely
> > aren't useful for.
>
> #define DRM_GEM_CMA_VMAP_DRIVER_OPS \
> .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_vmap, \
> .gem_prime_mmap = drm_gem_prime_mmap
>
> __drm_gem_cma_create() calls ->gem_create_object.
>
> drm_cma_gem_create_object_default_funcs() sets:
> cma_obj->base.funcs = &drm_cma_gem_default_funcs;
>
> static const struct drm_gem_object_funcs drm_cma_gem_default_funcs = {
> .free = drm_gem_cma_free_object,
> .print_info = drm_gem_cma_print_info,
> .get_sg_table = drm_gem_cma_prime_get_sg_table,
> .vmap = drm_gem_cma_prime_vmap,
> .vm_ops = &drm_gem_cma_vm_ops,
> };
>
> The GEM SHMEM helper was made after drm_gem_object_funcs came about so
> it sets the default vtable in drm_gem_shmem_create():
> obj->funcs = &drm_gem_shmem_funcs;
>
> static const struct drm_gem_object_funcs drm_gem_shmem_funcs = {
> .free = drm_gem_shmem_free_object,
> .print_info = drm_gem_shmem_print_info,
> .pin = drm_gem_shmem_pin,
> .unpin = drm_gem_shmem_unpin,
> .get_sg_table = drm_gem_shmem_get_sg_table,
> .vmap = drm_gem_shmem_vmap,
> .vunmap = drm_gem_shmem_vunmap,
> .vm_ops = &drm_gem_shmem_vm_ops,
> };
>
> #define DRM_GEM_SHMEM_DRIVER_OPS \
> .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_shmem_prime_import_sg_table, \
> .gem_prime_mmap = drm_gem_prime_mmap, \
> .dumb_create = drm_gem_shmem_dumb_create
>
> So the two driver ops macroes only set the necessary bits to enable
> prime import/export/mmap and dumb buffer creation, leaving the rest to
> drm_gem_object_funcs.
> Have we deprecated any of these hooks?
Uh I was blind :-/ Unfortunately I pushed that patch already, I'll follow
up with a patch to fix it. vram helpers are not following latest best
practices though, right?
Also I guess a lot more of the cma helper using drivers could be cut over
to the vmap ones?
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-06-17 21:20 UTC|newest]
Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-14 20:35 [PATCH 00/59] prime doc polish and ... a few cleanups Daniel Vetter
2019-06-14 20:35 ` [PATCH 01/59] drm/todo: Improve drm_gem_object funcs todo Daniel Vetter
2019-06-14 20:44 ` Rob Herring
2019-06-14 22:53 ` Eric Anholt
2019-06-17 14:03 ` Daniel Vetter
2019-06-17 6:02 ` Gerd Hoffmann
2019-06-17 15:47 ` Noralf Trønnes
2019-06-17 16:29 ` Daniel Vetter
2019-06-17 16:54 ` Noralf Trønnes
2019-06-17 21:20 ` Daniel Vetter [this message]
2019-06-17 22:12 ` Noralf Trønnes
2019-06-18 14:02 ` [PATCH] drm/todo: Update drm_gem_object_funcs todo even more Daniel Vetter
2019-06-18 14:15 ` Noralf Trønnes
2019-06-18 18:25 ` Eric Engestrom
2019-06-20 12:52 ` Daniel Vetter
2019-06-27 12:15 ` [PATCH 01/59] drm/todo: Improve drm_gem_object funcs todo Thomas Zimmermann
2019-06-14 20:35 ` [PATCH 02/59] drm/gem: Unexport drm_gem_(un)pin/v(un)map Daniel Vetter
2019-06-14 20:35 ` [PATCH 03/59] drm/prime: Update docs Daniel Vetter
2019-06-15 11:41 ` Sam Ravnborg
2019-06-17 16:38 ` Daniel Vetter
2019-06-17 17:01 ` Sam Ravnborg
2019-06-17 17:47 ` Emil Velikov
2019-06-18 9:20 ` [PATCH 1/2] drm/prime: Shuffle functions Daniel Vetter
2019-06-18 9:20 ` [PATCH 2/2] drm/prime: Update docs Daniel Vetter
2019-06-19 9:03 ` Daniel Vetter
2019-06-19 10:21 ` Gerd Hoffmann
2019-06-19 10:50 ` Emil Velikov
2019-06-19 12:43 ` Noralf Trønnes
2019-06-20 12:44 ` Daniel Vetter
2019-06-20 12:46 ` [PATCH] " Daniel Vetter
2019-06-19 10:18 ` [PATCH 1/2] drm/prime: Shuffle functions Gerd Hoffmann
2019-06-19 10:47 ` Emil Velikov
2019-06-19 12:09 ` Noralf Trønnes
2019-06-14 20:35 ` [PATCH 04/59] drm/prime: Unconditionally set up the prime file private Daniel Vetter
2019-06-14 20:35 ` [PATCH 05/59] drm/prime: Make DRIVER_PRIME a no-op Daniel Vetter
2019-06-17 17:53 ` Emil Velikov
2019-06-14 20:35 ` [PATCH 07/59] drm/arm/komeda: Remove DRIVER_HAVE_IRQ Daniel Vetter
2019-06-17 6:26 ` james qian wang (Arm Technology China)
2019-06-17 13:43 ` Daniel Vetter
2019-06-18 4:41 ` james qian wang (Arm Technology China)
2019-06-18 5:04 ` james qian wang (Arm Technology China)
2019-06-17 18:01 ` Emil Velikov
2019-06-19 10:11 ` Liviu Dudau
2019-06-14 20:35 ` [PATCH 08/59] drm/omapdrm: drop fb_debug_enter/leave Daniel Vetter
2019-06-14 20:35 ` [PATCH 10/59] drm/arc: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-14 20:35 ` [PATCH 11/59] drm/arm: " Daniel Vetter
2019-06-17 3:22 ` james qian wang (Arm Technology China)
2019-06-19 10:11 ` Liviu Dudau
2019-06-14 20:35 ` [PATCH 12/59] drm/atmel: " Daniel Vetter
2019-06-14 21:43 ` Sam Ravnborg
2019-06-14 20:35 ` [PATCH 13/59] drm/etnaviv: " Daniel Vetter
2019-06-16 7:02 ` Christian Gmeiner
2019-06-25 16:12 ` Lucas Stach
2019-06-14 20:35 ` [PATCH 14/59] drm/exynos: Drop drm_gem_prime_export Daniel Vetter
2019-06-14 20:35 ` [PATCH 15/59] drm/fsl-dcu: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-17 13:58 ` Stefan Agner
2019-06-14 20:35 ` [PATCH 16/59] drm/hisilicon: " Daniel Vetter
2019-06-14 21:29 ` Sam Ravnborg
2019-06-14 20:35 ` [PATCH 17/59] drm/imx: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 18/59] drm/mcde: " Daniel Vetter
2019-06-15 8:31 ` Linus Walleij
2019-06-14 20:35 ` [PATCH 19/59] drm/mtk: " Daniel Vetter
2019-06-17 1:51 ` CK Hu
2019-06-14 20:35 ` [PATCH 20/59] drm/meson: " Daniel Vetter
2019-06-18 9:48 ` Neil Armstrong
2019-06-14 20:35 ` [PATCH 22/59] drm/mxsfb: " Daniel Vetter
2019-06-17 13:59 ` Stefan Agner
2019-06-14 20:35 ` [PATCH 24/59] drm/pl111: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 25/59] drm/qxl: " Daniel Vetter
2019-06-17 6:03 ` Gerd Hoffmann
2019-06-14 20:35 ` [PATCH 26/59] drm/rcar-du: " Daniel Vetter
2019-06-18 7:35 ` Laurent Pinchart
2019-06-14 20:35 ` [PATCH 27/59] drm/rockchip: " Daniel Vetter
2019-06-15 22:36 ` Heiko Stuebner
2019-06-14 20:35 ` [PATCH 28/59] drm/shmob: " Daniel Vetter
2019-06-18 7:35 ` Laurent Pinchart
2019-06-14 20:35 ` [PATCH 29/59] drm/sti: " Daniel Vetter
2019-06-20 15:08 ` Benjamin Gaignard
2019-06-14 20:35 ` [PATCH 30/59] drm/stm: " Daniel Vetter
2019-06-18 9:55 ` Philippe CORNU
2019-06-14 20:35 ` [PATCH 31/59] drm/tilcdc: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 32/59] drm/tve2000: " Daniel Vetter
2019-06-15 8:34 ` Linus Walleij
2019-06-15 9:14 ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 33/59] drm/vboxvideo: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 34/59] drm/vc3: Drop drm_gem_prime_import Daniel Vetter
2019-06-14 20:35 ` [PATCH 35/59] drm/radeon: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 36/59] drm/vgem: Drop drm_gem_prime_export Daniel Vetter
2019-06-14 20:35 ` [PATCH 37/59] drm/virtio: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-17 6:03 ` Gerd Hoffmann
2019-06-14 20:35 ` [PATCH 38/59] drm/xen: " Daniel Vetter
2019-06-18 5:05 ` [Xen-devel] " Oleksandr Andrushchenko
2019-06-14 20:35 ` [PATCH 39/59] drm/zte: " Daniel Vetter
2019-06-18 13:15 ` Shawn Guo
2019-06-14 20:35 ` [PATCH 40/59] drm/vram-helper: " Daniel Vetter
2019-06-17 6:03 ` Gerd Hoffmann
2019-06-17 8:24 ` Gerd Hoffmann
2019-06-17 13:59 ` Daniel Vetter
2019-06-18 4:49 ` Gerd Hoffmann
2019-06-18 7:59 ` Daniel Vetter
2019-06-19 11:21 ` Gerd Hoffmann
2019-06-19 11:31 ` Daniel Vetter
2019-06-27 8:27 ` Thomas Zimmermann
2019-06-27 9:59 ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 41/59] drm/prime: automatically set gem_obj->resv on import Daniel Vetter
2019-06-14 20:35 ` [PATCH 42/59] drm/etnaviv: Drop resv argument from etnaviv_gem_new_impl Daniel Vetter
2019-06-25 16:10 ` Lucas Stach
2019-06-14 20:35 ` [PATCH 43/59] drm/lima: Drop resv argument from lima_bo_create_struct Daniel Vetter
2019-06-15 10:03 ` Qiang Yu
2019-06-14 20:36 ` [PATCH 44/59] drm/mediatek: Use drm_atomic_helper_wait_for_fences Daniel Vetter
2019-06-17 5:19 ` CK Hu
2019-06-14 20:36 ` [PATCH 46/59] drm/panfrost: don't set gem_obj->resv for prime import anymore Daniel Vetter
2019-06-14 21:05 ` Rob Herring
2019-06-14 20:36 ` [PATCH 47/59] drm/vc4: Don set gem_obj->resv in " Daniel Vetter
2019-06-14 20:36 ` [PATCH 48/59] drm/vgem: Ditch attach trickery in the fence ioctl Daniel Vetter
2019-06-18 12:31 ` Chris Wilson
2019-06-18 13:18 ` Daniel Vetter
2019-06-14 20:36 ` [PATCH 50/59] drm/vc4: Use drm_gem_fb_prepare_fb Daniel Vetter
[not found] ` <20190614203615.12639-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-14 20:35 ` [PATCH 06/59] drm/prime: Actually remove DRIVER_PRIME everywhere Daniel Vetter
[not found] ` <20190614203615.12639-7-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-14 21:36 ` Sam Ravnborg
2019-06-17 15:39 ` [PATCH] " Daniel Vetter
2019-06-17 17:56 ` [PATCH 06/59] " Emil Velikov
2019-06-14 20:35 ` [PATCH 09/59] drm/prime: Align gem_prime_export with obj_funcs.export Daniel Vetter
[not found] ` <20190614203615.12639-10-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-17 9:32 ` Koenig, Christian
2019-06-17 9:53 ` Thierry Reding
2019-06-21 10:37 ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 21/59] drm/msm: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-14 20:35 ` [PATCH 23/59] drm/nouveau: " Daniel Vetter
2019-06-14 20:36 ` [PATCH 45/59] drm/msm: Drop robj from msm_gem_new_impl Daniel Vetter
2019-06-14 20:36 ` [PATCH 49/59] drm/msm: Use drm_gem_fb_prepare_fb Daniel Vetter
2019-06-14 20:36 ` [PATCH 51/59] drm/radeon: Fill out gem_object->resv Daniel Vetter
2019-06-14 20:36 ` [PATCH 52/59] drm/nouveau: " Daniel Vetter
2019-06-14 20:36 ` [PATCH 53/59] drm/amdgpu: " Daniel Vetter
2019-06-14 20:36 ` [PATCH 54/59] drm/prime: Ditch gem_prime_res_obj hook Daniel Vetter
2019-06-14 20:36 ` [PATCH 55/59] drm/todo: remove gem_prime_import/export todo Daniel Vetter
2019-06-14 20:36 ` [PATCH 56/59] drm/todo: Update backlight todo Daniel Vetter
2019-06-14 21:46 ` Sam Ravnborg
2019-06-21 13:11 ` Daniel Thompson
2019-06-14 20:36 ` [PATCH 57/59] drm/todo: Update mmap todo Daniel Vetter
2019-06-14 20:36 ` [PATCH 58/59] drm/todo: Add new debugfs todo Daniel Vetter
2019-06-15 6:23 ` Greg Kroah-Hartman
2019-06-18 15:19 ` drm connectors, tegra, and the web they weave (was Re: [PATCH 58/59] drm/todo: Add new debugfs todo) Greg Kroah-Hartman
2019-06-18 15:25 ` Greg Kroah-Hartman
2019-06-18 17:32 ` Daniel Vetter
2019-06-18 18:01 ` Greg Kroah-Hartman
2019-06-18 21:46 ` Daniel Vetter
2019-06-20 14:50 ` Thierry Reding
2019-06-20 15:11 ` Thierry Reding
2019-06-18 15:37 ` Jon Hunter
2019-06-20 15:16 ` Thierry Reding
2019-06-20 14:57 ` Thierry Reding
2019-06-14 20:36 ` [PATCH 59/59] drm/doc: Document kapi doc expectations Daniel Vetter
2019-06-17 8:52 ` Jani Nikula
2019-06-17 18:21 ` [Intel-gfx] [PATCH 00/59] prime doc polish and ... a few cleanups Emil Velikov
2019-06-18 10:41 ` 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=20190617212046.GL12905@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=daniel.vetter@ffwll.ch \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=kraxel@redhat.com \
--cc=noralf@tronnes.org \
--cc=tzimmermann@suse.de \
/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;
as well as URLs for NNTP newsgroup(s).