[PATCH] drm/cma-helper: Release non-coherent memory with dma_free_noncoherent()
Thomas Zimmermann
tzimmermann at suse.de
Fri Nov 12 15:37:12 UTC 2021
Hi Paul
Am 12.11.21 um 16:26 schrieb Paul Cercueil:
> Hi Thomas,
>
> I never received the original patch and I can't find it online either?
It was posted a while ago [1] and got lost. I remember that you had a
problem with your email setup. Maybe that's why you didn't see it.
>
> Anyway:
> Acked-by: Paul Cercueil <paul at crapouillou.net>
Thanks a lot.
Best regards
Thomas
[1]
https://lore.kernel.org/dri-devel/20210708175146.10618-1-tzimmermann@suse.de/
>
> Cheers,
> -Paul
>
>
> Le ven., nov. 12 2021 at 16:05:47 +0100, Thomas Zimmermann
> <tzimmermann at suse.de> a écrit :
>> Ping for review.
>>
>> Am 08.07.21 um 19:51 schrieb Thomas Zimmermann:
>>> The GEM CMA helpers allocate non-coherent (i.e., cached) backing storage
>>> with dma_alloc_noncoherent(), but release it with dma_free_wc(). Fix
>>> this
>>> with a call to dma_free_noncoherent(). Writecombining storage is still
>>> released with dma_free_wc().
>>>
>>> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
>>> Fixes: cf8ccbc72d61 ("drm: Add support for GEM buffers backed by
>>> non-coherent memory")
>>> Cc: Paul Cercueil <paul at crapouillou.net>
>>> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>>> Cc: Maxime Ripard <mripard at kernel.org>
>>> Cc: David Airlie <airlied at linux.ie>
>>> Cc: Daniel Vetter <daniel at ffwll.ch>
>>> Cc: dri-devel at lists.freedesktop.org
>>> ---
>>> drivers/gpu/drm/drm_gem_cma_helper.c | 9 +++++++--
>>> 1 file changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c
>>> b/drivers/gpu/drm/drm_gem_cma_helper.c
>>> index d53388199f34..9d05674550a4 100644
>>> --- a/drivers/gpu/drm/drm_gem_cma_helper.c
>>> +++ b/drivers/gpu/drm/drm_gem_cma_helper.c
>>> @@ -210,8 +210,13 @@ void drm_gem_cma_free_object(struct
>>> drm_gem_object *gem_obj)
>>> dma_buf_vunmap(gem_obj->import_attach->dmabuf, &map);
>>> drm_prime_gem_destroy(gem_obj, cma_obj->sgt);
>>> } else if (cma_obj->vaddr) {
>>> - dma_free_wc(gem_obj->dev->dev, cma_obj->base.size,
>>> - cma_obj->vaddr, cma_obj->paddr);
>>> + if (cma_obj->map_noncoherent)
>>> + dma_free_noncoherent(gem_obj->dev->dev, cma_obj->base.size,
>>> + cma_obj->vaddr, cma_obj->paddr,
>>> + DMA_TO_DEVICE);
>>> + else
>>> + dma_free_wc(gem_obj->dev->dev, cma_obj->base.size,
>>> + cma_obj->vaddr, cma_obj->paddr);
>>> }
>>>
>>> drm_gem_object_release(gem_obj);
>>>
>>
>> --
>> Thomas Zimmermann
>> Graphics Driver Developer
>> SUSE Software Solutions Germany GmbH
>> Maxfeldstr. 5, 90409 Nürnberg, Germany
>> (HRB 36809, AG Nürnberg)
>> Geschäftsführer: Ivo Totev
>
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20211112/7a759872/attachment.sig>
More information about the dri-devel
mailing list