[{"id":33911,"web_url":"https://patchwork.libcamera.org/comment/33911/","msgid":"<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>","date":"2025-04-04T06:56:33","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Quentin\n\nOn Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n> From: Quentin Schulz <quentin.schulz@cherry.de>\n>\n> This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n>\n> Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n> rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n> driver required to dynamically query the resizer limits.\n>\n> Because of that, maxResolution and minResolution are both {0, 0}\n> (default value for Size objects) which means filterSensorResolution()\n> will create an entry for the sensor in sensorSizesMap_ but because the\n> sensor resolution cannot fit inside the min and max resolution of the\n> rkisp1, no size is put into this entry in sensorSizesMap_.\n> On the next call to filterSensorResolution(),\n> sensorSizesMap_.find(sensor) will return the entry but when attempting\n> to call back() on iter->second, it'll trigger an assert because the size\n> array is empty.\n>\n> Linux kernel 6.1 is supported until December 2027, so it seems premature\n> to get rid of those hard-coded resizer limits before this happens.\n>\n> Let's keep the hard-coded resizer limits by default, they can still be\n> queried if necessary.\n\nSo I presume you hit\n\n        LOG(RkISP1, Info)\n                << \"Failed to enumerate supported formats and sizes, using defaults\";\n\n>\n> Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline\")\n\nNot sure about the fixes tag here, but indeed if this fixes an issue\non an older but not-yet-dead kernel at the cheap cost of a having a\nfew defaults here, then:\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 +++++++++++++------\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 ++-\n>  2 files changed, 17 insertions(+), 7 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> index eee5b09e..d43f31e1 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> @@ -54,8 +54,11 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {\n>\n>  } /* namespace */\n>\n> -RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)\n> -\t: name_(name), running_(false), formats_(formats), link_(nullptr)\n> +RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> +\t\t       const Size &minResolution, const Size &maxResolution)\n> +\t: name_(name), running_(false), formats_(formats),\n> +\t  minResolution_(minResolution), maxResolution_(maxResolution),\n> +\t  link_(nullptr)\n>  {\n>  }\n>\n> @@ -517,10 +520,12 @@ void RkISP1Path::stop()\n>  }\n>\n>  /*\n> - * \\todo Remove the hardcoded formats once all users will have migrated to a\n> - * recent enough kernel.\n> + * \\todo Remove the hardcoded resolutions and formats once all users will have\n> + * migrated to a recent enough kernel.\n>   */\n>  namespace {\n> +constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };\n> +constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };\n>  constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>  \tformats::YUYV,\n>  \tformats::NV16,\n> @@ -542,6 +547,8 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>  \tformats::SRGGB12,\n>  };\n>\n> +constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };\n> +constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };\n>  constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>  \tformats::YUYV,\n>  \tformats::NV16,\n> @@ -555,12 +562,14 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>  } /* namespace */\n>\n>  RkISP1MainPath::RkISP1MainPath()\n> -\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS)\n> +\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS,\n> +\t\t     RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)\n>  {\n>  }\n>\n>  RkISP1SelfPath::RkISP1SelfPath()\n> -\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS)\n> +\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS,\n> +\t\t     RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)\n>  {\n>  }\n>\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index 2a1ef0ab..430181d3 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -34,7 +34,8 @@ struct V4L2SubdeviceFormat;\n>  class RkISP1Path\n>  {\n>  public:\n> -\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats);\n> +\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> +\t\t   const Size &minResolution, const Size &maxResolution);\n>\n>  \tbool init(MediaDevice *media);\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 3A038C327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  4 Apr 2025 06:56:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 82283689A1;\n\tFri,  4 Apr 2025 08:56:38 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B9A6C62C62\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  4 Apr 2025 08:56:36 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2C3ED49E;\n\tFri,  4 Apr 2025 08:54:42 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"EVf7aWTX\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1743749682;\n\tbh=tJYqbZLNrl4NuplPZ1bFCwZoMYgRwVheICl6ZG74gDw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=EVf7aWTX6y2OjZcbgm2Uu63sH8LsvKfcKT1n8ZEMRdxodrRRV4Lhte1wU/5GYdXaF\n\t/DDOzBgwL8b+KH2L74d1aSCpA9GsVrWEp/37TcwFMJAwv1/fU5JKO8c2xtTogUM+TE\n\tuHdZxcOrL2KbOYZaC45hKCd7abdT9i6hJaUEqyQI=","Date":"Fri, 4 Apr 2025 08:56:33 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Quentin Schulz <foss+libcamera@0leil.net>","Cc":"Umang Jain <umang.jain@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tQuentin Schulz <quentin.schulz@cherry.de>","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","Message-ID":"<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20250403180902.484863-1-foss+libcamera@0leil.net>","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":33912,"web_url":"https://patchwork.libcamera.org/comment/33912/","msgid":"<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>","date":"2025-04-04T07:46:11","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Jacopo Mondi (2025-04-04 07:56:33)\n> Hi Quentin\n> \n> On Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n> > From: Quentin Schulz <quentin.schulz@cherry.de>\n> >\n> > This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n> >\n> > Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n> > rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n> > driver required to dynamically query the resizer limits.\n> >\n> > Because of that, maxResolution and minResolution are both {0, 0}\n> > (default value for Size objects) which means filterSensorResolution()\n> > will create an entry for the sensor in sensorSizesMap_ but because the\n> > sensor resolution cannot fit inside the min and max resolution of the\n> > rkisp1, no size is put into this entry in sensorSizesMap_.\n> > On the next call to filterSensorResolution(),\n> > sensorSizesMap_.find(sensor) will return the entry but when attempting\n> > to call back() on iter->second, it'll trigger an assert because the size\n> > array is empty.\n> >\n> > Linux kernel 6.1 is supported until December 2027, so it seems premature\n> > to get rid of those hard-coded resizer limits before this happens.\n> >\n> > Let's keep the hard-coded resizer limits by default, they can still be\n> > queried if necessary.\n> \n> So I presume you hit\n> \n>         LOG(RkISP1, Info)\n>                 << \"Failed to enumerate supported formats and sizes, using defaults\";\n> \n> >\n> > Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline\")\n> \n> Not sure about the fixes tag here, but indeed if this fixes an issue\n> on an older but not-yet-dead kernel at the cheap cost of a having a\n> few defaults here, then:\n> \n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nRather annoyingly, - I think we introduced this because different\nhardware has different limits, and so we moved the limits to the kernel\n(where we wish they were all along).\n\nBringing the hardcoded single limits in this patch may potentially\nrestrict platforms maximum size capabilities - such as the i.MX8MP for\ninstance....\n\nI don't object to making sure we can still support 6.1 - but we would\nthen need to revisit how to handle the platform specific differences\nacross all of the platforms supported by the RkISP1....\n--\nKieran\n\n> \n> Thanks\n>   j\n> \n> > Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>\n> > ---\n> >  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 +++++++++++++------\n> >  src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 ++-\n> >  2 files changed, 17 insertions(+), 7 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > index eee5b09e..d43f31e1 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > @@ -54,8 +54,11 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {\n> >\n> >  } /* namespace */\n> >\n> > -RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)\n> > -     : name_(name), running_(false), formats_(formats), link_(nullptr)\n> > +RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> > +                    const Size &minResolution, const Size &maxResolution)\n> > +     : name_(name), running_(false), formats_(formats),\n> > +       minResolution_(minResolution), maxResolution_(maxResolution),\n> > +       link_(nullptr)\n> >  {\n> >  }\n> >\n> > @@ -517,10 +520,12 @@ void RkISP1Path::stop()\n> >  }\n> >\n> >  /*\n> > - * \\todo Remove the hardcoded formats once all users will have migrated to a\n> > - * recent enough kernel.\n> > + * \\todo Remove the hardcoded resolutions and formats once all users will have\n> > + * migrated to a recent enough kernel.\n> >   */\n> >  namespace {\n> > +constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };\n> > +constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };\n> >  constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n> >       formats::YUYV,\n> >       formats::NV16,\n> > @@ -542,6 +547,8 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n> >       formats::SRGGB12,\n> >  };\n> >\n> > +constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };\n> > +constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };\n> >  constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n> >       formats::YUYV,\n> >       formats::NV16,\n> > @@ -555,12 +562,14 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n> >  } /* namespace */\n> >\n> >  RkISP1MainPath::RkISP1MainPath()\n> > -     : RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS)\n> > +     : RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS,\n> > +                  RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)\n> >  {\n> >  }\n> >\n> >  RkISP1SelfPath::RkISP1SelfPath()\n> > -     : RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS)\n> > +     : RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS,\n> > +                  RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)\n> >  {\n> >  }\n> >\n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> > index 2a1ef0ab..430181d3 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> > @@ -34,7 +34,8 @@ struct V4L2SubdeviceFormat;\n> >  class RkISP1Path\n> >  {\n> >  public:\n> > -     RkISP1Path(const char *name, const Span<const PixelFormat> &formats);\n> > +     RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> > +                const Size &minResolution, const Size &maxResolution);\n> >\n> >       bool init(MediaDevice *media);\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 D9476C3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  4 Apr 2025 07:46:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EEE7A689A1;\n\tFri,  4 Apr 2025 09:46:15 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1F3AC62C67\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  4 Apr 2025 09:46:15 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2013F49E;\n\tFri,  4 Apr 2025 09:44:20 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"PNlgVXy5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1743752660;\n\tbh=uo1s6PrUg4yQ3NgWs9iBo8keVxIedNdUub23JLZTBZo=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=PNlgVXy5zeLepm4VN59zmUQ+DqidOCErXpVllUxcv/OhZzin+NuRsZmPVaj1avl69\n\t6QVCAKoN4ILiQJ5Qj/gCvfnQbMyq9t+C/5qn6/hcvTgkEEFCwTthWC7Bcqb/gRe8dZ\n\t4lu/TjW7kruuuSRuM1z0rvw0nf6Hy1qgTxcjAchk=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>\n\t<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tQuentin Schulz <quentin.schulz@cherry.de>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tQuentin Schulz <foss+libcamera@0leil.net>","Date":"Fri, 04 Apr 2025 08:46:11 +0100","Message-ID":"<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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":33913,"web_url":"https://patchwork.libcamera.org/comment/33913/","msgid":"<4lm6eye524tj3eiicdodlehnokaky5qadj2tjyzmmjkfg7dowb@gyt3mqur3ym7>","date":"2025-04-04T07:52:47","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Kieran\n\nOn Fri, Apr 04, 2025 at 08:46:11AM +0100, Kieran Bingham wrote:\n> Quoting Jacopo Mondi (2025-04-04 07:56:33)\n> > Hi Quentin\n> >\n> > On Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n> > > From: Quentin Schulz <quentin.schulz@cherry.de>\n> > >\n> > > This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n> > >\n> > > Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n> > > rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n> > > driver required to dynamically query the resizer limits.\n> > >\n> > > Because of that, maxResolution and minResolution are both {0, 0}\n> > > (default value for Size objects) which means filterSensorResolution()\n> > > will create an entry for the sensor in sensorSizesMap_ but because the\n> > > sensor resolution cannot fit inside the min and max resolution of the\n> > > rkisp1, no size is put into this entry in sensorSizesMap_.\n> > > On the next call to filterSensorResolution(),\n> > > sensorSizesMap_.find(sensor) will return the entry but when attempting\n> > > to call back() on iter->second, it'll trigger an assert because the size\n> > > array is empty.\n> > >\n> > > Linux kernel 6.1 is supported until December 2027, so it seems premature\n> > > to get rid of those hard-coded resizer limits before this happens.\n> > >\n> > > Let's keep the hard-coded resizer limits by default, they can still be\n> > > queried if necessary.\n> >\n> > So I presume you hit\n> >\n> >         LOG(RkISP1, Info)\n> >                 << \"Failed to enumerate supported formats and sizes, using defaults\";\n> >\n> > >\n> > > Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline\")\n> >\n> > Not sure about the fixes tag here, but indeed if this fixes an issue\n> > on an older but not-yet-dead kernel at the cheap cost of a having a\n> > few defaults here, then:\n> >\n> > Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>\n> Rather annoyingly, - I think we introduced this because different\n> hardware has different limits, and so we moved the limits to the kernel\n> (where we wish they were all along).\n>\n> Bringing the hardcoded single limits in this patch may potentially\n> restrict platforms maximum size capabilities - such as the i.MX8MP for\n> instance....\n\nIf the driver supports ENUM_FRAMESIZES the actual limits should be\nused, or am I missing something ?\n\n>\n> I don't object to making sure we can still support 6.1 - but we would\n> then need to revisit how to handle the platform specific differences\n> across all of the platforms supported by the RkISP1....\n> --\n> Kieran\n>\n> >\n> > Thanks\n> >   j\n> >\n> > > Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>\n> > > ---\n> > >  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 +++++++++++++------\n> > >  src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 ++-\n> > >  2 files changed, 17 insertions(+), 7 deletions(-)\n> > >\n> > > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > > index eee5b09e..d43f31e1 100644\n> > > --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > > +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> > > @@ -54,8 +54,11 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {\n> > >\n> > >  } /* namespace */\n> > >\n> > > -RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)\n> > > -     : name_(name), running_(false), formats_(formats), link_(nullptr)\n> > > +RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> > > +                    const Size &minResolution, const Size &maxResolution)\n> > > +     : name_(name), running_(false), formats_(formats),\n> > > +       minResolution_(minResolution), maxResolution_(maxResolution),\n> > > +       link_(nullptr)\n> > >  {\n> > >  }\n> > >\n> > > @@ -517,10 +520,12 @@ void RkISP1Path::stop()\n> > >  }\n> > >\n> > >  /*\n> > > - * \\todo Remove the hardcoded formats once all users will have migrated to a\n> > > - * recent enough kernel.\n> > > + * \\todo Remove the hardcoded resolutions and formats once all users will have\n> > > + * migrated to a recent enough kernel.\n> > >   */\n> > >  namespace {\n> > > +constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };\n> > > +constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };\n> > >  constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n> > >       formats::YUYV,\n> > >       formats::NV16,\n> > > @@ -542,6 +547,8 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n> > >       formats::SRGGB12,\n> > >  };\n> > >\n> > > +constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };\n> > > +constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };\n> > >  constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n> > >       formats::YUYV,\n> > >       formats::NV16,\n> > > @@ -555,12 +562,14 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n> > >  } /* namespace */\n> > >\n> > >  RkISP1MainPath::RkISP1MainPath()\n> > > -     : RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS)\n> > > +     : RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS,\n> > > +                  RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)\n> > >  {\n> > >  }\n> > >\n> > >  RkISP1SelfPath::RkISP1SelfPath()\n> > > -     : RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS)\n> > > +     : RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS,\n> > > +                  RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)\n> > >  {\n> > >  }\n> > >\n> > > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> > > index 2a1ef0ab..430181d3 100644\n> > > --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> > > +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> > > @@ -34,7 +34,8 @@ struct V4L2SubdeviceFormat;\n> > >  class RkISP1Path\n> > >  {\n> > >  public:\n> > > -     RkISP1Path(const char *name, const Span<const PixelFormat> &formats);\n> > > +     RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> > > +                const Size &minResolution, const Size &maxResolution);\n> > >\n> > >       bool init(MediaDevice *media);\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 A5FB8C327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  4 Apr 2025 07:52:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ED910689A1;\n\tFri,  4 Apr 2025 09:52:51 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E877862C67\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  4 Apr 2025 09:52:50 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 363EF49E;\n\tFri,  4 Apr 2025 09:50:56 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"TIMOxQcn\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1743753056;\n\tbh=gZCQ+N004WNTZGF5O6VknqD0HyzfvUjiuxHb8q1RF0A=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=TIMOxQcn0KhRRFgwRCnGZCId84MSnvqY9BjoIPWScKOq4rhCxIMg8MiZencwBHHxn\n\tO+d8dHcxUXQ5wz1OFix+cM3uLBWtg+V/w4wMcIDTYmWdsixiU4C5wDhIlGLHqzIPdM\n\thUPworXSbtn3P9i6ENbWCKH9sWKUJn7gE77u5CC8=","Date":"Fri, 4 Apr 2025 09:52:47 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tQuentin Schulz <foss+libcamera@0leil.net>,\n\tUmang Jain <umang.jain@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tQuentin Schulz <quentin.schulz@cherry.de>","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","Message-ID":"<4lm6eye524tj3eiicdodlehnokaky5qadj2tjyzmmjkfg7dowb@gyt3mqur3ym7>","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>\n\t<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>\n\t<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>","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":33914,"web_url":"https://patchwork.libcamera.org/comment/33914/","msgid":"<d8f26b1b-2997-42c8-947b-b89f6bc19ec3@cherry.de>","date":"2025-04-04T09:10:44","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":202,"url":"https://patchwork.libcamera.org/api/people/202/","name":"Quentin Schulz","email":"quentin.schulz@cherry.de"},"content":"Hi Jacopo,\n\nOn 4/4/25 8:56 AM, Jacopo Mondi wrote:\n> Hi Quentin\n> \n> On Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n>> From: Quentin Schulz <quentin.schulz@cherry.de>\n>>\n>> This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n>>\n>> Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n>> rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n>> driver required to dynamically query the resizer limits.\n>>\n>> Because of that, maxResolution and minResolution are both {0, 0}\n>> (default value for Size objects) which means filterSensorResolution()\n>> will create an entry for the sensor in sensorSizesMap_ but because the\n>> sensor resolution cannot fit inside the min and max resolution of the\n>> rkisp1, no size is put into this entry in sensorSizesMap_.\n>> On the next call to filterSensorResolution(),\n>> sensorSizesMap_.find(sensor) will return the entry but when attempting\n>> to call back() on iter->second, it'll trigger an assert because the size\n>> array is empty.\n>>\n>> Linux kernel 6.1 is supported until December 2027, so it seems premature\n>> to get rid of those hard-coded resizer limits before this happens.\n>>\n>> Let's keep the hard-coded resizer limits by default, they can still be\n>> queried if necessary.\n> \n> So I presume you hit\n> \n>          LOG(RkISP1, Info)\n>                  << \"Failed to enumerate supported formats and sizes, using defaults\";\n> \n\nCorrect. On v0.4.0 (latest version in Buildroot):\n\n# cam -c1 -C15 -F --stream pixelformat=NV12,height=1440,width=1920 \n--strict-formats\n[0:02:21.164554400] [2523]  INFO Camera camera_manager.cpp:327 libcamera \nv0.4.0\n[0:02:21.189272566] [2524] ERROR V4L2 v4l2_videodevice.cpp:1208 \n/dev/video0[17:cap]: Unable to enumerate frame sizes: Inappropriate \nioctl for device\n[0:02:21.189448733] [2524]  INFO RkISP1 rkisp1_path.cpp:88 Failed to \nenumerate supported formats and sizes, using defaults\n[0:02:21.189828483] [2524] ERROR V4L2 v4l2_videodevice.cpp:1208 \n/dev/video1[19:cap]: Unable to enumerate frame sizes: Inappropriate \nioctl for device\n[0:02:21.189896150] [2524]  INFO RkISP1 rkisp1_path.cpp:88 Failed to \nenumerate supported formats and sizes, using defaults\n[0:02:21.197233900] [2524]  WARN CameraSensor \ncamera_sensor_legacy.cpp:501 'ov5675 2-0036': No sensor delays found in \nstatic properties. Assuming unverified defaults.\n[0:02:21.206403316] [2524]  WARN RkISP1Agc agc.cpp:46 'AeMeteringMode' \nparameter not found in tuning file\n[0:02:21.206555566] [2524]  WARN RkISP1Agc agc.cpp:69 No metering modes \nread from tuning file; defaulting to matrix\n[0:02:21.206653858] [2524] ERROR Interpolator interpolator.h:50 yaml \nobject must be a list\n[0:02:21.206697025] [2524]  WARN RkISP1Awb awb.cpp:61 Failed to parse \n'colourGains' parameter from tuning file; manual colour temperature will \nnot work properly\n/home/qschulz/work/cobra/build-pp1516-debug/host/opt/ext-toolchain/aarch64-none-linux-gnu/include/c++/14.2.1/bits/stl_vector.h:1237: \nstd::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::back() \n[with _Tp = libcamera::Size; _Alloc = std::allocator<libcamera::Size>; \nreference = libcamera::Size&]: Assertion '!this->empty()' failed.\nAborted\n\n>>\n>> Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline\")\n> \n> Not sure about the fixes tag here, but indeed if this fixes an issue\n> on an older but not-yet-dead kernel at the cheap cost of a having a\n> few defaults here, then:\n> \n\nFair, me neither. It's just that the part that triggers the assert \nwithout this revert is added in that patch.\n\nI'm not too bothered if there isn't a Fixes: tag, so up to you.\n\nCheers,\nQuentin","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 35787C3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  4 Apr 2025 09:10:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1DE64689A1;\n\tFri,  4 Apr 2025 11:10:49 +0200 (CEST)","from EUR05-VI1-obe.outbound.protection.outlook.com\n\t(mail-vi1eur05on20606.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:2613::606])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 52AAA62C67\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  4 Apr 2025 11:10:47 +0200 (CEST)","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)\n\tby PR3PR04MB7466.eurprd04.prod.outlook.com (2603:10a6:102:87::22)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41;\n\tFri, 4 Apr 2025 09:10:45 +0000","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a]) by\n\tAS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a%6]) with mapi id 15.20.8583.041;\n\tFri, 4 Apr 2025 09:10:45 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=cherry.de header.i=@cherry.de\n\theader.b=\"GHfCUkEl\"; dkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=cherry.de;"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=kW/6ueUC4ry9sAbq0KyREyT891+T4T9nalYZSezAC230yqbZtJUn+btwvzE3xRq2/JcgbFKsXNE07CuNAjX/A0lICignexZxB8oK9oeyPv8MkRwx1MymmabYBoFhxeGUY+PFCJ0NEBZ3YL1ojavpFiO9rO9LDSmKAi8TEGFrvX8g2n3LMAf0nWIKshZYAtlL7oADLPmdDRTTwAFJHPpDsVTrYyxgFDO6i6FjfeejiG5lp611oecphptHmdrIP1X50UzF6syb8CFe7jEt6dtS8f/zmwlTdlzLDv+LJ56kMryZDAWaZ+37GGQ2bTWN8i8fm70bmzXyn7/m0kVH4VQK0Q==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=RufnhH8KaLUZE4dWwkZ1FlyoP6f7akN3LCEe+yDPm3A=;\n\tb=KT2pCFZ4le/nJGARndcxPaMnNH5wWfJ3413WszvKkjdrOUYL+SNrXHj4jZfG/UnEnqhd7yLNOO44glNwNu1DrcIA6+Bop6nZEf6sfJZDlePO6qBaa/GNEM1GmraGRvuEbG5GucWOkDVxn4N6PgsYnmj/pA97oZCVCgrUqKYd6VOfMlGuNecZ27SKDsPfAGXIgvlOT4CVLuUiBm8oN6VPyZkrzpsiy4dqgyAudW0NkcBefsN/mU0j1Gb5gB9DE8gaOU+6yv4kk3v0uP7CbAzRtntnuU91rmjQ5ckmflv6IWiB9dd6zVsdZObJLs5I2CqLZRx4tc3Sny8VV9KD1eSk+w==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=cherry.de; dmarc=pass action=none header.from=cherry.de;\n\tdkim=pass header.d=cherry.de; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=cherry.de;\n\ts=selector1; \n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=RufnhH8KaLUZE4dWwkZ1FlyoP6f7akN3LCEe+yDPm3A=;\n\tb=GHfCUkEl5AT4BNGzxrvcVaItUPwBABUJyYkDwS8EutZ+6oQVGOI/KDScLfTDb3QddQaLXp/PVGFzPDy6+ceH0DOv4DRsUEAnquOTFQ2zlZFx7LadORigQjBqhWFB7Dfym4jH33QMuNrfLrpLFhGDefAJ3kin01lUTOwXu4wRKWY=","Message-ID":"<d8f26b1b-2997-42c8-947b-b89f6bc19ec3@cherry.de>","Date":"Fri, 4 Apr 2025 11:10:44 +0200","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tQuentin Schulz <foss+libcamera@0leil.net>","Cc":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>\n\t<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>","Content-Language":"en-US","From":"Quentin Schulz <quentin.schulz@cherry.de>","In-Reply-To":"<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"FR3P281CA0030.DEUP281.PROD.OUTLOOK.COM\n\t(2603:10a6:d10:1c::16) To AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"AS8PR04MB8897:EE_|PR3PR04MB7466:EE_","X-MS-Office365-Filtering-Correlation-Id":"9d13af9b-79d9-4798-6b6e-08dd735894f8","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|376014|1800799024|366016;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?XB+Gt0MZwB16rZKXztBmaEgUf8L3?=\n\t=?utf-8?q?tnN9nnH7F8M98tA9HTxYW01vbLUwYbMkvrh4oGzBAjwxRnzXgzD8ZtPB?=\n\t=?utf-8?q?TSAMHh0XRXqZ0QfwrvzV8xcbAIP6SgJQYR0NUKxrq3pDrWCqJZMncXlW?=\n\t=?utf-8?q?J2fsWStR0W69MXZZlpfhKiwx7v3q4BvXbXr/4ylPKkCBJRyusuR+RUYa?=\n\t=?utf-8?q?akQ9N9gkT7hjLCOnSbrnM+I8QtMK69dFLTFeQe9P1PUFimYLtCZNTafq?=\n\t=?utf-8?q?f2hcU4Ig+mvlwsT5kQK8NxCaJDOl8Fe/UpvgEPFJwkwO4Ny9Rhrs8NPM?=\n\t=?utf-8?q?sn4JcR1+tuiV9oOkeCuUFzsklY+0lZPm4parYXRvxGgNdOeWCEP6jZPm?=\n\t=?utf-8?q?9k776vs5/l0AXUdBDfBklC2oRlYX0kTSRlw1zeVeB1yLj3jjqKcucuuc?=\n\t=?utf-8?q?a1pLOIKPfNi5EMYqfT/MmVa4CFLx7/iMISutFB8ozdT4MLZRXa3RsT62?=\n\t=?utf-8?q?8rKdmJnUtHLyuvf5jWDEYnQhlcAswAcA0PyqcHpCbqi4T4HqjLEuFlw1?=\n\t=?utf-8?q?At9HxsqWQIZ6LSdANCsn5P8EYICqEmoORYQquad5/QIrUhrcyZpHFtKb?=\n\t=?utf-8?q?dBzUGD4iqFBOWDAT456X0aDi8dftGVodG2DYy+dAFeNu2VY2X1UQmc5Y?=\n\t=?utf-8?q?OibJsguRQJhy95vDVtR9XQWpp4a9rg1ADV6njgmgILCBS7dLvmg7SHJm?=\n\t=?utf-8?q?y3NC5OGyscy+b6r5+s76ov3UCfE8MDBfwuZH6TmONs/UKqX4VEwV6ypA?=\n\t=?utf-8?q?c9LplAOIAj01SWiyflzF3ftRxSl+0YDfTcCeoF3o7dNQZupIFlf04six?=\n\t=?utf-8?q?b7VRcNDWKUZUQhP8+F1Zm51AHhvb00stsRwb/wAU9kSJm7vU+7ogq4SO?=\n\t=?utf-8?q?JtJssOxUVahI96ewfOL47HuklNxyImnbsqA9Y9F8zfl6gKiOpgsC4yM0?=\n\t=?utf-8?q?RzlKk3XQd+rrAsRBWHBfrUWIGOzV9FTjq/DyFagzbj6XuS3v/jcu6+J5?=\n\t=?utf-8?q?nzewJd4YoGmoubI7Mu9jhUgmgHAQmWHEsgWwCkh9+L0HA7QbEZwXWu2j?=\n\t=?utf-8?q?k8KSLQncwlSms7S8PuzHTevOL/qnY+m6nRnZ8P1pQMu7qAFdXgzFpt/Q?=\n\t=?utf-8?q?4yKn/uSJ1y22FmYz5SpAgjwbFXWvZ/IwWA9AoeeEFsAztSRxyQYoIfzD?=\n\t=?utf-8?q?BOPSLtPr2XflHKNgH2WYmhhAnFgUohn0x1niUbCihhUU5XdyH2+RZ9Sh?=\n\t=?utf-8?q?WcZ2KpDxI1ttuU/iz3Ob8+aO0EkKSCFBsthxjv2J8k/4cPKpwQ4gBqnQ?=\n\t=?utf-8?q?ASyRcv0AgGST0AgTCGMM/CX9DSNy0XslUzxjF800oLOBz86wOEpvQEWh?=\n\t=?utf-8?q?PsRBvGLgkvhqqTx+vDkMISyxPIUGb+i3eElEiMyRvMNh/T1KFLMwGrx8?=\n\t=?utf-8?q?/MnOZQXllPB9dChEDk2wjFT8PA2fE1weFngY?=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:AS8PR04MB8897.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?xjqEHyOmqUz+tJrJYLoc1Of1X?=\n\t=?utf-8?q?W2XCDueZ4rvLnPuTrSqMEs4jK7tzAtCTe82YNcBh4OGWBX0NPPAe03gY?=\n\t=?utf-8?q?NLw708rE6qeAHsdli3OHohcb3MPojfY3cXM0y7O+32CadepUGuyCRGY0?=\n\t=?utf-8?q?ve7NZ6bvgZEQ04VSyQwZ4iwDTGpNFplAaC/jcnv20mid2uBK9M57O4bz?=\n\t=?utf-8?q?M89uRZhX6pxLfXUG8p7lmLY9+ZWNO6GdalJcvkWgaV5YyVx/vujUNNP1?=\n\t=?utf-8?q?EmTpC2c8wM7YnWEr1u483Y3+CAhyd05Ad5U1cNl8VF6V0KOCTrh/Q/Fw?=\n\t=?utf-8?q?V9ZUTwJYMN+Vd/STYbMGQ3rgQxlAN6I7iQYE5bRzqawEpoGa0s7g7Gvf?=\n\t=?utf-8?q?1VmFwDphocq3sTkhC4REzoRhUsKiUDLW+HSRNm3WhdJtRjEzfSYKvPK2?=\n\t=?utf-8?q?ylm32Z6Jtup06vYvJPVjp5jkCc4hvStS0PYqCNqhWzZoWXGT3EZ7bIhc?=\n\t=?utf-8?q?3FkuPnFht6bfuC3TogUHkCFB/uK7rvb/t+gq1qxYArzHM8inDi91ptcK?=\n\t=?utf-8?q?Ip7NrkNzYSkqzuSy7Ep6U2Y5ioL+Vjd5AB2ucfBjl1wc0xpd5xR5qqWs?=\n\t=?utf-8?q?eJBwcKC9hkz1n/7p1qxPvbdloiKhMcPwXsUxLyoevt+wPGMNMXnhYcj8?=\n\t=?utf-8?q?qa1AhFgSa3bT7RQhdwE+s2zE1oxwyzLTXx1jBvTUUM7BqrtPTTnSzpiB?=\n\t=?utf-8?q?TM9C75i+8IDVMq/dD9B/+ZOpa+3UpTfppBEm+/alX868aiTp/5B7kDE9?=\n\t=?utf-8?q?eEQL4RFiTzWqG65y0iY+accYUs9470uDJvtgLsWwuYVYyhKfzCZKVIuq?=\n\t=?utf-8?q?L7uz+7W2eqtsxIdCi0km3bAglOwVYmyfM41R88f5j2tTbKiH/O7C5NVW?=\n\t=?utf-8?q?2Su+Q2Gw3Rahg3OsHfTTd3oXLLPjs03uSeEPkE2LafchXCx8MY8H+MTR?=\n\t=?utf-8?q?jriL83VblP7R4nw5eXlysyKL+OwBL9PdZ/tBZ05ISjL1GWuvF6P/5rTn?=\n\t=?utf-8?q?mXGaM/eUFnvFzsSSLKQ5o4Jzwh5PmJF0rmDhP6oFFp+WlIfsMrdkYtOM?=\n\t=?utf-8?q?VND+gi54lkAo0LfVsu0rqaqDVNxXk00NMzKuDmP8AD4nI1EgIWqrErtz?=\n\t=?utf-8?q?aq95xeOi46+DLeqCcdoOMeW3EB2JzsXQzRanDiTXFzPxpnEgSgS6DuZm?=\n\t=?utf-8?q?Ti+u8K7a+efh9uxhHMKO9hV+KVpjJaGev0aZoSpS35EHIzAb/js2Y3Cc?=\n\t=?utf-8?q?BrfrijaV1cqPCidZ/6Wz3M6wHqK2+GMr1CgOYNClfgeWjgvEYW6Xr6Fk?=\n\t=?utf-8?q?r6DXON8KtAUgx+Onogc5lXWfRBXgS+EtczZwpof7xurfpRgPmYolgYW7?=\n\t=?utf-8?q?GdUboysO8pqAIkdEHCQ/YsQ+IsAQCilbSjvnGqz9aHhkirODyH0mvkY+?=\n\t=?utf-8?q?90gv58zR0c2SCdrJ2+aIBeVklC1WEP/tbBQC0v543XcSoKphcrYotSdg?=\n\t=?utf-8?q?EXgpndW776+wAjkXEElkE0o5tmpsd5/20Vl02RsgVgBBGrGcR0Lq6Bgy?=\n\t=?utf-8?q?2j9kBbAIfxeOY0AYabuFn4oSfwAm4e9cW5QFRfaVf6EYGqJC28Gd3o6y?=\n\t=?utf-8?q?/WjZZVwsfxnWlLdUR3VhRglYdYA/vuzK7Dw6o92/A/PdTvOPXJv1xMGm?=\n\t=?utf-8?q?qnLgqYjYkgMUdB1rn3tMQlik8yiQw=3D=3D?=","X-OriginatorOrg":"cherry.de","X-MS-Exchange-CrossTenant-Network-Message-Id":"9d13af9b-79d9-4798-6b6e-08dd735894f8","X-MS-Exchange-CrossTenant-AuthSource":"AS8PR04MB8897.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"04 Apr 2025 09:10:45.1713\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"5e0e1b52-21b5-4e7b-83bb-514ec460677e","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"npCO9d5c9UTy9Sbayu4U4HWlsNPWSDUsj3rALzVHkZsT3b9sBm6M1EWcghIaUtg9Icp72TLFiDCMJC09HE9YvMiaMVq614U3BIC7QRrG3KE=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PR3PR04MB7466","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":33915,"web_url":"https://patchwork.libcamera.org/comment/33915/","msgid":"<c436f396-a03c-48f7-846f-27fcee09cf10@cherry.de>","date":"2025-04-04T09:15:38","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":202,"url":"https://patchwork.libcamera.org/api/people/202/","name":"Quentin Schulz","email":"quentin.schulz@cherry.de"},"content":"Hi Kieran,\n\nOn 4/4/25 9:46 AM, Kieran Bingham wrote:\n> Quoting Jacopo Mondi (2025-04-04 07:56:33)\n>> Hi Quentin\n>>\n>> On Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n>>> From: Quentin Schulz <quentin.schulz@cherry.de>\n>>>\n>>> This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n>>>\n>>> Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n>>> rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n>>> driver required to dynamically query the resizer limits.\n>>>\n>>> Because of that, maxResolution and minResolution are both {0, 0}\n>>> (default value for Size objects) which means filterSensorResolution()\n>>> will create an entry for the sensor in sensorSizesMap_ but because the\n>>> sensor resolution cannot fit inside the min and max resolution of the\n>>> rkisp1, no size is put into this entry in sensorSizesMap_.\n>>> On the next call to filterSensorResolution(),\n>>> sensorSizesMap_.find(sensor) will return the entry but when attempting\n>>> to call back() on iter->second, it'll trigger an assert because the size\n>>> array is empty.\n>>>\n>>> Linux kernel 6.1 is supported until December 2027, so it seems premature\n>>> to get rid of those hard-coded resizer limits before this happens.\n>>>\n>>> Let's keep the hard-coded resizer limits by default, they can still be\n>>> queried if necessary.\n>>\n>> So I presume you hit\n>>\n>>          LOG(RkISP1, Info)\n>>                  << \"Failed to enumerate supported formats and sizes, using defaults\";\n>>\n>>>\n>>> Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline\")\n>>\n>> Not sure about the fixes tag here, but indeed if this fixes an issue\n>> on an older but not-yet-dead kernel at the cheap cost of a having a\n>> few defaults here, then:\n>>\n>> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> \n> Rather annoyingly, - I think we introduced this because different\n> hardware has different limits, and so we moved the limits to the kernel\n> (where we wish they were all along).\n> \n> Bringing the hardcoded single limits in this patch may potentially\n> restrict platforms maximum size capabilities - such as the i.MX8MP for\n> instance....\n> \n\nThe support for the i.MX8MP was added in kernel 6.9 in 9f9cd26aec84 \n(\"media: rkisp1: Add match data for i.MX8MP ISP\") if I'm not mistaken. \nThat would be after the commit that added the plumbing for the ioctl for \ndetecting the frame sizes, so it would anyway (hopefully, haven't \nthoroughly checked the code) use the ioctl to set the min and max \nresolution.\n\n> I don't object to making sure we can still support 6.1 - but we would\n> then need to revisit how to handle the platform specific differences\n> across all of the platforms supported by the RkISP1....\n\nSo I would say we are safe from \"other SoCs implementing RkISP\" because \nthey were added after the ioctl was added?\n\nCheers,\nQuentin","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 3113EC327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  4 Apr 2025 09:15:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7E3B2689A1;\n\tFri,  4 Apr 2025 11:15:42 +0200 (CEST)","from EUR03-AM7-obe.outbound.protection.outlook.com\n\t(mail-am7eur03on20617.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:260e::617])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E4C0B62C67\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  4 Apr 2025 11:15:40 +0200 (CEST)","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)\n\tby AM9PR04MB8339.eurprd04.prod.outlook.com (2603:10a6:20b:3e6::6)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.42;\n\tFri, 4 Apr 2025 09:15:39 +0000","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a]) by\n\tAS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a%6]) with mapi id 15.20.8583.041;\n\tFri, 4 Apr 2025 09:15:39 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=cherry.de header.i=@cherry.de\n\theader.b=\"kbYdWedg\"; dkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=cherry.de;"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=ikR4tCQoe+etdhTm/rxSH4FOnZjRx4YK2ZzNzjoEQxTAuMPZDtVi/gui4zUgUIx1widyuxte1rUxYCcPWnoyQA7nNuvO/FaeTFPmqSAoXqfyPnnGyq8N8EmW+/65A4zfl1NDpPtHVBiXr/C3RQn8X6ujX8fmk6ZUtr3NfxBz55SpAwExo49YTwWa5RlrsYzhTNeP1N+AOQZB38jOzh+8TuY+MoEu6lV0gsuQmLhmHjPQalyQWDk+NOeG0BgqqM69eORDDf6agtbNkeGd0UtppOgHEGYQkwRI4ACYajz0tXTnp3ozKsoCdWtspLZSvrXtwbDyC0mL0V2xOojy5vxgjw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=6MzcDaaflrYWHfln/hig2tgEbeYg+gXFGox4Y5nc2U8=;\n\tb=Gwp5BW67QdycUviP/GppEodxnmhn6AsWGQYdLMuLVkvNpgPu+ZdPFwfydUrBL6aquSpIyG0UWlUnNlzBmu8OaHJARYPqxl2p19eR5dqdlHUmq3w0OJWuhGD4iT1qzB94m9yXKV+neg6XGPjDI0L+mHOlzkcKirk21l46mbGi8XJ7FP6H8aFptX1QCFvTImPUVQL9yodgjPZiaFR9ET5Miu1c9tnSnCYB0KddVZ819TVNNfW1j9Fyu3NIiGTKAxHmy7UIgjlWYU/oNdus/dpAuJhXRgsyYvCmnpABt9owrYI7iueu+OPjF6t3ULH7J38iC203e+Al01hwkxoEoifqRw==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=cherry.de; dmarc=pass action=none header.from=cherry.de;\n\tdkim=pass header.d=cherry.de; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=cherry.de;\n\ts=selector1; \n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=6MzcDaaflrYWHfln/hig2tgEbeYg+gXFGox4Y5nc2U8=;\n\tb=kbYdWedgAvfk5Mf0Yc7vpC6s+toQsvx5zs80YcdUjftHchoqWNVLJUExzTrCD/ficRTGUur10/SulF3zJZvoVVtxvukP8MiFehij0OU2ZmaBAlfdBYTjXJoSeg/NK8ONrBK02REb67t2rjAZ9LNH/ovwKDxuJigHgkYnXnUNlfw=","Message-ID":"<c436f396-a03c-48f7-846f-27fcee09cf10@cherry.de>","Date":"Fri, 4 Apr 2025 11:15:38 +0200","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tJacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tQuentin Schulz <foss+libcamera@0leil.net>","Cc":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>\n\t<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>\n\t<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>","Content-Language":"en-US","From":"Quentin Schulz <quentin.schulz@cherry.de>","In-Reply-To":"<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"FR4P281CA0087.DEUP281.PROD.OUTLOOK.COM\n\t(2603:10a6:d10:cd::11) To AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"AS8PR04MB8897:EE_|AM9PR04MB8339:EE_","X-MS-Office365-Filtering-Correlation-Id":"58916322-a104-437c-64ff-08dd73594440","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|376014|366016|1800799024;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?Dogb1K42qjXUnRd1eJuK68TBrkpx?=\n\t=?utf-8?q?ckJrmHrrxveJU88ew72f449Q1gKdhynClJKnNcqsFyF9MIpwHAMiBVJk?=\n\t=?utf-8?q?WPbmRD2C86mW23SgcPOPvc3hzjvsAvLsTPm1LElZg0bsAqc5uAwKCZ+v?=\n\t=?utf-8?q?8Lzk4fmm53lHGjyCQKNRDaNlZbmQi6jND3LFufGNabV0NdU5mPD0RJhh?=\n\t=?utf-8?q?mJkheEn4bqbXpgpxuMthzgdSS0Vn9J9SPEStUcwhBhACa73Pdmi5+NUW?=\n\t=?utf-8?q?oYbQuWPkTy6d8pNELbnrSI7ryZEh0d0+nYDHz3M9wfURuDMMYMD71rIU?=\n\t=?utf-8?q?wRiQ7oqzDyYvh8d6oPMTJyz35zedGPwtHYIuKmhHSk8NBrC/VrWLcDhU?=\n\t=?utf-8?q?3qn5Bbl/LgXsZMcuQ4CtPugmmWdNKseSIHvBKa52SYqr7O3Pd4p0yVAC?=\n\t=?utf-8?q?504AcfIYQDWimU9owpzTn23TSLOp+EPaEAsHZQZdfuh8Qf+Ro5NgIh3l?=\n\t=?utf-8?q?DhtgwqY86zIqdSFlum7zRfoiaRjvl2qnD+xtucx/ZFdhN/aKVaZrxUTx?=\n\t=?utf-8?q?uD2UFB361cNjuWgGIHy9Olt+zZnls3+bxJRCZU8lxlIt9Ttf/vpzfWsI?=\n\t=?utf-8?q?lKPjq/+uKnoDWB7hQwUO/TcIo+iUEI2jd/+jMNS5bus5H2MbHwTo1D21?=\n\t=?utf-8?q?XyRqyzWCIWoD7zWwc5mXgVSZEB7PKiPjpW8VSpJYrpWRoyjdxRAioAnu?=\n\t=?utf-8?q?MI0m9/2l45rZAOEj+bHOCafy7l1mZ33XsPjE3t5vaieXDaJVYGjZumFR?=\n\t=?utf-8?q?lLUJtqUoKozWm4WQFZQlNfqJpasmZa1JLWJkqO+y+khbuC1kz+ap43RS?=\n\t=?utf-8?q?gBwndhKS/19rDH/iUPwPRTzuA3gON1GDxH8qfpOxhwsomnIENqcNdfCI?=\n\t=?utf-8?q?jX/wuqaqI/GLmwMamYn/IfDjYGrUmV0wNLOsqMWsPhLWSWP4/LNt2p/A?=\n\t=?utf-8?q?zoZNgFn6+H+zKj771eiMpiKCKVpR4VeOdS/b4QlrqKqMy8K8kZA0w7Qo?=\n\t=?utf-8?q?rY6EQvAYFlKlAM6TZIVwi1oMP+S90b9Z4b0686skCyk+Q5kLLvl0HYbc?=\n\t=?utf-8?q?K6XJGtyuvQsKF3bSHypLEIajqmYHgDcW7zfpN7nrtB0KTwyGMpgaY6rD?=\n\t=?utf-8?q?BYc14w9v8jyMVOIMAZfBfY9CT08ZwOssueUhojCofShAy7WSFh3Y7qbZ?=\n\t=?utf-8?q?EatRStbkiN9O4y7P5UPv2YJgPZfxfzQ8QTLC8HSXhCRBqtV07S6xXaxp?=\n\t=?utf-8?q?ZSxJ1N/OPv6Of2PFBxa1l7nzRqWaZFEWjKmGiZa8dALpj0YNtc8reAlh?=\n\t=?utf-8?q?jdQsRBUVC1OS7+bGogfrh/LyhygsRu3nuvUgbaeIOJQZu6QD2XEaN1mp?=\n\t=?utf-8?q?+nqJRobcs6nBacD5QFjQIdoevM9bPpWqHD364mnhVZbM/t68pVqjn86M?=\n\t=?utf-8?q?4TsgKipVHQfXJpAn+kOnIhTCFtDGAqFVDM4I?=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:AS8PR04MB8897.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(376014)(366016)(1800799024); DIR:OUT; SFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?Iq0RivRlY0+hNE4JBzFcqXgrR?=\n\t=?utf-8?q?i9LiY08uw5i7iFNrVToTjlU7cx+0Y3mG3JEkCnnooCzb6jwI6svsy30y?=\n\t=?utf-8?q?TqNlMcORe8h1iCl71tyr9VtPvNgs43gTv7RGg73RjkoOBFYfT5y09/N7?=\n\t=?utf-8?q?Z217bxNIuv108cfvJ0XlFtG+US+09vtwfWoW47Jy4ZtvoOk+0FawmrXa?=\n\t=?utf-8?q?7zqr+N/BZzcHa+Y8Ela9e1yDvqKsyZ48imWvUPQxPdz3SR9beyL+BMT4?=\n\t=?utf-8?q?sbjBZLsMY1uF9S4wJbne1Hv1WZi3G4TLeGUMCEClCEKeBss03+465CzE?=\n\t=?utf-8?q?mvdaMzYolmWZNN90ZQzg1IXhG3H8BvwaWTrTRCjOlJ1cjXcXVgBaG6XY?=\n\t=?utf-8?q?/6VHSOoA+lDPbpEzQfgC0WNzYp4RvJq4r2/6CChbmVP1KnE5XmjMCqAc?=\n\t=?utf-8?q?2RzoLAyhllnB17ycybfWm7HoL/+rAwpmKObg3uhuv4oL2bYeZXjAYOID?=\n\t=?utf-8?q?3eVIGUYxM1UddIzW0Kf42E3OqpOsqSgukMCioT1c14WiYrdgEMZMHGfe?=\n\t=?utf-8?q?dlkhNkNwyH7XXhRFU4h93PJI0yA+9zNsMHLaiRrH8DI9abwwQ3RXUmGW?=\n\t=?utf-8?q?ydckP+h2BlZbMKUOoMvNBx5RbpryA4QzxGZGFqRMGHts6Me5YTHEmOHg?=\n\t=?utf-8?q?k/UFOxG9RxCl2gdAQROhbcdKRNNZd5MRRbkyWc0RB/oYBWQo7QFWb4Py?=\n\t=?utf-8?q?zzmw3omfH0svahDNpfZpCrU4Ppb8u6i+EmQj2qRJ3R7JPVDRsK0eRn+u?=\n\t=?utf-8?q?2UJZ2L1fenTpNATDMN3H0glRMwV2uffDzTv5UpT1Fn1pVHoMcOaRCnNb?=\n\t=?utf-8?q?vb9FZfysNMbxyhrbHCHojeRTDm8qAw8N0FdsVm7KtfYac5SVmXQF+mr4?=\n\t=?utf-8?q?5W05VszTrlEhoaMM2PgUrVgCI3ROwGVJW66SEuyAYBcTJ3w3r8d9wA/T?=\n\t=?utf-8?q?zH/Ts+R9k0tiaOCxXwSQWbDwVntDraXDZWP1eIF+j3rRDu3wi98JwILf?=\n\t=?utf-8?q?KvUG8M7OVmJ1U5bdkg63oJWCXfnvEleYEgns532ytGHmNs6J8c/OZ7o9?=\n\t=?utf-8?q?hJjyc1mZAXWuBbVTAJz71mNxTtUrEAICxwBe4Rp7mb0ER7klKrBaUbiK?=\n\t=?utf-8?q?BAeRidN4wGJEqhaHkNVYjNQGa8ZU1ocd9ZWVcQIohNArwyGZpsjVScwE?=\n\t=?utf-8?q?tfsJ5/TZ2RhI8P16BXC9nWGRLyqvoodHAF8SlJv63HIUX1o5LpQU1o8t?=\n\t=?utf-8?q?WFz7qI82ZqpsYD6fXlMDuitB8mzvYc3tnIWZy9wdarjvYvm30eyV6pQp?=\n\t=?utf-8?q?DkTddskoMX5Y9+2Ja9tqzarJWHod44HwtUgjYySlPoJbsNagbjvv67Bo?=\n\t=?utf-8?q?ulLpnBEndnKwyvu+4RGJw/z+jnhKOH+OwigOBi1eBv+xqF6y7851Mzs/?=\n\t=?utf-8?q?8aKVLhVRElHgSWDIm13xOkeWdHI/KdMfHuYueHnKS6gFce4daAwaFWXG?=\n\t=?utf-8?q?ww4Cfpv7uKPgXIJJjh9uKtoozfJexx4hU1ETejz/yglRVwAQdB1tJAws?=\n\t=?utf-8?q?TSsPyipwR6/OWJ4gcQ2fYuchfwtQ7hApp4zEiuJnELKl+r2ky5xR9ysT?=\n\t=?utf-8?q?bah8gyC7Bx3owj6HHgd94KtoLjAiIUrPHjRoBC1lWBYsRbMYFvdl1GDJ?=\n\t=?utf-8?q?smF161jDOjrTKvJYzK7xE6W6gEehA=3D=3D?=","X-OriginatorOrg":"cherry.de","X-MS-Exchange-CrossTenant-Network-Message-Id":"58916322-a104-437c-64ff-08dd73594440","X-MS-Exchange-CrossTenant-AuthSource":"AS8PR04MB8897.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"04 Apr 2025 09:15:39.3920\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"5e0e1b52-21b5-4e7b-83bb-514ec460677e","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"+x0EIk0f/+QS+XRu3scJrSoAQmWlvN1WElL5cnzYquscI+h0X5H3+wVqO3pYmdZiSFme0LvGHc/DHyeioEsJiXKrlaMUNYhyDbNtadPbAy8=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM9PR04MB8339","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":33981,"web_url":"https://patchwork.libcamera.org/comment/33981/","msgid":"<17ee51fd-ecd9-4244-8d3c-f8a7b068f528@cherry.de>","date":"2025-04-22T09:34:55","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":202,"url":"https://patchwork.libcamera.org/api/people/202/","name":"Quentin Schulz","email":"quentin.schulz@cherry.de"},"content":"Hi all,\n\nOn 4/4/25 11:15 AM, Quentin Schulz wrote:\n> Hi Kieran,\n> \n> On 4/4/25 9:46 AM, Kieran Bingham wrote:\n>> Quoting Jacopo Mondi (2025-04-04 07:56:33)\n>>> Hi Quentin\n>>>\n>>> On Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n>>>> From: Quentin Schulz <quentin.schulz@cherry.de>\n>>>>\n>>>> This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n>>>>\n>>>> Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n>>>> rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n>>>> driver required to dynamically query the resizer limits.\n>>>>\n>>>> Because of that, maxResolution and minResolution are both {0, 0}\n>>>> (default value for Size objects) which means filterSensorResolution()\n>>>> will create an entry for the sensor in sensorSizesMap_ but because the\n>>>> sensor resolution cannot fit inside the min and max resolution of the\n>>>> rkisp1, no size is put into this entry in sensorSizesMap_.\n>>>> On the next call to filterSensorResolution(),\n>>>> sensorSizesMap_.find(sensor) will return the entry but when attempting\n>>>> to call back() on iter->second, it'll trigger an assert because the \n>>>> size\n>>>> array is empty.\n>>>>\n>>>> Linux kernel 6.1 is supported until December 2027, so it seems \n>>>> premature\n>>>> to get rid of those hard-coded resizer limits before this happens.\n>>>>\n>>>> Let's keep the hard-coded resizer limits by default, they can still be\n>>>> queried if necessary.\n>>>\n>>> So I presume you hit\n>>>\n>>>          LOG(RkISP1, Info)\n>>>                  << \"Failed to enumerate supported formats and sizes, \n>>> using defaults\";\n>>>\n>>>>\n>>>> Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not \n>>>> supported by the pipeline\")\n>>>\n>>> Not sure about the fixes tag here, but indeed if this fixes an issue\n>>> on an older but not-yet-dead kernel at the cheap cost of a having a\n>>> few defaults here, then:\n>>>\n>>> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>>\n>> Rather annoyingly, - I think we introduced this because different\n>> hardware has different limits, and so we moved the limits to the kernel\n>> (where we wish they were all along).\n>>\n>> Bringing the hardcoded single limits in this patch may potentially\n>> restrict platforms maximum size capabilities - such as the i.MX8MP for\n>> instance....\n>>\n> \n> The support for the i.MX8MP was added in kernel 6.9 in 9f9cd26aec84 \n> (\"media: rkisp1: Add match data for i.MX8MP ISP\") if I'm not mistaken. \n> That would be after the commit that added the plumbing for the ioctl for \n> detecting the frame sizes, so it would anyway (hopefully, haven't \n> thoroughly checked the code) use the ioctl to set the min and max \n> resolution.\n> \n>> I don't object to making sure we can still support 6.1 - but we would\n>> then need to revisit how to handle the platform specific differences\n>> across all of the platforms supported by the RkISP1....\n> \n> So I would say we are safe from \"other SoCs implementing RkISP\" because \n> they were added after the ioctl was added?\n> \n\nAny feedback? I'm not sure what needs to be done in order for this patch \nto be merged?\n\nCheers,\nQuentin","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 7F938BE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Apr 2025 09:35:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A33C168ACC;\n\tTue, 22 Apr 2025 11:35:01 +0200 (CEST)","from PA4PR04CU001.outbound.protection.outlook.com\n\t(mail-francecentralazlp170130007.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c20a::7])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8F8F9617E3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Apr 2025 11:34:59 +0200 (CEST)","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)\n\tby AM8PR04MB7265.eurprd04.prod.outlook.com (2603:10a6:20b:1d8::19)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35;\n\tTue, 22 Apr 2025 09:34:57 +0000","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a]) by\n\tAS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a%7]) with mapi id 15.20.8655.033;\n\tTue, 22 Apr 2025 09:34:57 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=cherry.de header.i=@cherry.de\n\theader.b=\"gIe5mDrh\"; dkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=cherry.de;"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=kG7Os5Rxnx801ZztAlLQgnhvR/ZvQdQep8tzkYg8+1srHqzej+iLobPLIP0lAFfOYyDi1q6bjJZkfLUWYYcEh3Rj//yqZppK1DAVuI/b0g7ZIpt+oOD/nDxFEsUcZr/KcUefUv5mkOJj0xolluGBhf0ypU08Pi7ijxivJhUI8I0Spa94P0MrpwySm8s5FphzyyZsNY/swiXko0cpapiJ8JVpaG7Um60VPA/k5ExgFQ4+OqzFtfUje5jtCLX7xLzKS1Up13WryMWh+C64ahTY9hnZo06Vz+SH/y5ZgmtXi5+NRVo4VNP+0z+eXiOfbarEN72oVs72BEzm/uAfjDYwRA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=X6IASEENhP6BaKSQGUt1f7NSZVP477PgAP2NqUq0RlM=;\n\tb=H1sIYHewi4Lx0lRlVNgnxOsTOwiVdEWfBTeSJxwMnq+W91Le2I9giDUngQSJKXrq7V5GhdlEAuACSC/29Ga2Xczp9oE1uVK5EmL5PdmzaY33c/pyKauqS7ayqiSGTCTklYkPSq2+Z3iX01BoVuNDbaXkqO+vwgwGIQ9LuBKxvuZX7HluiGU3Vp25z+1LZWhzMq4EgkhQqyOXBx/nfVILboh88rRWOCS5Q4TiPOXAkBcaa3w5uDvvjI14hEQ+x1Ya8/DM0TpRaPAd8MyFYDDaNuyl/sF4BmruudGgZl1jmOq+/uualJzajUGuK0Ex2GoD/2oSlJ4NLtBzzZX4AenQzQ==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=cherry.de; dmarc=pass action=none header.from=cherry.de;\n\tdkim=pass header.d=cherry.de; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=cherry.de;\n\ts=selector1; \n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=X6IASEENhP6BaKSQGUt1f7NSZVP477PgAP2NqUq0RlM=;\n\tb=gIe5mDrht2JTKdYLqUKCCNJLLiAu14CHUyKXCg4BbtnnmqBKfV31c39nu4Z7lafKkeeq+KsnPot0V1P885V0wqkANOFn1bzIwu9fGfwOZb5ULNT0W47NORKKGndcQ5bO+aELJureC2rf4NmhIfVsT09ISgLtCCEdphaLxFNyKAM=","Message-ID":"<17ee51fd-ecd9-4244-8d3c-f8a7b068f528@cherry.de>","Date":"Tue, 22 Apr 2025 11:34:55 +0200","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","From":"Quentin Schulz <quentin.schulz@cherry.de>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tJacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tQuentin Schulz <foss+libcamera@0leil.net>","Cc":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>\n\t<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>\n\t<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>\n\t<c436f396-a03c-48f7-846f-27fcee09cf10@cherry.de>","Content-Language":"en-US","In-Reply-To":"<c436f396-a03c-48f7-846f-27fcee09cf10@cherry.de>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"FR4P281CA0238.DEUP281.PROD.OUTLOOK.COM\n\t(2603:10a6:d10:e9::17) To AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"AS8PR04MB8897:EE_|AM8PR04MB7265:EE_","X-MS-Office365-Filtering-Correlation-Id":"14c1314a-c089-4d10-592a-08dd8180f1c0","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n\tARA:13230040|366016|1800799024|376014|10070799003; ","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?PSY2cbSzb48myUdR31K0xXlrp3Gp?=\n\t=?utf-8?q?GMlgqgaxd99dF7EZmPVmPgLQKCCvapIb989SAu9PZfSYSlpt/YjbMZKo?=\n\t=?utf-8?q?5JqDWmef/SIzhVR8WGwRfivuEoYWGNnSiJEq8wO1EPRwdytm8wj16tau?=\n\t=?utf-8?q?QEzaCNWEQ/IwpxOJqy4W6EZoQZw21j88pAeCdtbvsg2HK5SDT15Hknl9?=\n\t=?utf-8?q?H8LajjFKPcgKOOo/6qEf6hbU1mi/mDfRX9vJfSN70O0UrJo9PncPTiha?=\n\t=?utf-8?q?NBoo8Wr2G2W2gfdVpOg88xNfuP6so3Ex5CmD5rWtMDZ9ovmNax0OOHq8?=\n\t=?utf-8?q?a6xTVyB6T4fKGloOg3A89feFvUQI/wCvHVy+FVVIDPtFGHlZPczmw7dd?=\n\t=?utf-8?q?wbdX8geElL5B0Vdbw/vxMR3QlSD/J3wfbsitdR3i1wHkht8tfBHx4Ui6?=\n\t=?utf-8?q?SV/I1hmJCwS+pew0vyInKFQJAbpuqgI8Vlue6n79hO7FQXk1tVQ/88/f?=\n\t=?utf-8?q?XqNRXu6oNoQD3TAYeMN/xuGrJqExHQ3mWGaMeccaJpuqrejlfHLUODc8?=\n\t=?utf-8?q?Ypqni/4ApR6xRUyMGoL6rlubwe2Phych0CAyWU0NSp6om9Gx/vIjX/jW?=\n\t=?utf-8?q?jOR+Nrs9v+/NFiQtbB5CJbXke9qgXVafJkW2DexCYOFTq597Z1eDpuin?=\n\t=?utf-8?q?0qQdDJ7oNXzlvUFiYKv9MZ6Dd+N456gLUERSvWTAiiIJqCHR0jz1GuN8?=\n\t=?utf-8?q?by3yK7rV/jgx1N/cO74jyAYyyRElq+5TEKuEq7MK51ds0jmtTzaizopY?=\n\t=?utf-8?q?bkCEJK7OWZwKTxIAF60+uQrTL3BddpG6AU65aAgvVlsYEbDepVXuHekE?=\n\t=?utf-8?q?rnw8f2wYRUzIfl6vCkFv61+DSo/ctm3PTESKkPA4SS+SrEv+Yau3i5KC?=\n\t=?utf-8?q?+V6SbE/Kc7MK1Qtksyy71v4eM57NodIEITm8+IE/62fWjw8WXbPDuxZR?=\n\t=?utf-8?q?LJZ1e8eAq4duLKCznEysJh3IheHSBjBAwOytxARI58NGg4RmUoxl/mMz?=\n\t=?utf-8?q?Kp+XhCdCVT9st/eaKO11rfcaKmHfoSTwPI+XfiEirmvUeoDrZig9uSNA?=\n\t=?utf-8?q?mMqTOJcguSAYGdVxE8K7FkW6zWES9bjj49+9Qsp0zQDRoVnowWP2NVv6?=\n\t=?utf-8?q?LE58Ejl77zuTBxHrptItQzdt7akcXjdQ95PMunHrRo289xKQ5LfRh1iX?=\n\t=?utf-8?q?pZVzxnwdTwrbvHrV4GsH9RQxoQdJbY+1+xgklnh5pf/DBLk42b013M8b?=\n\t=?utf-8?q?BnJpp9jdF5iCW9naXpVljB/3aZJA7LPlQnKqhzwAikoNv9rIz5F6mTYa?=\n\t=?utf-8?q?ci49RttuoO90g03AvhHg37NBq/J+8rT8QKER/0ct0dyI274KNVTXfCrn?=\n\t=?utf-8?q?QXJ2GPC15CYSxCq7+kQq3C6MsZcxAKtuu7V1o+xm4DSteJ1d0qWgWEjG?=\n\t=?utf-8?q?E2DczCXtgQeFXvymdASV1rHhkJlWsmnQgzERnWY6rRVDKcwH+E0O2BN5?=\n\t=?utf-8?q?9w4xVnLHpT990sY3j8NgCek=3D?=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:AS8PR04MB8897.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(366016)(1800799024)(376014)(10070799003); DIR:OUT;\n\tSFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?WwWHK9VyfwwkVNdJaelD0ZnKi?=\n\t=?utf-8?q?K3NJHAoRkHWohMTFDQCBJHPKfhtoaCvQdl+/JtuCeR1eaR3LrfL+ejMF?=\n\t=?utf-8?q?Td8Txo8fqO5JhXwkHZH/fMDD/ng9r+SRlDRvsmKgc6ON6Z4TfKwsVpp8?=\n\t=?utf-8?q?6j1QiCBBSask7fd0AIU8LWiyX58TNUxVjW0XlTHTURBV7Tzg4FTch4vt?=\n\t=?utf-8?q?/lgFzb/PBSxEMK74U13von139JqJ4CpYKbFX1JqZqkCjQdEaG/kYhzQr?=\n\t=?utf-8?q?Sdg+WVEetGxgegtpyNGBK+nUHNwme97UKPIsMu7AGG798Psr7tB3QyRd?=\n\t=?utf-8?q?TixqiQzK3O4o8tQ7AoD/225YI+Buw0tkrTZmTqdVBJS7ADnBkMULM8Ip?=\n\t=?utf-8?q?X+ZtewvyA6HzHJFp4hfZh9r0cYl5x7V+V0wmEuDzJMqm3ZldqdYSMWQm?=\n\t=?utf-8?q?7/yqgCDO3H++GdDDrDbNT+Dkzv5QE5qWUcPGLaxEoJ5MVGoxfZx96qml?=\n\t=?utf-8?q?71uhEp9haDrXyTFyu3avjyFjuS851C1rBlRxaU1k1DoUeTdXcJXIQ5Cj?=\n\t=?utf-8?q?cKsFSxgMRRb1EYfkFyKEvppVCdHTLSWB29vBXd3sO9RZmsL5xj159hEP?=\n\t=?utf-8?q?cs3WbF3p6VgcoRJcg38g2LCbuVo1gBsYHA7aR43L+nFwQ8wnQgofX5bS?=\n\t=?utf-8?q?ea9dKvTz8mo86ipO8vtS342hJgoPeibMd8sGoi/hbSc5pImJ7e9sAKjb?=\n\t=?utf-8?q?hmkQOJNwZJs9LRKfLQ7fIM6SY6QF9IpWO2VU+J0+U0rsiTl5qPRIxKfN?=\n\t=?utf-8?q?QA5UYtziDFtRJIiGKX1Z1we7zLV8BoEbuZNHHiwy5zNSeIJR5Twc9pBV?=\n\t=?utf-8?q?SHuLTMpVPWEFvz4ZHCpCPEzzmLjRCbSYE51lBNoFJ3GiWIRBCVNFYU/z?=\n\t=?utf-8?q?p7JkvBTa6r0VAeYWwJxTxugusetl8jYv0s/81GMJr1f+7dnn3fkLK/uC?=\n\t=?utf-8?q?l5uwzjj+zAk2aWz8TZQBpZbmnVFVpuDUv+0vvhzXqQlqEGHXaREFg4wz?=\n\t=?utf-8?q?3fRmWcMuXOTJuU+aAgUjd385j7OR02suhD5AnNNDV/P4X38nwKC7RezW?=\n\t=?utf-8?q?BxZ5Xc7uIi77bsshCLsgAC3lDorF5MN0GqU3oQsQ+BIe0YH8LtKgFX2/?=\n\t=?utf-8?q?HgoVRzz3LpIJabvFetPg6UciWjT7TdSP8w6gBWFdeZHK2LnzjI/EGKGO?=\n\t=?utf-8?q?sMQGxposqcxeDP23jof/CUZR0A42SYlXPvOjeF2Q+An0FcufDnsWIk4b?=\n\t=?utf-8?q?iFtiaomDYbT6fCj2nwje8Q6+fapNclgjOBmCDDdbmpFE381/QQ1i2pLg?=\n\t=?utf-8?q?pflA5Bc23BrqiwbUsCzIWQ6OdmKUUWgqldOzoq57roawvURZnLGamL7U?=\n\t=?utf-8?q?m+uKCMjw1ZNg8G+4m11s24qz0r3MIaGcwr1EqZm2CXE/f6b6SNs62COF?=\n\t=?utf-8?q?+1wb5m19IFCS5JmFwBDCorLxqF1NFWpUhj27uZkTZ1Z4faN/Ke0uNIrL?=\n\t=?utf-8?q?6+hqZKU5YKiG/4YdvWiZQsR8YYOcUWv6N+MdSxx7XZBPZlDp4lSAvxs/?=\n\t=?utf-8?q?14OWGaFznAnq3QU7okl2SzdHhFu358juX29vpbUs91LZFu5uSKud64er?=\n\t=?utf-8?q?th7auUXKlR00jY74hRPnbrESqkvDWzG2QzM7ROP3jb82mAICRUqh9fFj?=\n\t=?utf-8?q?+Eb1Y4QIXRLnK93oyXuxmaYHWFUShXH+Hq7U8B8O6e9o0BKjYPL23u15?=\n\t=?utf-8?q?4uoM2XVb7+iwuyCieJf/R7Mv2k7BjTIFWeuGA=3D=3D?=","X-OriginatorOrg":"cherry.de","X-MS-Exchange-CrossTenant-Network-Message-Id":"14c1314a-c089-4d10-592a-08dd8180f1c0","X-MS-Exchange-CrossTenant-AuthSource":"AS8PR04MB8897.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"22 Apr 2025 09:34:56.9650\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"5e0e1b52-21b5-4e7b-83bb-514ec460677e","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"18mqzGxwsxT8Jc3qJNhWHFaoHHQwhX38k9QQd8vwOfv9j85I0Ofij7WjjHYGFlwcHW5+T9PW+Sjcekzqq4nLKrGblHeohwDTwF0EbdsaQMo=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM8PR04MB7265","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":33984,"web_url":"https://patchwork.libcamera.org/comment/33984/","msgid":"<20250422094809.GF17813@pendragon.ideasonboard.com>","date":"2025-04-22T09:48:09","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Quentin\n\nOn Tue, Apr 22, 2025 at 11:34:55AM +0200, Quentin Schulz wrote:\n> On 4/4/25 11:15 AM, Quentin Schulz wrote:\n> > On 4/4/25 9:46 AM, Kieran Bingham wrote:\n> >> Quoting Jacopo Mondi (2025-04-04 07:56:33)\n> >>> On Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n> >>>> From: Quentin Schulz <quentin.schulz@cherry.de>\n> >>>>\n> >>>> This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n> >>>>\n> >>>> Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n> >>>> rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n> >>>> driver required to dynamically query the resizer limits.\n> >>>>\n> >>>> Because of that, maxResolution and minResolution are both {0, 0}\n> >>>> (default value for Size objects) which means filterSensorResolution()\n> >>>> will create an entry for the sensor in sensorSizesMap_ but because the\n> >>>> sensor resolution cannot fit inside the min and max resolution of the\n> >>>> rkisp1, no size is put into this entry in sensorSizesMap_.\n> >>>> On the next call to filterSensorResolution(),\n> >>>> sensorSizesMap_.find(sensor) will return the entry but when attempting\n> >>>> to call back() on iter->second, it'll trigger an assert because the \n> >>>> size\n> >>>> array is empty.\n> >>>>\n> >>>> Linux kernel 6.1 is supported until December 2027, so it seems \n> >>>> premature\n> >>>> to get rid of those hard-coded resizer limits before this happens.\n> >>>>\n> >>>> Let's keep the hard-coded resizer limits by default, they can still be\n> >>>> queried if necessary.\n> >>>\n> >>> So I presume you hit\n> >>>\n> >>>          LOG(RkISP1, Info)\n> >>>                  << \"Failed to enumerate supported formats and sizes, \n> >>> using defaults\";\n> >>>\n> >>>>\n> >>>> Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not \n> >>>> supported by the pipeline\")\n> >>>\n> >>> Not sure about the fixes tag here, but indeed if this fixes an issue\n> >>> on an older but not-yet-dead kernel at the cheap cost of a having a\n> >>> few defaults here, then:\n> >>>\n> >>> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> >>\n> >> Rather annoyingly, - I think we introduced this because different\n> >> hardware has different limits, and so we moved the limits to the kernel\n> >> (where we wish they were all along).\n> >>\n> >> Bringing the hardcoded single limits in this patch may potentially\n> >> restrict platforms maximum size capabilities - such as the i.MX8MP for\n> >> instance....\n> > \n> > The support for the i.MX8MP was added in kernel 6.9 in 9f9cd26aec84 \n> > (\"media: rkisp1: Add match data for i.MX8MP ISP\") if I'm not mistaken. \n> > That would be after the commit that added the plumbing for the ioctl for \n> > detecting the frame sizes, so it would anyway (hopefully, haven't \n> > thoroughly checked the code) use the ioctl to set the min and max \n> > resolution.\n> > \n> >> I don't object to making sure we can still support 6.1 - but we would\n> >> then need to revisit how to handle the platform specific differences\n> >> across all of the platforms supported by the RkISP1....\n> > \n> > So I would say we are safe from \"other SoCs implementing RkISP\" because \n> > they were added after the ioctl was added?\n> \n> Any feedback? I'm not sure what needs to be done in order for this patch \n> to be merged?\n\nThe Easter holidays took a bit of a toll on patch review. Thanks for\npinging. I'll review and reply to the patch.","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 3AD54BE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Apr 2025 09:48:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5586468ACF;\n\tTue, 22 Apr 2025 11:48:14 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C098D68AC7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Apr 2025 11:48:12 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CA9DC666;\n\tTue, 22 Apr 2025 11:46:04 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"WUrtzKA+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1745315165;\n\tbh=EFgluM1n4tFODzZ5G5C0UAKcOLhVPEQhkSYqBE0Bkds=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=WUrtzKA+hCayjldIDs9693fwQFaB7wgpfvzog3YupsTz2IMte1ElT2E8/GwSMtkpn\n\teyiznZu+6Bcnlv+yXChwFhRnXsnhb4C9H9FzV3sbAZC2WAl5xT9N36VkoevTvSAZnT\n\tJK7QB0Ybz6/UjdulZVfToZaSJh50gx1mcuCSpXww=","Date":"Tue, 22 Apr 2025 12:48:09 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Quentin Schulz <quentin.schulz@cherry.de>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tJacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tQuentin Schulz <foss+libcamera@0leil.net>,\n\tUmang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","Message-ID":"<20250422094809.GF17813@pendragon.ideasonboard.com>","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>\n\t<ayynmmboaa6fuzf2cfbnqgccqcbrtdlxzsersy33zpaeaqiqwb@o3e6fx2ocao5>\n\t<174375277149.1242204.2891468724563361721@ping.linuxembedded.co.uk>\n\t<c436f396-a03c-48f7-846f-27fcee09cf10@cherry.de>\n\t<17ee51fd-ecd9-4244-8d3c-f8a7b068f528@cherry.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<17ee51fd-ecd9-4244-8d3c-f8a7b068f528@cherry.de>","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":33985,"web_url":"https://patchwork.libcamera.org/comment/33985/","msgid":"<20250422100723.GA28027@pendragon.ideasonboard.com>","date":"2025-04-22T10:07:23","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Quentin,\n\nThank you for the patch.\n\nOn Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n> From: Quentin Schulz <quentin.schulz@cherry.de>\n> \n> This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n> \n> Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n> rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n> driver required to dynamically query the resizer limits.\n> \n> Because of that, maxResolution and minResolution are both {0, 0}\n> (default value for Size objects) which means filterSensorResolution()\n> will create an entry for the sensor in sensorSizesMap_ but because the\n> sensor resolution cannot fit inside the min and max resolution of the\n> rkisp1, no size is put into this entry in sensorSizesMap_.\n> On the next call to filterSensorResolution(),\n> sensorSizesMap_.find(sensor) will return the entry but when attempting\n> to call back() on iter->second, it'll trigger an assert because the size\n> array is empty.\n> \n> Linux kernel 6.1 is supported until December 2027, so it seems premature\n> to get rid of those hard-coded resizer limits before this happens.\n\nYou noticed our secret plan to push people towards mainline :-)\n\nJokes aside, we do our best to support older kernels. I won't commit to\nsupporting v6.1 on all platforms until end of 2027 (or worse, until the\nend of the CIP support, which will be in 2033) if it would make our life\nmuch harder, but in this specific case the effort is low.\n\n> Let's keep the hard-coded resizer limits by default, they can still be\n> queried if necessary.\n\nThey will always be queried if the ENUM_FRAMESIZES ioctl is implemented,\nso I would write this as\n\nLet's restore the hard-coded resizer limits as fallbacks, limits are\nstill queried from the driver on recent enough kernels.\n\n> Fixes: 761545407c76 (\"pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline\")\n> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 +++++++++++++------\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 ++-\n>  2 files changed, 17 insertions(+), 7 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> index eee5b09e..d43f31e1 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> @@ -54,8 +54,11 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {\n>  \n>  } /* namespace */\n>  \n> -RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)\n> -\t: name_(name), running_(false), formats_(formats), link_(nullptr)\n> +RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> +\t\t       const Size &minResolution, const Size &maxResolution)\n> +\t: name_(name), running_(false), formats_(formats),\n> +\t  minResolution_(minResolution), maxResolution_(maxResolution),\n> +\t  link_(nullptr)\n>  {\n>  }\n>  \n> @@ -517,10 +520,12 @@ void RkISP1Path::stop()\n>  }\n>  \n>  /*\n> - * \\todo Remove the hardcoded formats once all users will have migrated to a\n> - * recent enough kernel.\n> + * \\todo Remove the hardcoded resolutions and formats once all users will have\n> + * migrated to a recent enough kernel.\n\nWe can now be a bit more precise:\n\n * \\todo Remove the hardcoded resolutions and formats once kernels older than\n * v6.4 will stop receiving LTS support (scheduled for December 2027 for v6.1).\n\nI can make those small changes when applying the patch if you're fine\nwith them.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n>   */\n>  namespace {\n> +constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };\n> +constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };\n>  constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>  \tformats::YUYV,\n>  \tformats::NV16,\n> @@ -542,6 +547,8 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>  \tformats::SRGGB12,\n>  };\n>  \n> +constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };\n> +constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };\n>  constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>  \tformats::YUYV,\n>  \tformats::NV16,\n> @@ -555,12 +562,14 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>  } /* namespace */\n>  \n>  RkISP1MainPath::RkISP1MainPath()\n> -\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS)\n> +\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS,\n> +\t\t     RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)\n>  {\n>  }\n>  \n>  RkISP1SelfPath::RkISP1SelfPath()\n> -\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS)\n> +\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS,\n> +\t\t     RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)\n>  {\n>  }\n>  \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index 2a1ef0ab..430181d3 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -34,7 +34,8 @@ struct V4L2SubdeviceFormat;\n>  class RkISP1Path\n>  {\n>  public:\n> -\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats);\n> +\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> +\t\t   const Size &minResolution, const Size &maxResolution);\n>  \n>  \tbool init(MediaDevice *media);\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 C190AC327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Apr 2025 10:07:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9E09E68ACB;\n\tTue, 22 Apr 2025 12:07:28 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EF643617E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Apr 2025 12:07:26 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 28557666;\n\tTue, 22 Apr 2025 12:05:19 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"J8tAC7q8\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1745316319;\n\tbh=RZt6xkWPr4p64JwOyBYXQtESzzIOo/HZTA8vs8yuieg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=J8tAC7q8aw7uifOEIdn0phuJqSo4php/28+4BJySOsd61G3BCZQH1lQit0jfRDeN+\n\tvrTYDEsXZLnaZyVHT7KdkT/JkiANyyOuZXKTjQRHu3NiRFIApwC3ywdZJkEBLwmuom\n\tSY+3p9c38/oklNm39xZ6G8nNpHYTeGAYdzN6izdg=","Date":"Tue, 22 Apr 2025 13:07:23 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Quentin Schulz <foss+libcamera@0leil.net>","Cc":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tQuentin Schulz <quentin.schulz@cherry.de>","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","Message-ID":"<20250422100723.GA28027@pendragon.ideasonboard.com>","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20250403180902.484863-1-foss+libcamera@0leil.net>","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":33986,"web_url":"https://patchwork.libcamera.org/comment/33986/","msgid":"<ef0c9299-c01a-463e-807a-56e71236322b@cherry.de>","date":"2025-04-22T10:18:38","subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","submitter":{"id":202,"url":"https://patchwork.libcamera.org/api/people/202/","name":"Quentin Schulz","email":"quentin.schulz@cherry.de"},"content":"Hi Laurent,\n\nOn 4/22/25 12:07 PM, Laurent Pinchart wrote:\n> Hi Quentin,\n> \n> Thank you for the patch.\n> \n> On Thu, Apr 03, 2025 at 08:09:00PM +0200, Quentin Schulz wrote:\n>> From: Quentin Schulz <quentin.schulz@cherry.de>\n>>\n>> This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.\n>>\n>> Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 (\"media:\n>> rkisp1: Implement ENUM_FRAMESIZES\") do not have the ioctl in rkisp1\n>> driver required to dynamically query the resizer limits.\n>>\n>> Because of that, maxResolution and minResolution are both {0, 0}\n>> (default value for Size objects) which means filterSensorResolution()\n>> will create an entry for the sensor in sensorSizesMap_ but because the\n>> sensor resolution cannot fit inside the min and max resolution of the\n>> rkisp1, no size is put into this entry in sensorSizesMap_.\n>> On the next call to filterSensorResolution(),\n>> sensorSizesMap_.find(sensor) will return the entry but when attempting\n>> to call back() on iter->second, it'll trigger an assert because the size\n>> array is empty.\n>>\n>> Linux kernel 6.1 is supported until December 2027, so it seems premature\n>> to get rid of those hard-coded resizer limits before this happens.\n> \n> You noticed our secret plan to push people towards mainline :-)\n> \n\nAnd I can only regret airing this plan publicly as it is a good one ;) \nTo be fair, the only product we have that currently needs this patch \nwill have its kernel updated and not require this patch anymore. So, \nsoon not a problem for me anymore :)\n\n> Jokes aside, we do our best to support older kernels. I won't commit to\n> supporting v6.1 on all platforms until end of 2027 (or worse, until the\n> end of the CIP support, which will be in 2033) if it would make our life\n> much harder, but in this specific case the effort is low.\n> \n\nWhy I sent the revert is to let people know that this could be enough to \nget libcamera to work on those old(er) kernels. It's always nice to see \nsome patches available, even if they may not be merged because upstream \nhas a specific policy.\n\nI understand your position as supporting multiple kernel versions simply \ndoesn't scale well and possibly hinder \"innovation\" in the code :)\n\n>> Let's keep the hard-coded resizer limits by default, they can still be\n>> queried if necessary.\n> \n> They will always be queried if the ENUM_FRAMESIZES ioctl is implemented,\n> so I would write this as\n> \n> Let's restore the hard-coded resizer limits as fallbacks, limits are\n> still queried from the driver on recent enough kernels.\n> \n\nI think the point is \"the hard-coded resizer limits [...] can still be \nqueried if necessary\", reading between the lines meaning ENUM_FRAMESIZES \nioctl being implemented will make hard-coded resizer limits unnecessary, \nthus, not queried.\n\nYour suggestion works for me, I could/would add \"actual\" before the \nsecond \"limits\" but eh, doesn't matter much.\n\n[...]\n\n>>   /*\n>> - * \\todo Remove the hardcoded formats once all users will have migrated to a\n>> - * recent enough kernel.\n>> + * \\todo Remove the hardcoded resolutions and formats once all users will have\n>> + * migrated to a recent enough kernel.\n> \n> We can now be a bit more precise:\n> \n>   * \\todo Remove the hardcoded resolutions and formats once kernels older than\n>   * v6.4 will stop receiving LTS support (scheduled for December 2027 for v6.1).\n> \n> I can make those small changes when applying the patch if you're fine\n> with them.\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n\nWorks for me!\n\nThanks!\n\nQuentin","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 146FCBE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Apr 2025 10:18:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5FF6F68ACB;\n\tTue, 22 Apr 2025 12:18:43 +0200 (CEST)","from EUR05-VI1-obe.outbound.protection.outlook.com\n\t(mail-vi1eur05on20603.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:2613::603])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E3C83617E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Apr 2025 12:18:41 +0200 (CEST)","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)\n\tby PA4PR04MB7517.eurprd04.prod.outlook.com (2603:10a6:102:e0::9) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35;\n\tTue, 22 Apr 2025 10:18:39 +0000","from AS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a]) by\n\tAS8PR04MB8897.eurprd04.prod.outlook.com\n\t([fe80::35f6:bc7d:633:369a%7]) with mapi id 15.20.8655.033;\n\tTue, 22 Apr 2025 10:18:39 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=cherry.de header.i=@cherry.de\n\theader.b=\"Lv94tzZf\"; dkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=cherry.de;"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=Tw+dgVo/HgH68hffWaO+syNSWPqKfXz+QUKDKifhNHEOj20HCKzMh9gNyHdsSmYaErS8F6n+/w/WBbEmuI3nku4QQ0QnlyC7SRmaTdJSDB9oqgoJGco9quHUOgcyinJ1/blHdB02dEH5h5SA+y9v++8koNkZyHGsDNFtw82uLG0mFAY3ACe7PzMC5DkKTU/jTALK6t5jE4qEqc0Izk9F+ePyQmgYADsQr6J1Buuy+iZm5Lo/4tNhgoThZ/TkMk50VWGUxsTJFz8XurI0QkuIwxAVCgu4b0JqogHT1pEG1nw1aItiKDdCT5a/xlV6Vp8uE2BtkAGgMnIc2N6lZcvNmw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=zKevuTYyG80HL8usRmGMoU01lz5GvN+lHIwjTY5lIno=;\n\tb=d1kkddePflLNTTj/0MvV6xH9KEiK5jlqbuF1jXk/1I1w99sTTPUd5QvlVrs+hb/8GTx5ZD8Udw2T9p8lEEoMdAzNWoupnkYYwoDZBUi12Z4uzKWm36Ue3xwyv2WHHlf/pqw1rFc2vWfsT6RfFCFmAt9zYbioEZ3srbG3HthZJnEjZxc8TNAkWD6sb8cub/AWzHYW3M9mM4obQLdRGTMHLDqF2AzhcWEcLUSvF35Nrd7CN1OJBmp4d7xxRSrqNKlxhhKMKSRLqhs/KQwVoeNBc20ZCs3rz1X7024sh/xj++g+JFcQ7knUzispy13xLn8jc6Tayz3XMWa5egRJEN3Gjw==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=cherry.de; dmarc=pass action=none header.from=cherry.de;\n\tdkim=pass header.d=cherry.de; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=cherry.de;\n\ts=selector1; \n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=zKevuTYyG80HL8usRmGMoU01lz5GvN+lHIwjTY5lIno=;\n\tb=Lv94tzZfv/kQ1AXzDkNI04wT1Wb0SQK6DfOyQTXGEBWuH7L68XOcCfTrfaUIA+d9EZVCKhCipSiT3FYHKDNq9sJ+t/Ad+KVuOnUlX8Q2IcgsF339jfs6bzT2e4TFofKWI+tIAxG5mOvZpzM2LmzF/9qwfskKBoh/qjxiKGx6lY0=","Message-ID":"<ef0c9299-c01a-463e-807a-56e71236322b@cherry.de>","Date":"Tue, 22 Apr 2025 12:18:38 +0200","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] Revert \"libcamera: rkisp1: Eliminate hard-coded resizer\n\tlimits\"","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tQuentin Schulz <foss+libcamera@0leil.net>","Cc":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20250403180902.484863-1-foss+libcamera@0leil.net>\n\t<20250422100723.GA28027@pendragon.ideasonboard.com>","Content-Language":"en-US","From":"Quentin Schulz <quentin.schulz@cherry.de>","In-Reply-To":"<20250422100723.GA28027@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"FR0P281CA0199.DEUP281.PROD.OUTLOOK.COM\n\t(2603:10a6:d10:ad::7) To AS8PR04MB8897.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:42c::20)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"AS8PR04MB8897:EE_|PA4PR04MB7517:EE_","X-MS-Office365-Filtering-Correlation-Id":"9acca0a5-bfc4-4364-4e46-08dd81870cf7","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n\tARA:13230040|376014|10070799003|1800799024|366016; ","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?bIVVHhjvqB/7WGDbTeMY943rioVn?=\n\t=?utf-8?q?9QXjswVNs9vEL/ELjBZQ0Gda7v4oOtexFu8b9QHxF46f4baziRf7mN7l?=\n\t=?utf-8?q?jlsee7j5SR8jOIyxDlUF6bP0y9kl3VrpEgftKCxz2/E+FazDPCZ+UUIx?=\n\t=?utf-8?q?nS3cE4T/05iy2yemR3R8arHO9ArUBLYpmon5UosEPk4nyekhwUbIruk4?=\n\t=?utf-8?q?YZDlElc0Asf62AqLhuAXV+voj0Y+foROqhJNsPS9gh+QZcj7QcRGWEqQ?=\n\t=?utf-8?q?Zt8u8MDBxkT/Z8AIWK4TbEc9sY9axXFKhGeJNQuMsaLWt3OVS+Es9pmI?=\n\t=?utf-8?q?rIUWRZRlMuL4nYqwFmqhBGdEcRTzO/rbbM1hnn4phd95HieOyzXAwBYR?=\n\t=?utf-8?q?S9BAAEXA+IccTpd14N/9jw1VH5ClYdMYIjSksm4DdlTzy7vPR1Ut9izb?=\n\t=?utf-8?q?A2Ip8sEJYxBHE4mogmF4Oad42t3VvRN3D2oXdYmQ0YcPTz8BtXVl4PQX?=\n\t=?utf-8?q?dYfutuXiMjaugUT5ajVmWiECDEiyFkgrUg70sn3fYzHKWYwbci+Gl5T2?=\n\t=?utf-8?q?pAAPiu24xCu+tzGd/4geC/L2ZPWxEnI3/vnC0D0QaNWu6+TxHfNgo/Rm?=\n\t=?utf-8?q?n4pXmPKtz6JNmKSVtUlza0yFKC12dsY7yUbhrU+6bgtO1/BnGPiiKami?=\n\t=?utf-8?q?rGJtJgs1WOMAAmIRj+YVyYtZZQZQnPXKpoHT5RRUPphjMmMjgfoZSKf4?=\n\t=?utf-8?q?boltd9EnODSiMRxSBtsbLWpyjEMDdU3AzGdsR8fjrk9+bNEBcUjvimkg?=\n\t=?utf-8?q?Kv0Jm3Ns4G2jmDkif7KvlwZ9du21kMZ2g1QLI2Eyw0MxuEO9wvaZ/ZYa?=\n\t=?utf-8?q?aExAYBM3kGEmibC2g7SUvDe5cs4zMJUu0tEu7T0ZhWiMiKUy6k/BCpNU?=\n\t=?utf-8?q?yA+Qs/hgNNvK//UCZ9hNzEQX378lVtoIKgfT5Q+o4f8hy6tFnfHKD8ej?=\n\t=?utf-8?q?5ZKbeWZ0mbF+7TBl4ygw+N+Wu/lMoZpXpIfqLXcI9PNx0Z4dvjDmM0JN?=\n\t=?utf-8?q?h7TLXni/KXZJvG6qjVJHarBSY0+gWrX3SoOfGbmwprvY06cfvOBCht5+?=\n\t=?utf-8?q?sdpPB+WBLolBOCuzzCnq71l5zFqgkndsuJiL7Gvh6tiC5bvcNJuv8TRF?=\n\t=?utf-8?q?mKK6I1l7HajI4IE4v01wuANUd/f/PLWULCXdLP/13tTl+3gj4PH96RyZ?=\n\t=?utf-8?q?sEkAKP3B6mWprLhDZ3+Ey4K9gxIHXzXEXY6NZ9JyLGmK2cbvz2eFauJo?=\n\t=?utf-8?q?M/rRP3mv3heVSCWWGLSl4MO2ubyXBidOQGQyr5fttM3ZNZiEoF74h+7V?=\n\t=?utf-8?q?hib/UDRZtdzvMTQDa7bOwl6Uq7IsZs8YWfMGyuTI3BL09+jswIBXTKgS?=\n\t=?utf-8?q?GyH8IHTsTgy5GMTetqbJCnLUgB7oOi37LkfZKlsRmraL/fUi3NrIPuOB?=\n\t=?utf-8?q?oFNci0+UTtRxR+4nwcRhe8ncD1WLJkjjgZpeIK0h6k2RzkgEpOiwNFPL?=\n\t=?utf-8?q?ObtMiBBMvvMRIj4K5huAlEU=3D?=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:AS8PR04MB8897.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(376014)(10070799003)(1800799024)(366016); DIR:OUT;\n\tSFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?WcH7nwPRIsKlvTG+M/ihbaQTd?=\n\t=?utf-8?q?+lWYJmhtxxnb/KOERcIFUu3832KcwKsf+NqngBssxkA39blIO26dbtZc?=\n\t=?utf-8?q?d6E+lVD0VFl/lluk0FSDO+dchsuy6d0oYJpyW5nEiIzy+D4kYTy6kv6d?=\n\t=?utf-8?q?YoeirFhYpY1b38cY7EPn0csGCDvoi3YDFl+flXuB+WDxwJzvMXGiRKZd?=\n\t=?utf-8?q?X/yNrG07zqvO2v3xdM7mdPNTQjs6IukWplvlsGmPL/YnUaDx53Nxe36W?=\n\t=?utf-8?q?F9bY6CJHWwlXrQ+nW0OGGHhprY5ohpfW5aNbpRm/6GSSJMzRcAem4u+a?=\n\t=?utf-8?q?XEVZ6ccAm/I4Mzlq6EPzOQgv7lmS0hOL7aSxu1oV1WmoEMy6NSDNWXGh?=\n\t=?utf-8?q?apMcNujwyFP5wlWr7h7KaqNb4jEvHW8Jmu9346qqFn3Q7yZE+zL7UF20?=\n\t=?utf-8?q?VOV1axcWB2aABYwk/nj1A7OSJsqzXgf41zvRrQmadq1o9EQLgRXbFyOj?=\n\t=?utf-8?q?hZJq63OnPh81msZbXumDebNlZRSiZmeApyJGa5zQOUiBxhjkTDmFoa2b?=\n\t=?utf-8?q?b8juKmDUVqGZSCOICUAavg4v4U2+GGO+ghm4CEJeuY5YjaWyb1mH3X/o?=\n\t=?utf-8?q?AbPH38D/lRxl4kGa4SRCqukHhvu3Zf0n8VDZlne/i3c+jMop2YvnD+yr?=\n\t=?utf-8?q?v80ke9K+cY4HC9zhFdy51Ts54ThZ9RWvSXZkaC6Ez77WGyjQSvMJPmRw?=\n\t=?utf-8?q?gaWQHUSAV1t2ksge6o3kd/zZnva7GccABCcVfeLT3hV0NDPdzs+09m3/?=\n\t=?utf-8?q?RJuVjSyGbTMME+K2x7B0iaBUJkxDIDP8DOcsNK47DdvGm2i3hSULqFr3?=\n\t=?utf-8?q?eYyQphvMy8DUCCtPfb239qOeQlpvC5+OJykVVZfHJ0OeNjUya7Z7Yelk?=\n\t=?utf-8?q?KpTOU4tFUE/pCjQ4YByJnsaEGuVlT/97u33TIPBlM0KCXMMbVXuILMSW?=\n\t=?utf-8?q?T9LyV8tmf2y2w3ii0v1fei/5nrHHycBOeZNkTaRlor/T84r33H/rTWO7?=\n\t=?utf-8?q?Hc5EeW4vfXB4VQmqhzQ4sB8irqt5EgcAtQrmHjjgdrFEpZm8VujEx7lB?=\n\t=?utf-8?q?MgIzPkmg7FYCXgc3KqApLUOBSI2ANlID2tkRxMLBSW3oZSnssqm2JjVY?=\n\t=?utf-8?q?Kri3f7LuXZM1iJCu8qKDTO5P6Jf3zmrBlksmkSv7dXNmw1Z2EqPVTOws?=\n\t=?utf-8?q?YFdZ78Rf1zbgBiTfDsgzpfzEyITkkyCNaSeVMcaCp02SzhDT7ic4dqox?=\n\t=?utf-8?q?8GGOYfc6mnuZr++on26IiU30LSto/U4bPlCgOgc8UI7BF1434754+ofh?=\n\t=?utf-8?q?GRLRzITREEj4jsvdwbcGkacdyemugIsRbY1k87x3hwikaE3SRol4ZWqe?=\n\t=?utf-8?q?Iqic7es1zEE+NRTqnuvvcIgcT8xKWge3bZ0qryeNFsjFXd7zh2sBI4mm?=\n\t=?utf-8?q?j88e7w5GHYJLOTH2mmL4IWUU4HulpUPcf/ttFWvI/1BJUt/ZtjevlH+8?=\n\t=?utf-8?q?8RLQQriSuA+CCxqsmIpYukBeYAOKUL7d0QD3j/jOHTr86+hf7a2JPmk3?=\n\t=?utf-8?q?5SvPzYPG6DhreLHxhjNAwaFn0rZJig1U+yKcKgCuTOTNToJfPZeAOBO9?=\n\t=?utf-8?q?bP3PFuV+l9eHRSVVPnj99tf0Q3uS7K2a6I1MdVTcgQgeKbqfPNp7XBpV?=\n\t=?utf-8?q?9+VtsCBeRje/xv/MSHcfxvJEh3f8/7rajckw7n06DWLBaTVJT5Q7RFXK?=\n\t=?utf-8?q?503pzti1Cqd5ZFU8MLYLdRxt2n4iFliRkAO3w=3D=3D?=","X-OriginatorOrg":"cherry.de","X-MS-Exchange-CrossTenant-Network-Message-Id":"9acca0a5-bfc4-4364-4e46-08dd81870cf7","X-MS-Exchange-CrossTenant-AuthSource":"AS8PR04MB8897.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"22 Apr 2025 10:18:39.6219\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"5e0e1b52-21b5-4e7b-83bb-514ec460677e","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"gzFZ8C+rVekG2N/fFt0HBdwRPbXC2K8aVDquOdwQ49NfD8Xqy0NxUPIvUd8bfmmce6JBUnL/diFknul7I/b8tLASa+TeHuP0GqfRU9KVGXI=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PA4PR04MB7517","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>"}}]