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
43 lines
1.3 KiB
Diff
43 lines
1.3 KiB
Diff
From f430e03c6b155d0e841db33020d53cac566a420e Mon Sep 17 00:00:00 2001
|
|
From: Robert Mader <robert.mader@collabora.com>
|
|
Date: Thu, 9 May 2024 21:07:07 +0200
|
|
Subject: [PATCH 2/4] libcamera: simple: Force-disable softwareISP for
|
|
millipixels
|
|
|
|
As the later uses libcamera and requires raw-streams to get passed
|
|
through. In the future, libcamera will likely support both - raw and
|
|
swIsp - at the same time.
|
|
---
|
|
src/libcamera/pipeline/simple/simple.cpp | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
|
index ac792b35..0ccbfa90 100644
|
|
--- a/src/libcamera/pipeline/simple/simple.cpp
|
|
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
|
@@ -7,6 +7,7 @@
|
|
*/
|
|
|
|
#include <algorithm>
|
|
+#include <fstream>
|
|
#include <iterator>
|
|
#include <list>
|
|
#include <map>
|
|
@@ -1546,6 +1547,14 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)
|
|
|
|
swIspEnabled_ = info->swIspEnabled;
|
|
|
|
+ std::string comm_string;
|
|
+ std::ifstream("/proc/self/comm") >> comm_string;
|
|
+ if (comm_string == "millipixels") {
|
|
+ LOG(SimplePipeline, Warning)
|
|
+ << "Detected millipixels, disabling swIsp";
|
|
+ swIspEnabled_ = false;
|
|
+ }
|
|
+
|
|
/* Locate the sensors. */
|
|
std::vector<MediaEntity *> sensors = locateSensors();
|
|
if (sensors.empty()) {
|
|
--
|
|
2.45.1
|
|
|