From patchwork Fri Jul 2 15:09:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 12791 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 015B7BD794 for ; Fri, 2 Jul 2021 15:09:52 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 447F568503; Fri, 2 Jul 2021 17:09:52 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="ZkBKZM/O"; dkim-atps=neutral Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D4956684E6 for ; Fri, 2 Jul 2021 17:09:50 +0200 (CEST) Received: by mail-wm1-x336.google.com with SMTP id g8-20020a1c9d080000b02901f13dd1672aso6047169wme.0 for ; Fri, 02 Jul 2021 08:09:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=zZEO52OrzRwYwR67G+f8JSK5k40RHvpeUXk6kAoy4zU=; b=ZkBKZM/O1Zcq7NnSUK663LDCoE8lxste3sfzUNq7IKi9w6dLF8o+AcSE7JSbhSQN/l z3qEuVFjGV3jvop0V1KHhDcpXxbJFKga3f6bppEH0LDaaI2xjaMBHJvOeEkanr57iEyq J+69p4J+h2wkGYNXC5aY359nS3zj4vwq9qPm41lvIjpww3zebFyWXP/VuCr0pbyTp+fI XHLKzsGLsQLTHLKtPdUEhV3bJay6Gj5fdJ8H7+M8r+yF6JV6xe5fPmCJ0SW8G0a+Wrnf Am9ALNLLFKiFtiXHmzqSmJQuWM3USyBp8CnpGXPBc+pPdzBUOOtb42jfGDmxbaZrKqoy UMvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=zZEO52OrzRwYwR67G+f8JSK5k40RHvpeUXk6kAoy4zU=; b=k/6QmJTNiTzl+mNW9YAWL7KDtmnqmFdbNIxtoR/4cCbDDwjIn2IHsiv3IhJlfVFkAX AWikGupl2VWdvgduC4OgoxY58AZNHKnADeEnXsrrgXhidgRKsCAfwyjmXlkS4ua7qxoL F5ntaUmVwQEGAM4PzXzfpBhgTHuwfVpvM86mf4KYWR216l4h2ZzojenjcA5EDBfj9imR 6nyXgTOPYOQWJSbq+rqXK1RpyfP5VtLZxVPKlaXevF6bcm8vEjzKYp0xo7k5cLSWTHKf 7WkqyU9IACs6IaB2yH4hNDdMwvmHF04OXq3L+aZZ1pMaY7S54bSak9zjAkAd8Py0whyT eqBA== X-Gm-Message-State: AOAM531SLySWAaL+sObaQoQQq76Lu5UZTdeLuiR7G7anun+Seh1IzBbR tbjqORhOrPKB2zN8k+9HiT270TwTrOptNQ== X-Google-Smtp-Source: ABdhPJxD02kr1njc4t1vpYi0jdI/+ZVkc4/2ZjkUIc1ZOZs4Nk6CMSd+Cl17dUyWYYZxDXa/LAalKA== X-Received: by 2002:a05:600c:4f4e:: with SMTP id m14mr229726wmq.151.1625238590041; Fri, 02 Jul 2021 08:09:50 -0700 (PDT) Received: from naush-laptop.patuck.local ([88.97.76.4]) by smtp.gmail.com with ESMTPSA id n4sm3619335wrw.21.2021.07.02.08.09.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jul 2021 08:09:49 -0700 (PDT) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Date: Fri, 2 Jul 2021 16:09:32 +0100 Message-Id: <20210702150940.226941-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 0/8] Raspberry Pi: Enable imx477 long exposure modes 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" Hi, There has been some substantial rework on this patch series in version 3: - Added patches 1/8 - 3/8 to C++ify our DeviceStatus structure. - Added patch 4/8 to store the frame length in DeviceStatus. - Updated patch 5/8 to use frame length instead of exposure time to determine if we are in long exposure mode. The previous way of using exposure time would be incorrect in cases where we have a short exposure time, and a long frame length. Also change the CamHelperImx477::Prepare() method to not touch the metadata buffers so many times. - Patches 6/8 - 8/8 remain unchanged. Regards, Naush Naushir Patuck (8): ipa: raspberrypi: Make device_status.h C++ only header, and update comments ipa: raspberrypi: Add a constructor struct DeviceStatus ipa: raspberrypi: Add an operator<< to struct DeviceStatus ipa: raspberrypi: Add frame_length to DeviceStatus ipa: raspberrypi: Allow long exposure modes for imx477. pipeline: raspberrypi: Use priority write for vblank when writing sensor ctrls ipa: raspberrypi: Increase the default max frame duration to 250s ipa: raspberrypi: Make variable names consistent src/ipa/raspberrypi/cam_helper.cpp | 5 +- src/ipa/raspberrypi/cam_helper_imx219.cpp | 6 +- src/ipa/raspberrypi/cam_helper_imx477.cpp | 101 +++++++++++++++++- .../raspberrypi/controller/device_status.h | 48 ++++++--- src/ipa/raspberrypi/controller/rpi/agc.cpp | 2 +- src/ipa/raspberrypi/controller/rpi/lux.cpp | 8 +- src/ipa/raspberrypi/raspberrypi.cpp | 17 ++- .../pipeline/raspberrypi/raspberrypi.cpp | 37 +++++-- 8 files changed, 176 insertions(+), 48 deletions(-)