public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: "Christian König" <christian.koenig@amd.com>,
	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:24:41 +0100	[thread overview]
Message-ID: <238ce852-730b-e31c-a6fe-a9ecaca497e3@suse.de> (raw)
In-Reply-To: <b190801b-b8be-c9df-f203-3e42eb97cea4@amd.com>


[-- Attachment #1.1: Type: text/plain, Size: 3373 bytes --]

Hi

Am 22.02.21 um 14:09 schrieb Christian König:
> 
> 
> 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.

And this bug proves that it is. :)

> 
> Have you thought about doing that instead?

There appears to be some useful code in drm_gem_prime_import_dev(). But 
if the general sentiment goes towards removing 
gem_prime_import_sg_table, we can work towards that as well.

Best regards
Thomas

> 
> 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
>>
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

  reply	other threads:[~2021-02-22 13:31 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 ` [PATCH v2 0/3] drm/prime: Only call dma_map_sgtable() for devices with DMA support Christian König
2021-02-22 13:24   ` Thomas Zimmermann [this message]
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=238ce852-730b-e31c-a6fe-a9ecaca497e3@suse.de \
    --to=tzimmermann@suse.de \
    --cc=airlied@linux.ie \
    --cc=alyssa.rosenzweig@collabora.com \
    --cc=christian.koenig@amd.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=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