From patchwork Tue Jul 8 09:22:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nick Hollinghurst X-Patchwork-Id: 23775 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 0EAF2C3237 for ; Tue, 8 Jul 2025 09:23:14 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6BE8568EE1; Tue, 8 Jul 2025 11:23:12 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="N0M2H0MM"; dkim-atps=neutral Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C591468E3A for ; Tue, 8 Jul 2025 11:23:10 +0200 (CEST) Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3a5123c1533so1920557f8f.2 for ; Tue, 08 Jul 2025 02:23:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1751966590; x=1752571390; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=unyBcsB+ZXOYjKy7lBl0bRbsA8WhR2oGNrFx7vDG8UM=; b=N0M2H0MMVF9k2eERLqcdzVmTaHPrEWFTcMH59OhWgnNC7lbgAA/LD6au2sjhduR5zH Iy7PVgtGbGgMIquji21DcID2fh2YmcBSR1EaDbHnwIA73RDtowKsXadCAqLlXx2BD7W6 P4JbkcrYQoeDLwLcMXMntUiUlR0Y5s4PjjEKxvxCIaXxE1s7HdWTZE7mMCsxj8I3d4cQ MFbLeHYQKSc3KSl4FHapRqwsnhEAvbc08ls02y6bGxf3qCisRHbnvEE+NqoXPdR9WhmE ZwwwzPrh1Mnk2W8nLHhFbkEI1tX5bEiUPJTJV48oLz4uKoCFOedChvDqHe0pW8R3dt2D U2VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751966590; x=1752571390; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=unyBcsB+ZXOYjKy7lBl0bRbsA8WhR2oGNrFx7vDG8UM=; b=LZwFtOlVhC8XV/0Sl/Hgd96hzaeYdxBSpv3t1fatp6WOfwzHMQsMZyDEYnkoXWl0t3 Etb8A8K2o9+NgGREHA/5iSNdKnN9EwQBD0nEXjB6PI51jKpOSbZ79UDefioK04rHaa+b CjbuYAsYT6Z/LUCpzzuJqERM4ASiwkAhQWEUXpLMXkDbgoLleV7/pWOzXYLxAJyW5c9x VzSQ8S68kT1nOVJieUkZd5IzJ/yNiDz/PjcTTgZJjshDyGgzL94pLMFm+MmKmW06qkKT YHYNeMggM+Rae+qp8HXVrYS+sNcOlNlVjd5BgExnoBjR7OajN8piqYvt5cCHmZ0WbFeA FPTg== X-Gm-Message-State: AOJu0YxNWquokXPKFfOIz/FVYphyFSkO+qnF6BEKFPZH5B6/iLnEG1Oj fDjQuydlnyEz+1PxSm1FpeZHAF1ytLloN0AUa9hNepmCdfuZwNyLeOO3oJukQBPQJKElUT3pu8B PnkR5 X-Gm-Gg: ASbGnctOLeE4sJqCkLcHfqy4cg/NvcJBF3KN10rt5wsp0bk2tT+0m6pG1BsuInFO6q6 FQ4nNrvdmd2pQ0kGtax06SgG2+X7Xyf/7gRLoxSLDr+y2iCIKR+bCv476iWGTEVAJhhwixoKO8y JAzACn/2vUqdCdGbfr+syujqw+jAHFE2WPTZ+fGVObaySIUvdIc9lMZ8FxPykPCDP3xIA2+VD+b xV2PfS72vQnNrfSBP0j4444LLiHHaKI3F0or9lMy1+t8cnttWls33xL+SBqbK2BPt3ktnP6Fk5Z GtC5r2bvcCJsCVVRnMisOi67R2b7t58wPFyT860+2Bbf8ytfb5l0IqMchGnZnPD/yEMSrFBn7HN lS/WjPCMjaB4V+Wj7cjvpjyvtCXFKgEnJGw== X-Google-Smtp-Source: AGHT+IFNmBvp7s24sBNRN/BltbZZ8gAaFbaY9sSvYuByFeEYSmUdE/57roa4j5EH5vwBIAHs3jnXBg== X-Received: by 2002:a05:6000:2a04:b0:3b5:d726:b7c with SMTP id ffacd0b85a97d-3b5d7260c81mr3819255f8f.40.1751966589884; Tue, 08 Jul 2025 02:23:09 -0700 (PDT) Received: from raspberrypi.pitowers.org ([2a00:1098:3142:1f:a457:3110:3364:a827]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d094csm12273507f8f.28.2025.07.08.02.23.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 02:23:09 -0700 (PDT) From: Nick Hollinghurst To: libcamera-devel@lists.libcamera.org Cc: Nick Hollinghurst , David Plowman Subject: [PATCH v2] ipa: rpi: Fix bug in AfState reporting Date: Tue, 8 Jul 2025 10:22:39 +0100 Message-Id: <20250708092239.1589-1-nick.hollinghurst@raspberrypi.com> X-Mailer: git-send-email 2.39.5 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" A previous change introduced a bug in which it reported AfStateIdle when idle in Auto mode, when it should continue to report the most recent AF cycle's outcome (AfStateFocused or AfStateFailed). Also fix the Pause method so it won't reset state to AfStateIdle when paused in Continuous AF mode (to match documented behaviour). Fixes: ea5f451c5660 ("ipa: rpi: controller: AutoFocus bidirectional scanning") Signed-off-by: Nick Hollinghurst Reviewed-by: David Plowman Tested-by: David Plowman --- src/ipa/rpi/controller/rpi/af.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ipa/rpi/controller/rpi/af.cpp b/src/ipa/rpi/controller/rpi/af.cpp index eaaca4bc..26e59930 100644 --- a/src/ipa/rpi/controller/rpi/af.cpp +++ b/src/ipa/rpi/controller/rpi/af.cpp @@ -810,10 +810,10 @@ void Af::prepare(Metadata *imageMetadata) else status.pauseState = AfPauseState::Running; - if (scanState_ == ScanState::Idle) - status.state = AfState::Idle; - else if (mode_ == AfModeAuto) + if (mode_ == AfModeAuto && scanState_ != ScanState::Idle) status.state = AfState::Scanning; + else if (mode_ == AfModeManual) + status.state = AfState::Idle; else status.state = reportState_; status.lensSetting = initted_ ? std::optional(cfg_.map.eval(fsmooth_)) @@ -954,8 +954,10 @@ void Af::pause(AfAlgorithm::AfPause pause) scanState_ = ScanState::Trigger; } else if (pause != AfPauseResume && !pauseFlag_) { pauseFlag_ = true; - if (pause == AfPauseImmediate || scanState_ < ScanState::Coarse1) - goIdle(); + if (pause == AfPauseImmediate || scanState_ < ScanState::Coarse1) { + scanState_ = ScanState::Idle; + scanData_.clear(); + } } } }