[{"id":38915,"web_url":"https://patchwork.libcamera.org/comment/38915/","msgid":"<CAHW6GYL22kLjS+hVNvXuPfugYHg=O4uMXvMzuix6aOY=hLJ4Dw@mail.gmail.com>","date":"2026-05-18T14:49:07","subject":"Re: [PATCH v1] ipa: rpi: Improve control over which sensor modes\n\trequire \"debinning\"","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"A small correction of my own...\n\nOn Mon, 18 May 2026 at 15:26, David Plowman\n<david.plowman@raspberrypi.com> wrote:\n>\n> \"Debinning\" is the process that corrects the spatial sampling of\n> pixels when this has been disturbed by the standard binning process.\n>\n> However, debinning is not required for sensors that do it themselves,\n> or for quad Bayer sensors at 2x2 binning where the spatial sampling is\n> already correct.\n>\n> Here we add a getMinDebinFactor() to the CamHelper which allows us to\n> customise at what binning (or downscaling) factor we need to apply the\n> correction. This value is then used to decide whether to enable the\n> relevant PiSP block.\n>\n> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> ---\n>  src/ipa/rpi/cam_helper/cam_helper.cpp        | 6 ++++++\n>  src/ipa/rpi/cam_helper/cam_helper.h          | 6 ++++++\n>  src/ipa/rpi/cam_helper/cam_helper_imx708.cpp | 7 +++++++\n>  src/ipa/rpi/pisp/pisp.cpp                    | 8 +++++---\n>  4 files changed, 24 insertions(+), 3 deletions(-)\n>\n> diff --git a/src/ipa/rpi/cam_helper/cam_helper.cpp b/src/ipa/rpi/cam_helper/cam_helper.cpp\n> index a78db9c1..dfdcd167 100644\n> --- a/src/ipa/rpi/cam_helper/cam_helper.cpp\n> +++ b/src/ipa/rpi/cam_helper/cam_helper.cpp\n> @@ -204,6 +204,12 @@ unsigned int CamHelper::mistrustFramesModeSwitch() const\n>         return 0;\n>  }\n>\n> +unsigned int CamHelper::getMinDebinFactor() const\n> +{\n> +       /* Most cameras require debinning from 2x2 binning upwards. */\n> +       return 2;\n> +}\n> +\n>  void CamHelper::parseEmbeddedData(Span<const uint8_t> buffer,\n>                                   Metadata &metadata)\n>  {\n> diff --git a/src/ipa/rpi/cam_helper/cam_helper.h b/src/ipa/rpi/cam_helper/cam_helper.h\n> index 4a826690..349891c4 100644\n> --- a/src/ipa/rpi/cam_helper/cam_helper.h\n> +++ b/src/ipa/rpi/cam_helper/cam_helper.h\n> @@ -62,6 +62,11 @@ namespace RPiController {\n>   * MistrustFramesModeSwitch(): The number of frames, after a mode switch\n>   *    (other than start-up), for which control algorithms should not run\n>   *    (for example, metadata may be unreliable).\n> + * getMinDebinFactor(): the binning factor after which we should apply\n> + *    \"debinning\", which corrects for the uneven spatial sampling of the\n> + *    standard binning process. A return value of 2 means to enable\n> + *    debinning for camera modes using 2x2, or larger, binning. A return\n> + *    value of zero means never to enable binning.\n\ns/binning/debinning/\n\n>   */\n>\n>  class CamHelper\n> @@ -93,6 +98,7 @@ public:\n>         virtual unsigned int hideFramesModeSwitch() const;\n>         virtual unsigned int mistrustFramesStartup() const;\n>         virtual unsigned int mistrustFramesModeSwitch() const;\n> +       virtual unsigned int getMinDebinFactor() const;\n>\n>  protected:\n>         void parseEmbeddedData(libcamera::Span<const uint8_t> buffer,\n> diff --git a/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp b/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp\n> index 6150909c..e7b8d671 100644\n> --- a/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp\n> +++ b/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp\n> @@ -58,6 +58,7 @@ public:\n>         double getModeSensitivity(const CameraMode &mode) const override;\n>         unsigned int hideFramesModeSwitch() const override;\n>         unsigned int hideFramesStartup() const override;\n> +       unsigned int getMinDebinFactor() const override;\n>\n>  private:\n>         /*\n> @@ -237,6 +238,12 @@ unsigned int CamHelperImx708::hideFramesStartup() const\n>         return hideFramesModeSwitch();\n>  }\n>\n> +unsigned int CamHelperImx708::getMinDebinFactor() const\n> +{\n> +       /* Quad-Bayer sensor, so debinning required only at 4x4 binning. */\n> +       return 4;\n> +}\n> +\n>  void CamHelperImx708::populateMetadata(const MdParser::RegisterMap &registers,\n>                                        Metadata &metadata) const\n>  {\n> diff --git a/src/ipa/rpi/pisp/pisp.cpp b/src/ipa/rpi/pisp/pisp.cpp\n> index de2a6afe..fd28fc38 100644\n> --- a/src/ipa/rpi/pisp/pisp.cpp\n> +++ b/src/ipa/rpi/pisp/pisp.cpp\n> @@ -1078,12 +1078,14 @@ void IpaPiSP::setStatsAndDebin()\n>         pisp_be_global_config beGlobal;\n>         be_->GetGlobal(beGlobal);\n>\n> -       if (mode_.binX > 1 || mode_.binY > 1) {\n> +       unsigned int minDebinFactor = helper_->getMinDebinFactor();\n> +       if (minDebinFactor &&\n> +           (mode_.binX >= minDebinFactor || mode_.binY >= minDebinFactor)) {\n>                 pisp_be_debin_config debin;\n>\n>                 be_->GetDebin(debin);\n> -               debin.h_enable = (mode_.binX > 1);\n> -               debin.v_enable = (mode_.binY > 1);\n> +               debin.h_enable = (mode_.binX >= minDebinFactor);\n> +               debin.v_enable = (mode_.binY >= minDebinFactor);\n>                 be_->SetDebin(debin);\n>                 beGlobal.bayer_enables |= PISP_BE_BAYER_ENABLE_DEBIN;\n>         } else\n> --\n> 2.47.3\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8E2C3BDCBC\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 18 May 2026 14:49:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C872E62FEC;\n\tMon, 18 May 2026 16:49:21 +0200 (CEST)","from mail-ed1-x536.google.com (mail-ed1-x536.google.com\n\t[IPv6:2a00:1450:4864:20::536])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8D9BA62FB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 May 2026 16:49:19 +0200 (CEST)","by mail-ed1-x536.google.com with SMTP id\n\t4fb4d7f45d1cf-6804e24803bso5415228a12.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 May 2026 07:49:19 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"SBXHgwIr\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1779115759; cv=none;\n\td=google.com; s=arc-20240605;\n\tb=kCgsu4cgM7ex7JRHtJfCZhRk4xBCKZVu5Kjhq1O9N7sf//q5/9sMDFmLfrCQ/ucsMv\n\tMrLkYfHeXOAKfvfOWHsKnSd7Ma5QnFyyuPlJGH2qQdEodY4R2EglDq31CO2ggSjoarmq\n\ts3Rc8fPPZ0Xnt1z0d9OOdZnnxfycszNQLsqmoruP5cI+8kQKbcJzgcmjTPLfqM9C4YSk\n\taaoTFd69bD+jhlOH0sYlYMeLFTTe8RuU4ExMNlabVuTz4IfYbqwXCApyxkJMa6KiRATI\n\ttZ4ujxL9ICKfBO9+7ftV/Ewf9O8WAE7hPBaLCY4HSpkOR8ThnLoriNCPxPUAPxLuldta\n\toxeA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20240605; \n\th=to:subject:message-id:date:from:in-reply-to:references:mime-version\n\t:dkim-signature;\n\tbh=uP51S5aaPzcsPwBFJBLRTlxe0aqHsfdeC+2226QgB3M=;\n\tfh=wtmKwyi0l3IkgfllUcb23GUQ5DBcFLPuxebUMmhSdY0=;\n\tb=k8gAYZZBH4Q0Ox6UL6SPImCrrN4d9c7tKONpJuUFJRBED/6BDA/V0nNeWH7710ZA6o\n\taYv4fmcerGOFcf0AuCXz0cA1Td/iQ3meXasjn8+jl2bvx0d2rCVQs6xgLn0C51E7f6Ca\n\tDjnI4hkUPQh0bt0+5gNOuybW0nggxEKdWCUm48kKUcTFzqnu5+nzqQbZa3hZXWyKNfXU\n\t9iy5mnmkUdg91p3NbdC/B2ReGAcq/ZQWROKSGwctdjbI2D2cyNpfE0RO6YlZqKR5Idf0\n\thkXAC86MoKcVkp2uFZbu7OSf9dnDkv7R6FswTty0/9VWc9iHPL/f7jwHKxr5jH4EyZSN\n\tD36w==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1779115759; x=1779720559;\n\tdarn=lists.libcamera.org; \n\th=to:subject:message-id:date:from:in-reply-to:references:mime-version\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=uP51S5aaPzcsPwBFJBLRTlxe0aqHsfdeC+2226QgB3M=;\n\tb=SBXHgwIrsOFDoDdM9VOMxEicN9yyeIaj0snZpl5K/tVRC3wmVMm7HixZXeyBBwdJdS\n\ttN6GgBLN/ANIl2M/DMAsL49KRI4SsjUHxB5MN7A9k+I1KrECt1QRY14yXwhmNUFx5+L7\n\tdnNICSNBdoHC0WHIp+Uccw/UtyMDzoWRKyH2xQBfnocBVYM9ylJN7b4OKVA+/zF9Epvk\n\t50aMJDPdDRI2qUjMGpqVGv+Mn2OEJwlUGGzPiXzoOdU0TPvEYcbe6TbO5J4ah37T+0ig\n\tW9McNOA7f5vbs+s2zirgKSNMnU9ycdM4euw85O79wVPlTdSj9dSubmRQc9yNr4V36E3B\n\tPAFA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1779115759; x=1779720559;\n\th=to:subject:message-id:date:from:in-reply-to:references:mime-version\n\t:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=uP51S5aaPzcsPwBFJBLRTlxe0aqHsfdeC+2226QgB3M=;\n\tb=F13iLD3GSNVn+z7KFuL9MK9W45EmJ44HAlBmq5VgX22QBYK3ySHfRemhniJPjACrlD\n\tykeyqiaNrcpZ79ifety1oyaGqSuBj9DNz/kU95x05Nnt1UuJfP+7VSTqxvGE4luHWFkw\n\tONdOIlUco+DBQ6Lqw/Usp3LCS/y661US1ItyLTegycFK20ojUBi6AouVx67XLDo05cmi\n\tqgBECxSQdYHQ824kPjrC9blzO7buFaM5aftWEOqmceflGa/9hBw+mSBCX3Dr25nVMOrp\n\tIqTLeTYWRNYwKxdiZ+V+l6NdIhjvuH+knda2aiUYacSwmQ8eUgwFw5YYqmyUYKxxPIl1\n\twhBw==","X-Gm-Message-State":"AOJu0YyUVPZnO2vSBTIimRmVE9hliqxR/L9GLjyM8GIriMiNPC4MXDwm\n\t2ZbZZKIVKVplYmaVwo9E2cHkpqsnM1VZ4e2TUF1lYjGF3X7tEWhKxoNBUsAZEEYxB4Qj+J41wLW\n\tKmGW/ADQ/Y2W5iAfaaf9nvVtNz721QNVCyPVb3cygtwlMpFI5f9mm+08=","X-Gm-Gg":"Acq92OH14ea8GzzIst+6b8jucIX8149s75ZS77/3re41/grZ9MVK3+DgvmJnW/T6Ejq\n\tBp94YgAUc+DyQ7Fj/WXMeCNMrYIV4rGMqIbSlhtknT3KScvbMKOQFjkQGEvC4i3jqnF9yLABqed\n\trxAbBz+6YZ0YhJY/UYjxcS2p3hq9+VxWnYXC/7SmzixEM5L3FcKxJQIM37WAtyNYX53Rsj2/18a\n\tTgl2lDsTX8Zh51QPvXrZwS8SJaDINhSh+RpdpQmDhTP0MmH2PDKkoCMRQAw8eI/aOdgZGRCYo+g\n\tyYUnmtHonbNpig1UvQITatC2SZRypDmQbNAtbiBcwU3pxBB2stPIAyaKGSrcBPjDSYdf7/9ommX\n\t0q0ek9ZWOp4ePP3hRzP55xGXZ","X-Received":"by 2002:a17:907:8748:b0:b9d:1673:9994 with SMTP id\n\ta640c23a62f3a-bd51793014amr921360266b.39.1779115758740;\n\tMon, 18 May 2026 07:49:18 -0700 (PDT)","MIME-Version":"1.0","References":"<20260518142600.6546-1-david.plowman@raspberrypi.com>","In-Reply-To":"<20260518142600.6546-1-david.plowman@raspberrypi.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Mon, 18 May 2026 15:49:07 +0100","X-Gm-Features":"AVHnY4JrD2c0yu2g16NmdpfptbDHdBq-cK0asNBDQ3ulrV6GE3f9tO2SZKPovkM","Message-ID":"<CAHW6GYL22kLjS+hVNvXuPfugYHg=O4uMXvMzuix6aOY=hLJ4Dw@mail.gmail.com>","Subject":"Re: [PATCH v1] ipa: rpi: Improve control over which sensor modes\n\trequire \"debinning\"","To":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":38944,"web_url":"https://patchwork.libcamera.org/comment/38944/","msgid":"<CAPhyPA4oQHASwQ=mvGNrVoYujuBdTj4byNUG-84jddVNM9UYVA@mail.gmail.com>","date":"2026-05-22T10:46:35","subject":"Re: [PATCH v1] ipa: rpi: Improve control over which sensor modes\n\trequire \"debinning\"","submitter":{"id":130,"url":"https://patchwork.libcamera.org/api/people/130/","name":"Nick Hollinghurst","email":"nick.hollinghurst@raspberrypi.com"},"content":"Hi David,\n\nThanks for the patch.\nI have tested it with a Raspberry Pi 5 and IMX708 (Quad Bayer) camera\nwith the following:\n~/rpicam-apps/build/apps/rpicam-still --mode 2304:1296 -n -o tmp1.jpg\nThere is a visible improvement with the change, it reduces blockiness\nand ringing artifacts.\n\nTested-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>\n\n\n Nick\n\nOn Mon, 18 May 2026 at 15:49, David Plowman\n<david.plowman@raspberrypi.com> wrote:\n>\n> A small correction of my own...\n>\n> On Mon, 18 May 2026 at 15:26, David Plowman\n> <david.plowman@raspberrypi.com> wrote:\n> >\n> > \"Debinning\" is the process that corrects the spatial sampling of\n> > pixels when this has been disturbed by the standard binning process.\n> >\n> > However, debinning is not required for sensors that do it themselves,\n> > or for quad Bayer sensors at 2x2 binning where the spatial sampling is\n> > already correct.\n> >\n> > Here we add a getMinDebinFactor() to the CamHelper which allows us to\n> > customise at what binning (or downscaling) factor we need to apply the\n> > correction. This value is then used to decide whether to enable the\n> > relevant PiSP block.\n> >\n> > Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> > ---\n> >  src/ipa/rpi/cam_helper/cam_helper.cpp        | 6 ++++++\n> >  src/ipa/rpi/cam_helper/cam_helper.h          | 6 ++++++\n> >  src/ipa/rpi/cam_helper/cam_helper_imx708.cpp | 7 +++++++\n> >  src/ipa/rpi/pisp/pisp.cpp                    | 8 +++++---\n> >  4 files changed, 24 insertions(+), 3 deletions(-)\n> >\n> > diff --git a/src/ipa/rpi/cam_helper/cam_helper.cpp b/src/ipa/rpi/cam_helper/cam_helper.cpp\n> > index a78db9c1..dfdcd167 100644\n> > --- a/src/ipa/rpi/cam_helper/cam_helper.cpp\n> > +++ b/src/ipa/rpi/cam_helper/cam_helper.cpp\n> > @@ -204,6 +204,12 @@ unsigned int CamHelper::mistrustFramesModeSwitch() const\n> >         return 0;\n> >  }\n> >\n> > +unsigned int CamHelper::getMinDebinFactor() const\n> > +{\n> > +       /* Most cameras require debinning from 2x2 binning upwards. */\n> > +       return 2;\n> > +}\n> > +\n> >  void CamHelper::parseEmbeddedData(Span<const uint8_t> buffer,\n> >                                   Metadata &metadata)\n> >  {\n> > diff --git a/src/ipa/rpi/cam_helper/cam_helper.h b/src/ipa/rpi/cam_helper/cam_helper.h\n> > index 4a826690..349891c4 100644\n> > --- a/src/ipa/rpi/cam_helper/cam_helper.h\n> > +++ b/src/ipa/rpi/cam_helper/cam_helper.h\n> > @@ -62,6 +62,11 @@ namespace RPiController {\n> >   * MistrustFramesModeSwitch(): The number of frames, after a mode switch\n> >   *    (other than start-up), for which control algorithms should not run\n> >   *    (for example, metadata may be unreliable).\n> > + * getMinDebinFactor(): the binning factor after which we should apply\n> > + *    \"debinning\", which corrects for the uneven spatial sampling of the\n> > + *    standard binning process. A return value of 2 means to enable\n> > + *    debinning for camera modes using 2x2, or larger, binning. A return\n> > + *    value of zero means never to enable binning.\n>\n> s/binning/debinning/\n>\n> >   */\n> >\n> >  class CamHelper\n> > @@ -93,6 +98,7 @@ public:\n> >         virtual unsigned int hideFramesModeSwitch() const;\n> >         virtual unsigned int mistrustFramesStartup() const;\n> >         virtual unsigned int mistrustFramesModeSwitch() const;\n> > +       virtual unsigned int getMinDebinFactor() const;\n> >\n> >  protected:\n> >         void parseEmbeddedData(libcamera::Span<const uint8_t> buffer,\n> > diff --git a/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp b/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp\n> > index 6150909c..e7b8d671 100644\n> > --- a/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp\n> > +++ b/src/ipa/rpi/cam_helper/cam_helper_imx708.cpp\n> > @@ -58,6 +58,7 @@ public:\n> >         double getModeSensitivity(const CameraMode &mode) const override;\n> >         unsigned int hideFramesModeSwitch() const override;\n> >         unsigned int hideFramesStartup() const override;\n> > +       unsigned int getMinDebinFactor() const override;\n> >\n> >  private:\n> >         /*\n> > @@ -237,6 +238,12 @@ unsigned int CamHelperImx708::hideFramesStartup() const\n> >         return hideFramesModeSwitch();\n> >  }\n> >\n> > +unsigned int CamHelperImx708::getMinDebinFactor() const\n> > +{\n> > +       /* Quad-Bayer sensor, so debinning required only at 4x4 binning. */\n> > +       return 4;\n> > +}\n> > +\n> >  void CamHelperImx708::populateMetadata(const MdParser::RegisterMap &registers,\n> >                                        Metadata &metadata) const\n> >  {\n> > diff --git a/src/ipa/rpi/pisp/pisp.cpp b/src/ipa/rpi/pisp/pisp.cpp\n> > index de2a6afe..fd28fc38 100644\n> > --- a/src/ipa/rpi/pisp/pisp.cpp\n> > +++ b/src/ipa/rpi/pisp/pisp.cpp\n> > @@ -1078,12 +1078,14 @@ void IpaPiSP::setStatsAndDebin()\n> >         pisp_be_global_config beGlobal;\n> >         be_->GetGlobal(beGlobal);\n> >\n> > -       if (mode_.binX > 1 || mode_.binY > 1) {\n> > +       unsigned int minDebinFactor = helper_->getMinDebinFactor();\n> > +       if (minDebinFactor &&\n> > +           (mode_.binX >= minDebinFactor || mode_.binY >= minDebinFactor)) {\n> >                 pisp_be_debin_config debin;\n> >\n> >                 be_->GetDebin(debin);\n> > -               debin.h_enable = (mode_.binX > 1);\n> > -               debin.v_enable = (mode_.binY > 1);\n> > +               debin.h_enable = (mode_.binX >= minDebinFactor);\n> > +               debin.v_enable = (mode_.binY >= minDebinFactor);\n> >                 be_->SetDebin(debin);\n> >                 beGlobal.bayer_enables |= PISP_BE_BAYER_ENABLE_DEBIN;\n> >         } else\n> > --\n> > 2.47.3\n> >","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0B9C7BDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 22 May 2026 10:46:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A58A162FEC;\n\tFri, 22 May 2026 12:46:49 +0200 (CEST)","from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com\n\t[IPv6:2607:f8b0:4864:20::32c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EDEBA62DC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 May 2026 12:46:47 +0200 (CEST)","by mail-ot1-x32c.google.com with SMTP id\n\t46e09a7af769-7e5fd39cf11so831026a34.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 May 2026 03:46:47 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"q5g0LYbd\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1779446806; cv=none;\n\td=google.com; s=arc-20240605;\n\tb=CdgHFn6TSWzoQrqmJq7/rgNmjToDMu323MxCS3NFgKS37Xr+JeYY5WKJmmgjTAJ49J\n\toA00dapjHrEHlFEQwll+IFjx852NS8wKguZD5+nyOusNRybdbqUvgIPeSHJs5C0MHvSB\n\tlvscwCzJf7ppmacspjN60aB36IYazDqF4qKup+bU13aj9xvNQbv2sGt1Hd77ir0duUJ2\n\tKyoB5H+bji7AVZjODrpIFRqH0WxWoxurTMXt2AJ60K4O6Htt18hso0DcOJw/3oLqnXJ0\n\tyTHMP7+RqGV3EcrLa8fPzKiEfUTegyJSlvsm0zxkG61XLiOQwTSyapj9pJuoImrlna+N\n\tRt2Q==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20240605; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:dkim-signature;\n\tbh=yWT6oFISG9cbbfUsthASeDm+HFCS8LPFKnXr/PZo8qQ=;\n\tfh=raf7gMhxwhTsDETG3li6wpOfdJf6YyDg/c7aYJ8coN8=;\n\tb=UmqjMmN8TpBUaFlAIoY7bQ0bVoOiqkGW/ZEkh863NY5q0HGWpxoj6DTTq3JyKPa3VX\n\t2IyhTC+pqf5So4FOATLaisnogjIdeTPEqUu1GyRB5fjXBjG97KO2jxZv8VPF6lY4tuvL\n\t8dP/CdRqUfHfzFfD4xnZ5pi9fu9xzTuAYy7mB3NHitzf8chdniOl0do0L6QJe5Cn5kXf\n\tvkQ4ltKzXD7aW4YsL8fiWv0DLIzfoo16fLMJEW/HCxyndDVKv41EAxELjr9Asf4J88vK\n\ta1S9yiRcR0UG5wtgQqZ2IF+4LHyQB136vlMRljFa9/gelL3yhHDO161kZ1kf+JQcwzzu\n\t+6Uw==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1779446806; x=1780051606;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=yWT6oFISG9cbbfUsthASeDm+HFCS8LPFKnXr/PZo8qQ=;\n\tb=q5g0LYbdznsPHTXU50T8wOU+YDXD489BQrXM5WHz2HjJI1Cm3BxCtcsfMr4XEDJfT6\n\twuZ4d4DUsnD6+kqNv7Woqtepb6UUacKc/+Rxn8YC9/UiGLvjdrpmOKGw4sfoECHhDdHC\n\t8BheGmW8eyc1kxBYR6hGgSFYrCv/cTMtsQsY0cTTJlAzGT1fuUFS6cTN47qXk+4XKsWb\n\tZFnw+zdr0zlbjHR5TGPyxR2bvVhlY6RCRE7GbleU6DYKPER102vyR2VGUtz+oTiPrBZe\n\tvViSGCUzlgBUFAJiMbv4+p/zMuSBcBfxbinlk8l8emudqDyoKUofSrVY2b1yte36cgKh\n\tovog==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1779446806; x=1780051606;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=yWT6oFISG9cbbfUsthASeDm+HFCS8LPFKnXr/PZo8qQ=;\n\tb=kUIXz0eiPHIfg0+De4XucnIwfAbWcYKvJ4O55pwUC5qFiACE6oGWjcRqbWfNEofoqG\n\tlVo/I+R6pG1v/L67W4zW7z21BKvcnjRjUrBrCe6NlHJktcWv+EYeHyz3utDZ2Tf2VQqM\n\tov2o4QxMHMAdHL+P7y2eaG4dXv8MNpSoGWpkRc+XPNKi1KAcBQLtuHam6EtefZV9TNnF\n\tJuw0ye8REHrQRCXxBpup54QjUe6mUKjEIbsVS+YTF1JRoIEo6ZtHCwgPi3IIdbn9kZSe\n\tcFHQHEH/TQOGKLKOkueWkRruUvJ0/vCyKbTM5Fl3ovVZPxHRB2OkUA8kr5Y6oKe2kgjx\n\t0+Pw==","X-Gm-Message-State":"AOJu0YzeiES1SJIhxb4NTAOUaFdb861dwVUIZvlFJfkA5XJ/c+wjbV3h\n\tW4JmLK+iN0lG3CJ/RdotJck/UP5MWLDUCXJHS+ivbq/wNqaAVPmSeFEuBqKgaEjjRlI74t7MT/2\n\tN/gtuMbUEau+Kju9VEFDAvMKbbGH73H+QtJaopoLHqA==","X-Gm-Gg":"Acq92OGheCF8PHv1tCslHAnZek/1xOc+5beiepytrYCc9xkxbxwB4eNCuK6Zh/sUG9U\n\t+Lw4bTq3GiRSnf42F2pe9sHsU4K7KJlcoGPwuTtX94h8ZLk81HES4z5U4ikIt5Ed/WKK5S9w9gB\n\tNWneYx5QLo1Sao9IY/0XlDU1sZzhiAYl49eJVrtsX/NsesJL60BwNQHqOfIDzvdINppRVHhusCM\n\tDp58LuNSJrzBGpN6StCYvP8lXU0rKDWuJdvwZcJdXWjppeZumcwgICp2yfu+vCMt6tU3A3/09Hp\n\tSwHQHXiceHJlc8Rb8fTuy4DFaqfJF4UwhzBinxw=","X-Received":"by 2002:a05:6820:1689:b0:694:9d3d:e040 with SMTP id\n\t006d021491bc7-69d7ec5ae1emr1489075eaf.31.1779446806378;\n\tFri, 22 May 2026 03:46:46 -0700 (PDT)","MIME-Version":"1.0","References":"<20260518142600.6546-1-david.plowman@raspberrypi.com>\n\t<CAHW6GYL22kLjS+hVNvXuPfugYHg=O4uMXvMzuix6aOY=hLJ4Dw@mail.gmail.com>","In-Reply-To":"<CAHW6GYL22kLjS+hVNvXuPfugYHg=O4uMXvMzuix6aOY=hLJ4Dw@mail.gmail.com>","From":"Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>","Date":"Fri, 22 May 2026 11:46:35 +0100","X-Gm-Features":"AVHnY4IN1kvgYSLSbOWiJUbpAq8y7JdXMrwiNq34KcHf9iNoXu60CLj9eJkcGRE","Message-ID":"<CAPhyPA4oQHASwQ=mvGNrVoYujuBdTj4byNUG-84jddVNM9UYVA@mail.gmail.com>","Subject":"Re: [PATCH v1] ipa: rpi: Improve control over which sensor modes\n\trequire \"debinning\"","To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]