From patchwork Thu Apr 3 07:45:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislaw Gruszka X-Patchwork-Id: 23109 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 CB6B9C3213 for ; Thu, 3 Apr 2025 07:46:01 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D78DC68996; Thu, 3 Apr 2025 09:46:00 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="DmbvNP4C"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 241D168967 for ; Thu, 3 Apr 2025 09:45:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1743666359; x=1775202359; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=kZ/IC5EIaR7c0jwB48Pc/aAUWJFmmmEsCJh/MEnHy4c=; b=DmbvNP4CN4L6mbK5/lGFgac9GzkNYL0+j+/GjxloleFbLIv6Q1wu8h7/ y65GFO92dtgXEXm4AQ3ll2wM5FkSDR++RgkHpJMEauXPWnGln+CT6AHJz bHtzkhdiq6mSLFKCT5108ALkWCJ7GR7TA0BrfeMOeS1cnw7z5ncsDP52R TP2fpIOfftvuypeMx/LTvq4ebo8cgzXpU9B2AoAmSABiFPMjaAst6kYEj 8yunwj5u53ilZBDU0OULpjT0BnnbA30nl4AXpjSrQxrO57nn6etyLNGQ8 E4n8Yf8pWXcpjOSKZCQqffVaG97lhY71o2NZZzaDFIFW6043HL7Fzf+63 Q==; X-CSE-ConnectionGUID: 9pc0iTpSRa2HY1Ic9LHiVQ== X-CSE-MsgGUID: AUqlkeaxTI+YYCD/qTierg== X-IronPort-AV: E=McAfee;i="6700,10204,11392"; a="70425124" X-IronPort-AV: E=Sophos;i="6.15,184,1739865600"; d="scan'208";a="70425124" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2025 00:45:57 -0700 X-CSE-ConnectionGUID: tI5Mm95zT9iNZ0vNfU5kcw== X-CSE-MsgGUID: OJMOhW4uSLaUmZ2xSrw2og== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,184,1739865600"; d="scan'208";a="131785126" Received: from sgruszka-mobl.ger.corp.intel.com (HELO localhost) ([10.246.8.237]) by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2025 00:45:54 -0700 From: Stanislaw Gruszka To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , Hans de Goede , Laurent Pinchart , Kieran Bingham , Sakari Ailus Subject: [PATCH v7 0/5] libcamera: start frame events changes Date: Thu, 3 Apr 2025 09:45:46 +0200 Message-Id: <20250403074551.263496-1-stanislaw.gruszka@linux.intel.com> X-Mailer: git-send-email 2.34.1 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" v6 -> v7: - document disabling event side effect - add Stefan and Kieran R-b tags v5 -> v6: - remove changelog paragraph not applicable any longer in patch1 - use new clang-format formatting in patch1 - split patches differently - use Laurent changelog wording - add various comments in the code - use '' in log when printing emitter name v4 -> v5: - split patch2 into 3 separte patches - drop frameStartEnabled(), return error from start - use for (const Entity &entity : entities_) insted of iterator - reset delayed controls before enabling events v3 -> v4: - constify frameStartEnabled() - make supportsFrameStartEvent() more readable - rename eventEmitter to startFrameEmitter - update patch2 changelog to make it more clear v2 -> v3: - add helpers for v4l2_device - initialize eventEmitter_ in init(), when no proper device is found use nullptr (this fix crash seen by Kieran as eventEmitetter was not nullptr in v2) v1 -> v2: - make eventEmitter_ subdevice part of SimpleCameraData - add debug log when found event emitter device - nullify eventEmitter_ on stop - remove direct sensor_->setControls() - add delayedCtrls_->reset() on start Laurent Pinchart (1): pipeline: simple: Create DelayedControls instance once only Stanislaw Gruszka (4): libcamera: v4l2_device: add frame start event helpers pipeline: simple: Connect/disconnect frameStart signal at start/stop time pipeline: simple: Enable frame start events pipeline: simple: Reset delayedCtrls at start include/libcamera/internal/v4l2_device.h | 1 + src/libcamera/pipeline/simple/simple.cpp | 66 +++++++++++++++++++----- src/libcamera/v4l2_device.cpp | 22 ++++++++ 3 files changed, 76 insertions(+), 13 deletions(-) --- 2.43.0