From patchwork Tue Aug 20 19:50:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 20978 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 83A94C323E for ; Tue, 20 Aug 2024 19:50:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 1BCAE633D4; Tue, 20 Aug 2024 21:50:32 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="L+7b2cyZ"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 80B8F633B2 for ; Tue, 20 Aug 2024 21:50:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1724183427; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zzoACSzC5ZhKcEGmCQkp5fYiwhW+Bg+dB+FPk8jWc1I=; b=L+7b2cyZN5LBacORhT3zqLdmEIKKoeUD2mnF1Mlt2U8oZBVLmSk39M64n3y/ODfflyq4Be l0b3y8Apy+C15aBQEgT71e6EIsOnTS7p5YH5cWq8WnEPlQgEPZ1Q0771Aqi5TCYF644XZs v3ND0VWEo4fQplyglxq7wwy4VQbLMjo= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-591-fq5iPKk9Ojus9Iq5kvpe9w-1; Tue, 20 Aug 2024 15:50:26 -0400 X-MC-Unique: fq5iPKk9Ojus9Iq5kvpe9w-1 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 10A231955D4F for ; Tue, 20 Aug 2024 19:50:25 +0000 (UTC) Received: from x1.localdomain.com (unknown [10.39.192.41]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 19B5319560AA; Tue, 20 Aug 2024 19:50:22 +0000 (UTC) From: Hans de Goede To: libcamera-devel@lists.libcamera.org Cc: Maxime Ripard , Milan Zamazal , Hans de Goede Subject: [PATCH 2/5] pipeline_handler: Call releaseDevice() before unlocking media devices Date: Tue, 20 Aug 2024 21:50:13 +0200 Message-ID: <20240820195016.16028-3-hdegoede@redhat.com> In-Reply-To: <20240820195016.16028-1-hdegoede@redhat.com> References: <20240820195016.16028-1-hdegoede@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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" It is better / more logical to call releaseDevice() before unlocking the devices. ATM the only pipeline handler implementing releaseDevice() is the rpi pipeline handler which releases buffers from its releaseDevice() implementation. Releasing buffers before unlocking the media devices is ok to do and arguably it is better to release the buffers before unlocking. Signed-off-by: Hans de Goede Reviewed-by: Harvey Yang Reviewed-by: Laurent Pinchart --- src/libcamera/pipeline_handler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index a20cd27d..1fc22d6a 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -205,11 +205,11 @@ void PipelineHandler::release(Camera *camera) ASSERT(useCount_); + releaseDevice(camera); + if (useCount_ == 1) unlockMediaDevices(); - releaseDevice(camera); - --useCount_; }