Re: [PATCH 6/6] arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Add cma heap for libcamera softisp support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 1, 2024 at 8:18 AM Kieran Bingham
<kieran.bingham@xxxxxxxxxxxxxxxx> wrote:
>
> +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?

GPU does not require phys contiguous.  OTOH it may/will impose some
layout constraints.

I'm kinda leaning towards teaching gbm to allocate YUV plus add a
GBO_BO_USE_CPU usage bit if softisp also needs CPU access.  (Modern
adreno can do cached-coherent buffers, at some small performance cost,
so that CPU access doesn't have to fall off a cliff.)  But that
doesn't exist yet.

BR,
-R

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





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux