libcamera: software_isp: Allow using dma-buffers from /dev/udmabuf

Allow the DmaBufAllocator used by the software ISP to use memfd() +
/dev/udmabuf for the software ISP destination buffers.

This is useful on Linux distributions where normal users are not allowed
to access /dev/dma_heap/* while they are allowed to access /dev/udmabuf.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # Lenovo-x13s
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Hans de Goede 2024-06-03 13:12:59 +02:00 committed by Kieran Bingham
parent ea4baaacc3
commit d284ac2d59

View file

@ -67,7 +67,8 @@ LOG_DEFINE_CATEGORY(SoftwareIsp)
*/ */
SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor) SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor)
: dmaHeap_(DmaBufAllocator::DmaBufAllocatorFlag::CmaHeap | : dmaHeap_(DmaBufAllocator::DmaBufAllocatorFlag::CmaHeap |
DmaBufAllocator::DmaBufAllocatorFlag::SystemHeap) DmaBufAllocator::DmaBufAllocatorFlag::SystemHeap |
DmaBufAllocator::DmaBufAllocatorFlag::UDmaBuf)
{ {
/* /*
* debayerParams_ must be initialized because the initial value is used for * debayerParams_ must be initialized because the initial value is used for