From patchwork Sun Oct 25 15:52:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 28601 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 95786C324C for ; Sun, 25 Oct 2026 15:52:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 42F9968FC1; Sun, 25 Oct 2026 16:52:43 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="UIZlnwtz"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jEaYYCeO"; dkim-atps=neutral Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id EE98C68FBA for ; Sun, 25 Oct 2026 16:52:40 +0100 (CET) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69PFj08M1734787 for ; Sun, 25 Oct 2026 15:52:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=lUCuBgilExI YyVh1f3DKUOEEkSEbVTUP3/HIxXCl6Aw=; b=UIZlnwtzhKAJdoI/tZz9smtDyuY LkhAXnS7D/2F8miWwijVnsQBFpKmXGc+FZgqt4FNtTtr6ErwQ2w2GUNcMNjXHnpd BP8FqBCbsWMP9EofTOtUc745heA4GsCdmDnC9Y+CljXKVAJy8rabaQrhsC032Y2e DDnxzv7MDKzM+C21K57JpLBBukyCkscZYPNBgOK7robDzf0/BfU1sLlmc2l2lUrq vGPZaYnrsKCFTycPCx2iT70UdaQd+hS/kWmFYXOPTNnsGla/Ink75nsy0LdaJ/ZH n1e3hydfZwtZ2mKV5I36FMLx63xaQlw2pVS+Kp8jWc/7tBlFlljKIvLd8mg== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hgjcgupr3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 25 Oct 2026 15:52:38 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-93f6f4fe531so431079385a.0 for ; Sun, 25 Oct 2026 08:52:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1792943557; x=1793548357; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lUCuBgilExIYyVh1f3DKUOEEkSEbVTUP3/HIxXCl6Aw=; b=jEaYYCeOIKyF5sIRq6PoXGBMFAygbcUoHLjBiCTOBbD8+oWBBowf8LEl6GTG/KG7Hg h+Po8zAlqcJTjy4JGLV2CyIVEbk4ExMxLfsfUV3F9KUKtgPYBjxpasFmxEZC3XSdUvnX XcaBntFHlsWpdvutQFBI8OKolIS+ftEcwXMDbv8gxw3SRp2ALUuzz+XCuFfran4BwARm M/cNTmeiqgdKJgoGR5KRVN45zijoYFiy2ebngEYSWZRmDlseEHhj31jHKZLissPKSFYf IaGEtRRVbuL/x0140NMV77rq4XrkamO3A6TIvPXn3SOkEY5vvn/HQ6EJohmSomTYfAXp Z8Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792943557; x=1793548357; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=lUCuBgilExIYyVh1f3DKUOEEkSEbVTUP3/HIxXCl6Aw=; b=hKMj3OVMCwUn6FzdqtKxCSoLaues8HPQMhnCd49dEXU73ZFDJGmduU7aEckTjar07B pt4UKl8Ao6SmXlwRMjfgShx1+n374f6DshCB8nzNiD5m6R9iXp3YmV93xTJhmMnADOkY MctC4HRT9TMPTf0uzLoO8XD5mD5hqp12Fv4NKPB5Xdc+pwFyxxIYF9YPFEP7PWOd9PCv +RjgEb25Nd7eGBWiHRoLxww+O8xUV8Ety25BXkjl/74T5+d3Yhi44FR85S1ear1fAu+z qgeD5dsev3XbC13hy14x8TfXG4dy4uFQ0P/9ZV27KHrPERdTgIxTMJXFhViW5o+UgtXj 8yTQ== X-Gm-Message-State: AFq9FYKDceVrYmwB7kiRnJnA7LCHOPFifeLS+IBkXtsSAgqSL7XgjBo+ b36NbEQjcmjRyWRMDKLuFbB6+5Mn2UUeYu95BhvJ7zBUZGr7Bz5B4WDm4chlzXdYR+JsPlwMJ7N Sgdm7gLIlIPmwpo+RqElrpuVOIyTdC7vbqyhEjXnGVe2JNQBShFzzr9FAnf8aGitISEgc1bogkZ rXFQ3nJBzv X-Gm-Gg: AYBFou1iFWTbWLduY75AxRhiHMgLri+fsaQHay3Cy7oeQ9h2IUY+Kco22XCNHO5ti6e zKpIGVug/lX+5xU2XrwyEBLsfGh1VHhN2Qel10fPkHF88fTAfIRVcplHJMWJbpD3tyQuPnaBaMA v/FpeZTLhysrIvHhlVTHOJY9RTByKP+4bAAvOCY3qF63HlIYDAP1By6i50lIFw5juLCUGZu+vjg B37t/ofild41uq+UfX3wuEc4So9HBJLMVO7ZEnh0rV7VChZGOA09sWQpekoKgOox8VEvXd+DKVq a1AnRtqbW7ipusm4hxfDzH6XisJxUDL5RRTVkp/nfXCk9gfnRdPywPBGogR/beI8VfTQF+aHY0b +CBJ3AO5+7KfWR8aj4iXH7N8U4M6Vq4TUXvn7SX4gebSloRHlJ1ZtGdWkl17SqIhf48ohy8Z1/o 7DBqJBdkEuZobBrg== X-Received: by 2002:a05:620a:470d:b0:93e:d364:c9fc with SMTP id af79cd13be357-940ef7b39e5mr681426185a.5.1792943557241; Sun, 25 Oct 2026 08:52:37 -0700 (PDT) X-Received: by 2002:a05:620a:470d:b0:93e:d364:c9fc with SMTP id af79cd13be357-940ef7b39e5mr681424385a.5.1792943556765; Sun, 25 Oct 2026 08:52:36 -0700 (PDT) Received: from shalem (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6b4458dd28fsm2438229a12.3.2026.10.25.08.52.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Oct 2026 08:52:35 -0700 (PDT) From: Hans de Goede To: libcamera-devel@lists.libcamera.org Cc: Wenmeng Liu , Hans de Goede Subject: [PATCH 2/2] libcamera: pipeline: simple: Do not alloc CMA DMA-buffers for camss and ipu6/7 Date: Sun, 25 Oct 2026 16:52:33 +0100 Message-ID: <20261025155233.113989-2-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261025155233.113989-1-johannes.goede@oss.qualcomm.com> References: <20261025155233.113989-1-johannes.goede@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Info: AW1haW4tMjYxMDI1MDA2MyBTYWx0ZWRfX8tQwTZfJvPrg HFv63rqKgLXtnr+ZelbfU2K2BJtpa37G28I8rcz7Cx3s6GZfh/AY3Pi7Xi8kjruDC8GK5+3Z6oJ B0fM6AGfL4w5zun+4KqTUSTaOUnAhJk= X-Proofpoint-GUID: W6WzODb8xxmi6q--cboXWCMfi_m4vc9H X-Authority-Analysis: v=2.4 cv=JvhkP84C c=1 sm=1 tr=0 ts=6ade25c6 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=660iZSQnnn4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=YAyIRdgMAAAA:8 a=EUspDBNiAAAA:8 a=nlI6UJXUNSGddTINY3AA:9 a=IoWCM6iH3mJn3m4BftBB:22 a=o1rO4XtwZBNj6n05oSJ_:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDI1MDA2MyBTYWx0ZWRfX2qKeR5knO7uZ vcZGtKcZlbqwGTGkDArtvdYAnCjutdhJu7ce322+x+DKMXj4dw1gJoZVen8WZD9AGKZv9I63Fwb oC6pQv7//sKEEzNglBUWm5yL6dT5VKqQyV5OjyOsKQLRdcv8ND+ZVTU+A47C9SMU0ImDxwlOhNj ua7nflhwSfz66ze09RD6TY+/Egu6qkAnLB9RqEf6+mFKLGgJLFrnudxqmo0Ht58W5GQroYZg1uG inkhVdh5OzyvbFhgwbrv4b3TlU6XRTEusRPK4bY/xDCqwvn+uhj4shqhNdjcKoPcuj/LSndeqd3 MBSC8KpZ2Qt+JDid2ye61lNG5w0d+MwoGAYxnHvnZjcm7aP72h86bzB0H/WLokp2I5GVXm2xdn6 TC7m1el6jZ1k5eLhECWNRhNrCYIZSAtofF2arwY4zzJep/U5/KjQVD4tIY+WeqDbxMYEEkPaipb TRUxLRdgAhTtrL7aDEg== X-Proofpoint-ORIG-GUID: W6WzODb8xxmi6q--cboXWCMfi_m4vc9H X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293, Aquarius:18.0.1176, Hydra:6.1.138, FMLib:17.12.100.49 definitions=2026-10-25_04,2026-10-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610190000 definitions=main-2610250063 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" On Qualcomm platforms with the camss CSI receiver block it is not necessary to allocate DMA-buffers from CMA and doing so may lead to starvation of the CMA pool for other processes. On Intel IPU6 / IPU7 there typically is no CMA memory reservation at all so trying to use memory from there is not useful. Reported-by: Wenmeng Liu Closes: https://lists.libcamera.org/pipermail/libcamera-devel/2026-September/062125.html Signed-off-by: Hans de Goede --- src/libcamera/pipeline/simple/simple.cpp | 25 ++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index caab09b00..5042950cf 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -251,20 +251,22 @@ struct SimplePipelineInfo { * The Software ISP can't be used together with the converters. */ bool swIspEnabled; + /* Flags controlling Software ISP behavior. */ + SoftwareIsp::SoftwareIspFlags swIspFlags; }; namespace { static const SimplePipelineInfo supportedDevices[] = { - { "dcmipp", {}, false }, - { "imx7-csi", { { "pxp", 1 } }, true }, - { "intel-ipu6", {}, true }, - { "intel-ipu7", {}, true }, - { "j721e-csi2rx", {}, true }, - { "mtk-seninf", { { "mtk-mdp", 3 } }, false }, - { "mxc-isi", {}, false }, - { "qcom-camss", {}, true }, - { "sun6i-csi", {}, false }, + { "dcmipp", {}, false, {} }, + { "imx7-csi", { { "pxp", 1 } }, true, SoftwareIsp::SoftwareIspFlag::AllocCmaDmaBuffers }, + { "intel-ipu6", {}, true, {} }, + { "intel-ipu7", {}, true, {} }, + { "j721e-csi2rx", {}, true, SoftwareIsp::SoftwareIspFlag::AllocCmaDmaBuffers }, + { "mtk-seninf", { { "mtk-mdp", 3 } }, false, {} }, + { "mxc-isi", {}, false, {} }, + { "qcom-camss", {}, true, {} }, + { "sun6i-csi", {}, false, {} }, }; bool isRaw(const StreamConfiguration &cfg) @@ -427,6 +429,7 @@ public: V4L2Subdevice *subdev(const MediaEntity *entity); std::shared_ptr converter() { return converter_; } bool swIspEnabled() const { return swIspEnabled_; } + SoftwareIsp::SoftwareIspFlags swIspFlags() const { return swIspFlags_; } protected: int queueRequestDevice(Camera *camera, Request *request) override; @@ -460,6 +463,7 @@ private: std::shared_ptr converter_; bool swIspEnabled_; + SoftwareIsp::SoftwareIspFlags swIspFlags_; }; /* ----------------------------------------------------------------------------- @@ -616,7 +620,7 @@ int SimpleCameraData::init() */ if (!converter_ && pipe->swIspEnabled()) { swIsp_ = std::make_unique(pipe, sensor_.get(), - SoftwareIsp::SoftwareIspFlag::AllocCmaDmaBuffers, + pipe->swIspFlags(), &controlInfo_); if (!swIsp_->isValid()) { LOG(SimplePipeline, Warning) @@ -1883,6 +1887,7 @@ bool SimplePipelineHandler::matchDevice(std::shared_ptr media, } swIspEnabled_ = info.swIspEnabled; + swIspFlags_ = info.swIspFlags; const GlobalConfiguration &configuration = cameraManager()->_d()->configuration(); for (const ValueNode &entry : configuration.configuration()["pipelines"]["simple"]["supported_devices"]