[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e549a9a3-6038-4a9a-aa2a-404fa8fad5c9@samsung.com>
Date: Tue, 14 Oct 2025 09:54:38 +0200
From: Marek Szyprowski <m.szyprowski@...sung.com>
To: Maxime Ripard <mripard@...nel.org>, Sumit Semwal
<sumit.semwal@...aro.org>, Benjamin Gaignard
<benjamin.gaignard@...labora.com>, Brian Starkey <Brian.Starkey@....com>,
John Stultz <jstultz@...gle.com>, "T.J. Mercier" <tjmercier@...gle.com>,
Jonathan Corbet <corbet@....net>, Christian König
<christian.koenig@....com>, Robin Murphy <robin.murphy@....com>
Cc: Andrew Davis <afd@...com>, Jared Kangas <jkangas@...hat.com>, Mattijs
Korpershoek <mkorpershoek@...nel.org>, linux-media@...r.kernel.org,
dri-devel@...ts.freedesktop.org, linaro-mm-sig@...ts.linaro.org,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
iommu@...ts.linux.dev
Subject: Re: [PATCH v8 3/5] dma: contiguous: Register reusable CMA regions
at boot
On 13.10.2025 10:35, Maxime Ripard wrote:
> In order to create a CMA dma-buf heap instance for each CMA heap region
> in the system, we need to collect all of them during boot.
>
> They are created from two main sources: the reserved-memory regions in
> the device tree, and the default CMA region created from the
> configuration or command line parameters, if no default region is
> provided in the device tree.
>
> Let's collect all the device-tree defined CMA regions flagged as
> reusable.
>
> Reviewed-by: T.J. Mercier <tjmercier@...gle.com>
> Signed-off-by: Maxime Ripard <mripard@...nel.org>
Acked-by: Marek Szyprowski <m.szyprowski@...sung.com>
> ---
> kernel/dma/contiguous.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c
> index d9b9dcba6ff7cf5904ac93b72c061fd59072c41b..d67e95094749d45f43c1809c175e491a3f55b2e1 100644
> --- a/kernel/dma/contiguous.c
> +++ b/kernel/dma/contiguous.c
> @@ -40,10 +40,11 @@
> #include <asm/page.h>
>
> #include <linux/memblock.h>
> #include <linux/err.h>
> #include <linux/sizes.h>
> +#include <linux/dma-buf/heaps/cma.h>
> #include <linux/dma-map-ops.h>
> #include <linux/cma.h>
> #include <linux/nospec.h>
>
> #ifdef CONFIG_CMA_SIZE_MBYTES
> @@ -491,9 +492,13 @@ static int __init rmem_cma_setup(struct reserved_mem *rmem)
> rmem->priv = cma;
>
> pr_info("Reserved memory: created CMA memory pool at %pa, size %ld MiB\n",
> &rmem->base, (unsigned long)rmem->size / SZ_1M);
>
> + err = dma_heap_cma_register_heap(cma);
> + if (err)
> + pr_warn("Couldn't register CMA heap.");
> +
> return 0;
> }
> RESERVEDMEM_OF_DECLARE(cma, "shared-dma-pool", rmem_cma_setup);
> #endif
>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
Powered by blists - more mailing lists