f77dc643c9
which are probably too experimental to ask Alpine to carry them, while being very helpful for devices that pmOS targets. The explicit goal is to help Libcamera development and drop the fork again. For the dma heaps permissions see the ongoing debate in https://lore.kernel.org/all/bb372250-e8b8-4458-bc99-dd8365b06991@redhat.com/ It's possible that Libcamera will switch to another solution in a future release or that memory accounting issues around dma heaps will need to get fixed in the kernel before the permissions can be set by default by distros. Regarding `libcamera: simple:` patches: - 0001-0003 can likely be dropped once the Libcamera SoftISP gains support for raw (bayer) streams passthrough (on top of converting to RGB or YUV formats). - 0004 will likely be needed until Megi downstream patches for the Pinephone get improved/upstreamed and Libcamera adopted accordingly. With these patches libcamera and pipewire based applications should work on the Librem5, Pinephone and - hopefully soon - devices like the OP6. See https://gitlab.com/postmarketOS/pmaports/-/merge_requests/5162 for more context. [ci:skip-build]: already built successfully in CI
32 lines
1.4 KiB
Diff
32 lines
1.4 KiB
Diff
From 0e10f1da5892156dc31445918303dc5eb80f9d0f Mon Sep 17 00:00:00 2001
|
|
From: Robert Mader <robert.mader@collabora.com>
|
|
Date: Mon, 6 May 2024 21:21:57 +0200
|
|
Subject: [PATCH 4/4] libcamera: simple: Skip hwISP formats if swISP is active
|
|
|
|
On devices like the Pinephone libcamera will advertise support for
|
|
formats provided by the HW ISP and the SW ISP at the same time. The
|
|
reason why we enable the SW ISP in the first place is, however, that the
|
|
HW ISP does not work reliable atm. Thus filter out formats from the HW
|
|
ISP when the SW ISP is enabled, to ensure we use the later.
|
|
---
|
|
src/libcamera/pipeline/simple/simple.cpp | 4 +---
|
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
|
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
|
index 71a44237..36604a83 100644
|
|
--- a/src/libcamera/pipeline/simple/simple.cpp
|
|
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
|
@@ -652,9 +652,7 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
|
|
config.outputFormats = swIsp_->formats(pixelFormat);
|
|
config.outputSizes = swIsp_->sizes(pixelFormat, format.size);
|
|
if (config.outputFormats.empty()) {
|
|
- /* Do not use swIsp for unsupported pixelFormat's. */
|
|
- config.outputFormats = { pixelFormat };
|
|
- config.outputSizes = config.captureSize;
|
|
+ continue;
|
|
}
|
|
} else {
|
|
config.outputFormats = { pixelFormat };
|
|
--
|
|
2.45.1
|
|
|