Message ID | 20241025-b4-linux-next-24-10-25-camss-dts-fixups-v1-0-cdff2f1a5792@linaro.org |
---|---|
Headers | show |
Series | qcom: camss: dts: Prune and tidy x13s, rb5 and rb3 CAMSS dts | expand |
On Fri, Oct 25, 2024 at 8:49 AM Bryan O'Donoghue <bryan.odonoghue@linaro.org> 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. BR, -R > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > --- > .../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 > >
+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@linaro.org> 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@linaro.org> > > --- > > .../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 > > > >
On Fri, Nov 1, 2024 at 8:18 AM Kieran Bingham <kieran.bingham@ideasonboard.com> 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@linaro.org> 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@linaro.org> > > > --- > > > .../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 > > > > > >
On 01/11/2024 15:18, Kieran Bingham wrote: > Presently with SoftISP being CPU only - physically contiguous memory is > not required. Yes, I've misinterpreted what we discussed, udmabuf should be enough on qcom. > 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? I believe it should be fine because we do glTexImage2D on the way in ATM and have support for eglCreateImageKHR(.., .., .., .., .., EGL_DMA_BUF_PLANE0_FD_EXT, dma_fd); but in either case phys contig doesn't matter. --- bod
This series does a refresh on upstream x13s, rb5 and rb3 dts. Firstly: Moving from static dts files for the mezzanine cards to dtso. A recent examples of this approach is here: Commit: bc90f56a1699 ("arm64: dts: sm8650-hdk: add support for the Display Card overlay") Taking this example this series converts rb3 and rb5 to the same overlay format. The apq8016-sbc-d3-camera-mezzanine.dtb is omitted from this series as I haven't had an opportunity to test on this platform but, will do so at a later date. Secondly: rb3 and rb5 both declare clock-lanes in their respective sensor blocks. Neither sensor actually requires this declaration. Drop in both cases. Finally: Declare CMA heaps for both mezzanine boards so that libcamera's DMA buf will work with upstream rb3/rb5 camera mezzanine boards. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- Bryan O'Donoghue (6): arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Convert mezzanine riser to dtbo arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Convert mezzanine riser to dtso arm64: dts: qcom: sc8280xp-x13s: Drop redundant clock-lanes from camera@10 arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Drop redundant clock-lanes from camera@1a arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add cma heap for libcamera softisp support arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Add cma heap for libcamera softisp support arch/arm64/boot/dts/qcom/Makefile | 6 ++++++ ...zzanine.dts => qrb5165-rb5-vision-mezzanine.dtso} | 19 +++++++++++++++++-- .../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 1 - ...e.dts => sdm845-db845c-navigation-mezzanine.dtso} | 20 ++++++++++++++++++-- 4 files changed, 41 insertions(+), 5 deletions(-) --- base-commit: a39230ecf6b3057f5897bc4744a790070cfbe7a8 change-id: 20241025-b4-linux-next-24-10-25-camss-dts-fixups-1a094dc5a60f Best regards,