From: "Christian König" <christian.koenig@amd.com>
To: Thomas Zimmermann <tzimmermann@suse.de>,
daniel@ffwll.ch, airlied@linux.ie,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
yuq825@gmail.com, robh@kernel.org, tomeu.vizoso@collabora.com,
steven.price@arm.com, alyssa.rosenzweig@collabora.com,
eric@anholt.net, sumit.semwal@linaro.org,
stern@rowland.harvard.edu
Cc: dri-devel@lists.freedesktop.org, lima@lists.freedesktop.org,
linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org
Subject: Re: [PATCH v2 0/3] drm/prime: Only call dma_map_sgtable() for devices with DMA support
Date: Mon, 22 Feb 2021 14:09:03 +0100 [thread overview]
Message-ID: <b190801b-b8be-c9df-f203-3e42eb97cea4@amd.com> (raw)
In-Reply-To: <20210222124328.27340-1-tzimmermann@suse.de>
Am 22.02.21 um 13:43 schrieb Thomas Zimmermann:
> USB-based drivers cannot use DMA, so the importing of dma-buf attachments
> currently fails for udl and gm12u320. This breaks joining/mirroring of
> displays.
>
> The fix is now a little series. To solve the issue on the importer
> side (i.e., the affected USB-based driver), patch 1 introduces a new
> PRIME callback, struct drm_driver.gem_prime_create_object, which creates
> an object and gives more control to the importing driver. Specifically,
> udl and gm12u320 can now avoid the creation of a scatter/gather table
> for the imported pages. Patch 1 is self-contained in the sense that it
> can be backported into older kernels.
Mhm, that sounds like a little overkill to me.
Drivers can already import the DMA-bufs all by them selves without the
help of the DRM functions. See amdgpu for an example.
Daniel also already noted to me that he sees the DRM helper as a bit
questionable middle layer.
Have you thought about doing that instead?
Christian.
>
> Patches 2 and 3 update SHMEM and CMA helpers to use the new callback.
> Effectively this moves the sg table setup from the PRIME helpers into
> the memory managers. SHMEM now supports devices without DMA support,
> so custom code can be removed from udl and g12u320.
>
> Tested by joining/mirroring displays of udl and radeon under Gnome/X11.
>
> v2:
> * move fix to importer side (Christian, Daniel)
> * update SHMEM and CMA helpers for new PRIME callbacks
>
> Thomas Zimmermann (3):
> drm: Support importing dmabufs into drivers without DMA
> drm/shmem-helper: Implement struct drm_driver.gem_prime_create_object
> drm/cma-helper: Implement struct drm_driver.gem_prime_create_object
>
> drivers/gpu/drm/drm_gem_cma_helper.c | 62 ++++++++++++++-----------
> drivers/gpu/drm/drm_gem_shmem_helper.c | 38 ++++++++++-----
> drivers/gpu/drm/drm_prime.c | 43 +++++++++++------
> drivers/gpu/drm/lima/lima_drv.c | 2 +-
> drivers/gpu/drm/panfrost/panfrost_drv.c | 2 +-
> drivers/gpu/drm/panfrost/panfrost_gem.c | 6 +--
> drivers/gpu/drm/panfrost/panfrost_gem.h | 4 +-
> drivers/gpu/drm/pl111/pl111_drv.c | 8 ++--
> drivers/gpu/drm/v3d/v3d_bo.c | 6 +--
> drivers/gpu/drm/v3d/v3d_drv.c | 2 +-
> drivers/gpu/drm/v3d/v3d_drv.h | 5 +-
> include/drm/drm_drv.h | 12 +++++
> include/drm/drm_gem_cma_helper.h | 12 ++---
> include/drm/drm_gem_shmem_helper.h | 6 +--
> 14 files changed, 120 insertions(+), 88 deletions(-)
>
> --
> 2.30.1
>
next prev parent reply other threads:[~2021-02-22 13:12 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-22 12:43 [PATCH v2 0/3] drm/prime: Only call dma_map_sgtable() for devices with DMA support Thomas Zimmermann
2021-02-22 12:43 ` [PATCH v2 1/3] drm: Support importing dmabufs into drivers without DMA Thomas Zimmermann
2021-02-22 13:10 ` Ahmed S. Darwish
2021-02-22 16:31 ` Daniel Vetter
2021-02-22 12:43 ` [PATCH v2 2/3] drm/shmem-helper: Implement struct drm_driver.gem_prime_create_object Thomas Zimmermann
2021-02-22 12:43 ` [PATCH v2 3/3] drm/cma-helper: " Thomas Zimmermann
2021-02-22 13:09 ` Christian König [this message]
2021-02-22 13:24 ` [PATCH v2 0/3] drm/prime: Only call dma_map_sgtable() for devices with DMA support Thomas Zimmermann
2021-02-22 16:10 ` Daniel Vetter
2021-02-22 16:25 ` Thomas Zimmermann
2021-02-22 16:34 ` Daniel Vetter
2021-02-23 8:19 ` Thomas Zimmermann
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=b190801b-b8be-c9df-f203-3e42eb97cea4@amd.com \
--to=christian.koenig@amd.com \
--cc=airlied@linux.ie \
--cc=alyssa.rosenzweig@collabora.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=eric@anholt.net \
--cc=lima@lists.freedesktop.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-media@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=robh@kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=steven.price@arm.com \
--cc=sumit.semwal@linaro.org \
--cc=tomeu.vizoso@collabora.com \
--cc=tzimmermann@suse.de \
--cc=yuq825@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