From patchwork Tue Feb 25 16:41:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislaw Gruszka X-Patchwork-Id: 22868 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 DE032BDB1C for ; Tue, 25 Feb 2025 16:41:51 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8A61268732; Tue, 25 Feb 2025 17:41:51 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="UlqsvkGj"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id AFD5E6871F for ; Tue, 25 Feb 2025 17:41:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1740501710; x=1772037710; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Y5wdfFYDBMNLyP2m5ayrPxIgyqj/crVleZ3xSB+6TJs=; b=UlqsvkGjLNlpplORm7TLTTFz0Vz+YHvIP9jJMAa3Lr4c5LRdmALhHRHJ uuz+sMT0nO2E0FFjYN75y/T05lWwaC2h0juFTIAVPt1vjXcZALbdnhBTh jRJJitUWO6sdIQ1jOCAga1GvwZHuzcuyonPwpVkms2wTuF9AeYcgithyl Z2mE1c1zrXEtz1w0drtrVsugk8QwmG71RR8ORABVfh0SRwNjxUVsUsFNH NyCVijt1yGKhgOc832X35s42zCoaI21OPX/RLTNPtt6+WE5sixLpXk/P7 o9b3tTGEbXxvE8c9cExk7dPLkyS15OCYT7cQjdehG1UaW7c4oBH9Q/P3y g==; X-CSE-ConnectionGUID: 5GfbR0Z2RKevaNtI0aGAxQ== X-CSE-MsgGUID: +V8ganN5R/e8OGbMyrUkzg== X-IronPort-AV: E=McAfee;i="6700,10204,11356"; a="51948295" X-IronPort-AV: E=Sophos;i="6.13,314,1732608000"; d="scan'208";a="51948295" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Feb 2025 08:41:49 -0800 X-CSE-ConnectionGUID: XKvuQk59THOMGtVeZR2Wsg== X-CSE-MsgGUID: JxRgiii0Rtm116MdVUFwHg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.13,314,1732608000"; d="scan'208";a="116426802" Received: from sgruszka-mobl.ger.corp.intel.com (HELO localhost) ([10.245.115.185]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Feb 2025 08:41:47 -0800 From: Stanislaw Gruszka To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , Laurent Pinchart , Kieran Bingham , Naushir Patuck , Sakari Ailus , Hans de Goede Subject: [PATCH v5 4/5] pipeline: simple: Do not apply controls twice Date: Tue, 25 Feb 2025 17:41:15 +0100 Message-Id: <20250225164116.414301-5-stanislaw.gruszka@linux.intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250225164116.414301-1-stanislaw.gruszka@linux.intel.com> References: <20250225164116.414301-1-stanislaw.gruszka@linux.intel.com> MIME-Version: 1.0 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" Apply controls directly only when there is no start frame emitter device. Co-developed-by: Hans de Goede Signed-off-by: Hans de Goede Signed-off-by: Stanislaw Gruszka Reviewed-by: Kieran Bingham Reviewed-by: Laurent Pinchart --- src/libcamera/pipeline/simple/simple.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index 774c7824..b92b738b 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -911,8 +911,11 @@ void SimpleCameraData::ispStatsReady(uint32_t frame, uint32_t bufferId) void SimpleCameraData::setSensorControls(const ControlList &sensorControls) { delayedCtrls_->push(sensorControls); - ControlList ctrls(sensorControls); - sensor_->setControls(&ctrls); + /* Directly apply controls now if there is no frameStart signal */ + if (!frameStartEmitter_) { + ControlList ctrls(sensorControls); + sensor_->setControls(&ctrls); + } } /* Retrieve all source pads connected to a sink pad through active routes. */