Re: [PATCH 6/6] arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Add cma heap for libcamera softisp support
From: Kieran Bingham
Date: Fri Nov 01 2024 - 11:18:49 EST
+Cc Laurent
Quoting Rob Clark (2024-11-01 12:33:44)
> On Fri, Oct 25, 2024 at 8:49 AM Bryan O'Donoghue
> <bryan.odonoghue@xxxxxxxxxx> wrote:
> >
> > libcamera softisp requires a linux,cma heap export in order to support
> > user-space debayering, 3a and export to other system components such as
> > pipewire, Firefox/Chromium - Hangouts, Zoom etc.
>
> AFAIU libcamera could use udmabuf, etc, and there is no hw requirement
> for CMA. So it doesn't seem we should be adding this to dt. And I'd
> really prefer that we not be using CMA just for lolz.
I agree here. Otherwise this theoretically locks this memory to the pool
'forever'. It's not something we should define in device tree.
udmabuf provides a means to get memfd allocated memory which is not
physically contiguous - but /is/ managed by a dmabuf handle.
Presently with SoftISP being CPU only - physically contiguous memory is
not required.
Bryan, will this still be true when you have a GPU based ISP ? Will that
require physically contiguous memory ? Or will the mapping into the GPU
handle any required translations?
--
Kieran
>
> BR,
> -R
>
> > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> > ---
> > .../boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
> > index d62a20f018e7a7e1c7e77f0c927c2d9fe7ae8509..c8507afcd1e0d1f9b14b6e4edcbc646032e7b6c9 100644
> > --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
> > +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
> > @@ -9,6 +9,17 @@
> > #include <dt-bindings/clock/qcom,camcc-sdm845.h>
> > #include <dt-bindings/gpio/gpio.h>
> >
> > +/ {
> > + reserved-memory {
> > + linux,cma {
> > + compatible = "shared-dma-pool";
> > + size = <0x0 0x8000000>;
> > + reusable;
> > + linux,cma-default;
> > + };
> > + };
> > +};
> > +
> > &camss {
> > vdda-phy-supply = <&vreg_l1a_0p875>;
> > vdda-pll-supply = <&vreg_l26a_1p2>;
> >
> > --
> > 2.47.0
> >
> >