[{"id":36072,"web_url":"https://patchwork.libcamera.org/comment/36072/","msgid":"<175939780291.1246375.4010936596187151190@ping.linuxembedded.co.uk>","date":"2025-10-02T09:36:42","subject":"Re: [PATCH v1] libcamera: sensor: Use V4L2_SEL_TGT_NATIVE_SIZE for\n\tPixelArraySize","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Stefan Klug (2025-10-02 09:09:22)\n> The PixelArraySize property is incorrectly deduced from\n> V4L2_SEL_TGT_CROP_BOUNDS instead of V4L2_SEL_TGT_NATIVE_SIZE. This is\n> sometimes the same value, but for newer sensor drivers\n> V4L2_SEL_TGT_NATIVE_SIZE is often larger than crop bounds. Most sensor\n> drivers already support V4L2_SEL_TGT_NATIVE_SIZE and for the ones that\n> don't, the fallback to the largest supported size is acceptable.\n\nI don't see where the fallback happens if V4L2_SEL_TGT_NATIVE_SIZE isn't\navailable on the sensor. Is that target always guaranteed now to be\nprovided ? Or do we mandate it now ?\n\n\n\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> ---\n> \n> Hi all,\n> \n> On the imx335 we had an issue that we got the following reports:\n> PixelArrayActiveAreas: [ (36, 50)/2624x1944 ]\n> PixelArraySize: (2624,1944)\n> \n> As you can see, the PixelArraySize doesn't hold the active area which\n> must be the case according to https://www.libcamera.org/api-html/namespacelibcamera_1_1properties.html#acec5675f79b6c456aca72c7532a263a4\n> \n> The native_size reported by the driver is [ (0, 0)/2696x2044 ]\n\nI think we should be reporting this indeed to be correct.\n\n> So I think this is the right thing to do :-)\n> \n\nCould you verify that this doesn't negatively impact the\nScalerCropMaximum handling ?\n\n> Best regards,\n> Stefan\n> \n> \n> ---\n>  src/libcamera/sensor/camera_sensor_legacy.cpp | 2 +-\n>  src/libcamera/sensor/camera_sensor_raw.cpp    | 4 ++--\n>  2 files changed, 3 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/libcamera/sensor/camera_sensor_legacy.cpp b/src/libcamera/sensor/camera_sensor_legacy.cpp\n> index a84f084ceeeb..c0adc393950f 100644\n> --- a/src/libcamera/sensor/camera_sensor_legacy.cpp\n> +++ b/src/libcamera/sensor/camera_sensor_legacy.cpp\n> @@ -399,7 +399,7 @@ int CameraSensorLegacy::validateSensorDriver()\n>          * test platforms have been updated.\n>          */\n>         Rectangle rect;\n> -       int ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_CROP_BOUNDS, &rect);\n> +       int ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_NATIVE_SIZE, &rect);\n>         if (ret) {\n>                 /*\n>                  * Default the pixel array size to the largest size supported\n> diff --git a/src/libcamera/sensor/camera_sensor_raw.cpp b/src/libcamera/sensor/camera_sensor_raw.cpp\n> index 759cccafe4a9..a975028a5e70 100644\n> --- a/src/libcamera/sensor/camera_sensor_raw.cpp\n> +++ b/src/libcamera/sensor/camera_sensor_raw.cpp\n> @@ -420,10 +420,10 @@ std::optional<int> CameraSensorRaw::init()\n>          */\n>  \n>         Rectangle rect;\n> -       ret = subdev_->getSelection(streams_.image.sink, V4L2_SEL_TGT_CROP_BOUNDS,\n> +       ret = subdev_->getSelection(streams_.image.sink, V4L2_SEL_TGT_NATIVE_SIZE,\n\nBoth of these remove the crop bounds. \n\n>                                     &rect);\n>         if (ret) {\n> -               LOG(CameraSensor, Error) << \"No pixel array crop bounds\";\n> +               LOG(CameraSensor, Error) << \"No pixel array native size\";\n>                 return { ret };\n>         }\n>  \n> -- \n> 2.48.1\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 00FA4C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 Oct 2025 09:36:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 023CA6B5F9;\n\tThu,  2 Oct 2025 11:36:47 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 60AAD613AB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 Oct 2025 11:36:46 +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 C66D1E01;\n\tThu,  2 Oct 2025 11:35:16 +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=\"BVxK78hy\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1759397716;\n\tbh=Z4+RWO7WeBM6TqpxZZN4aBbFyO55cPLJWLVo6OW1CSo=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=BVxK78hymD4h7S+C10hVx3XoETnYKtDwolK1M0IvjnWLY/peGwhZ+TE/BlNQuSRhO\n\tUmSNS2pi6p+knMfOeYLNvvep2nF5xnoy7E7dQyBqlr7hHhxr8oEhfOofHuN3xxdyuK\n\t1F3Cv7cIxfz5uGobQrQ+iLFXneKtblyVZKlv7l5A=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251002080952.3077149-1-stefan.klug@ideasonboard.com>","References":"<20251002080952.3077149-1-stefan.klug@ideasonboard.com>","Subject":"Re: [PATCH v1] libcamera: sensor: Use V4L2_SEL_TGT_NATIVE_SIZE for\n\tPixelArraySize","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 02 Oct 2025 10:36:42 +0100","Message-ID":"<175939780291.1246375.4010936596187151190@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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":36074,"web_url":"https://patchwork.libcamera.org/comment/36074/","msgid":"<175939842094.1246375.9460128677040918305@ping.linuxembedded.co.uk>","date":"2025-10-02T09:47:00","subject":"Re: [PATCH v1] libcamera: sensor: Use V4L2_SEL_TGT_NATIVE_SIZE for\n\tPixelArraySize","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Kieran Bingham (2025-10-02 10:36:42)\n> Quoting Stefan Klug (2025-10-02 09:09:22)\n> > The PixelArraySize property is incorrectly deduced from\n> > V4L2_SEL_TGT_CROP_BOUNDS instead of V4L2_SEL_TGT_NATIVE_SIZE. This is\n> > sometimes the same value, but for newer sensor drivers\n> > V4L2_SEL_TGT_NATIVE_SIZE is often larger than crop bounds. Most sensor\n> > drivers already support V4L2_SEL_TGT_NATIVE_SIZE and for the ones that\n> > don't, the fallback to the largest supported size is acceptable.\n> \n> I don't see where the fallback happens if V4L2_SEL_TGT_NATIVE_SIZE isn't\n> available on the sensor. Is that target always guaranteed now to be\n> provided ? Or do we mandate it now ?\n> \n> \n> \n> > \n> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > ---\n> > \n> > Hi all,\n> > \n> > On the imx335 we had an issue that we got the following reports:\n> > PixelArrayActiveAreas: [ (36, 50)/2624x1944 ]\n> > PixelArraySize: (2624,1944)\n> > \n> > As you can see, the PixelArraySize doesn't hold the active area which\n> > must be the case according to https://www.libcamera.org/api-html/namespacelibcamera_1_1properties.html#acec5675f79b6c456aca72c7532a263a4\n> > \n> > The native_size reported by the driver is [ (0, 0)/2696x2044 ]\n> \n> I think we should be reporting this indeed to be correct.\n> \n> > So I think this is the right thing to do :-)\n> > \n> \n> Could you verify that this doesn't negatively impact the\n> ScalerCropMaximum handling ?\n> \n> > Best regards,\n> > Stefan\n> > \n> > \n> > ---\n> >  src/libcamera/sensor/camera_sensor_legacy.cpp | 2 +-\n> >  src/libcamera/sensor/camera_sensor_raw.cpp    | 4 ++--\n> >  2 files changed, 3 insertions(+), 3 deletions(-)\n> > \n> > diff --git a/src/libcamera/sensor/camera_sensor_legacy.cpp b/src/libcamera/sensor/camera_sensor_legacy.cpp\n> > index a84f084ceeeb..c0adc393950f 100644\n> > --- a/src/libcamera/sensor/camera_sensor_legacy.cpp\n> > +++ b/src/libcamera/sensor/camera_sensor_legacy.cpp\n> > @@ -399,7 +399,7 @@ int CameraSensorLegacy::validateSensorDriver()\n> >          * test platforms have been updated.\n> >          */\n> >         Rectangle rect;\n> > -       int ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_CROP_BOUNDS, &rect);\n> > +       int ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_NATIVE_SIZE, &rect);\n> >         if (ret) {\n> >                 /*\n> >                  * Default the pixel array size to the largest size supported\n> > diff --git a/src/libcamera/sensor/camera_sensor_raw.cpp b/src/libcamera/sensor/camera_sensor_raw.cpp\n> > index 759cccafe4a9..a975028a5e70 100644\n> > --- a/src/libcamera/sensor/camera_sensor_raw.cpp\n> > +++ b/src/libcamera/sensor/camera_sensor_raw.cpp\n> > @@ -420,10 +420,10 @@ std::optional<int> CameraSensorRaw::init()\n> >          */\n> >  \n> >         Rectangle rect;\n> > -       ret = subdev_->getSelection(streams_.image.sink, V4L2_SEL_TGT_CROP_BOUNDS,\n> > +       ret = subdev_->getSelection(streams_.image.sink, V4L2_SEL_TGT_NATIVE_SIZE,\n> \n> Both of these remove the crop bounds. \n\nThis was supposed to say:\n\nBoth of these remove the crop bounds. Do we need that one for anything\nelse now ?\n\nShould we report each rectangle in the sensor properties ?\n\n> \n> >                                     &rect);\n> >         if (ret) {\n> > -               LOG(CameraSensor, Error) << \"No pixel array crop bounds\";\n> > +               LOG(CameraSensor, Error) << \"No pixel array native size\";\n> >                 return { ret };\n> >         }\n> >  \n> > -- \n> > 2.48.1\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 ABB85C324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 Oct 2025 09:47:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6D6406B5F9;\n\tThu,  2 Oct 2025 11:47:05 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D4B7C613AB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 Oct 2025 11:47:03 +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 4D18EE01;\n\tThu,  2 Oct 2025 11:45:34 +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=\"lJC6fy6S\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1759398334;\n\tbh=R/6mcmoFS8qeBf/KXYOMMkMcU1ojJoIj3FRtRlOxDDE=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=lJC6fy6SiWK/epN27q40yUCOqeAevk4IjEv6VLkFWkzdX1cYV6YmSBxsgQfrrXKCA\n\tLTvosvS0a3h2A6rZsoYoBOw3QwKtX0YWYn9JZbxNFNM/k4VaLlhpZ4noANt2j/DKj4\n\tE4rXWnZhPdFkWRVh4uw48eFZZzF2ePk1fF2w96V4=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<175939780291.1246375.4010936596187151190@ping.linuxembedded.co.uk>","References":"<20251002080952.3077149-1-stefan.klug@ideasonboard.com>\n\t<175939780291.1246375.4010936596187151190@ping.linuxembedded.co.uk>","Subject":"Re: [PATCH v1] libcamera: sensor: Use V4L2_SEL_TGT_NATIVE_SIZE for\n\tPixelArraySize","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 02 Oct 2025 10:47:00 +0100","Message-ID":"<175939842094.1246375.9460128677040918305@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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":36077,"web_url":"https://patchwork.libcamera.org/comment/36077/","msgid":"<b2idvoag5bmhhblbgizsunkw6roczudo6t3zg4ummxoynqodug@mifq27q6jrpk>","date":"2025-10-02T14:37:32","subject":"Re: [PATCH v1] libcamera: sensor: Use V4L2_SEL_TGT_NATIVE_SIZE for\n\tPixelArraySize","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Stefan\n\nOn Thu, Oct 02, 2025 at 10:09:22AM +0200, Stefan Klug wrote:\n> The PixelArraySize property is incorrectly deduced from\n> V4L2_SEL_TGT_CROP_BOUNDS instead of V4L2_SEL_TGT_NATIVE_SIZE. This is\n\nIs it incorrect for real ?\n\nThe definition of the PixelArraySize property can be summarized as:\n\n\"The readable pixel area, including dummy, optically black and active\npixels\".\n\nNow, be particulary careful about this part:\n\n        The property describes the maximum size of the raw data captured by the\n        camera, which might not correspond to the physical size of the sensor\n        pixel array matrix, as some portions of the physical pixel array matrix\n        are not accessible and cannot be transmitted out.\n\nSo \"full pixel array size\" != \"readable pixel array size\"\nand the \"readable\" part contains visible, non-visible and non-valid\npixels.\n\nThe definition the the TGT_CROP_BOUNDS target in\nDocumentation/userspace-api/media/v4l/v4l2-selection-targets.rst\nreads as:\n\nBounds of the crop rectangle. All valid crop rectangles fit inside\nthe crop bounds rectangle.\n\nwhich to me means that it represent the readable part of the pixel\narray (which might be smaller than the full pixel array reported by\nNATIVE as above suggested by the definition of the PixelArraySize\nproperty).\n\n\n> sometimes the same value, but for newer sensor drivers\n> V4L2_SEL_TGT_NATIVE_SIZE is often larger than crop bounds. Most sensor\n> drivers already support V4L2_SEL_TGT_NATIVE_SIZE and for the ones that\n> don't, the fallback to the largest supported size is acceptable.\n>\n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> ---\n>\n> Hi all,\n>\n> On the imx335 we had an issue that we got the following reports:\n> PixelArrayActiveAreas: [ (36, 50)/2624x1944 ]\n> PixelArraySize: (2624,1944)\n\nI see the mainline version registering\n\n/* IMX335 native and active pixel array size. */\n#define IMX335_NATIVE_WIDTH\t\t2616U\n#define IMX335_NATIVE_HEIGHT\t\t1964U\n#define IMX335_PIXEL_ARRAY_LEFT\t\t12U\n#define IMX335_PIXEL_ARRAY_TOP\t\t12U\n#define IMX335_PIXEL_ARRAY_WIDTH\t2592U\n#define IMX335_PIXEL_ARRAY_HEIGHT\t1944U\n\n\tcase V4L2_SEL_TGT_NATIVE_SIZE:\n\t\tsel->r.top = 0;\n\t\tsel->r.left = 0;\n\t\tsel->r.width = IMX335_NATIVE_WIDTH;\n\t\tsel->r.height = IMX335_NATIVE_HEIGHT;\n\n\t\treturn 0;\n\n\tcase V4L2_SEL_TGT_CROP:\n\tcase V4L2_SEL_TGT_CROP_DEFAULT:\n\tcase V4L2_SEL_TGT_CROP_BOUNDS:\n\t\tsel->r.top = IMX335_PIXEL_ARRAY_TOP;\n\t\tsel->r.left = IMX335_PIXEL_ARRAY_LEFT;\n\t\tsel->r.width = IMX335_PIXEL_ARRAY_WIDTH;\n\t\tsel->r.height = IMX335_PIXEL_ARRAY_HEIGHT;\n\nSo you might be running a different driver version ?\n\nNow, I think the problem lies with the fact we don't offset the\nactiveArea_ Rectangle when we use it to register the\nPixelArrayActiveAreas[0] property. V4L2_SEL_TGT_CROP_DEFAULT is defined as\nan offset from V4L2_SEL_TGT_NATIVE_SIZE, while we want to offset the\nactive area from the readable bounds. Should we translate the active\narea area rectangle by V4L2_SEL_TGT_CROP_BOUNDS[x, y] ?\n\nI'm just surprised we never noticed as this code has been there\nsince forever.\n\n>\n> As you can see, the PixelArraySize doesn't hold the active area which\n> must be the case according to https://www.libcamera.org/api-html/namespacelibcamera_1_1properties.html#acec5675f79b6c456aca72c7532a263a4\n>\n> The native_size reported by the driver is [ (0, 0)/2696x2044 ]\n>\n> So I think this is the right thing to do :-)\n>\n> Best regards,\n> Stefan\n>\n\nAs a note the long awaited series (very close to land) that introduce the RAW\ncamera sensor model in Linux changes this\nhttps://patchwork.linuxtv.org/project/linux-media/patch/20250825095107.1332313-40-sakari.ailus@linux.intel.com/\n\nfor sensor drivers conforming with the RAW camera sensor model\npad/stream 1/0 will represent the pixel array with:\n\nformat on 1/0:\nThe width and the height fields indicates the full size of the pixel\narray, including non-visible pixels\n\nV4L2_SEL_TGT_CROP_DEFAULT on 1/0:\nThe visible pixel area. This rectangle is relative to the format\n\nV4L2_SEL_TGT_CROP on 1/0:\nThe analogue crop\n\nso src/libcamera/sensor/camera_sensor_raw.cpp will have to be updated\naccordingly.\n>\n> ---\n>  src/libcamera/sensor/camera_sensor_legacy.cpp | 2 +-\n>  src/libcamera/sensor/camera_sensor_raw.cpp    | 4 ++--\n>  2 files changed, 3 insertions(+), 3 deletions(-)\n>\n> diff --git a/src/libcamera/sensor/camera_sensor_legacy.cpp b/src/libcamera/sensor/camera_sensor_legacy.cpp\n> index a84f084ceeeb..c0adc393950f 100644\n> --- a/src/libcamera/sensor/camera_sensor_legacy.cpp\n> +++ b/src/libcamera/sensor/camera_sensor_legacy.cpp\n> @@ -399,7 +399,7 @@ int CameraSensorLegacy::validateSensorDriver()\n>  \t * test platforms have been updated.\n>  \t */\n>  \tRectangle rect;\n> -\tint ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_CROP_BOUNDS, &rect);\n> +\tint ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_NATIVE_SIZE, &rect);\n>  \tif (ret) {\n>  \t\t/*\n>  \t\t * Default the pixel array size to the largest size supported\n> diff --git a/src/libcamera/sensor/camera_sensor_raw.cpp b/src/libcamera/sensor/camera_sensor_raw.cpp\n> index 759cccafe4a9..a975028a5e70 100644\n> --- a/src/libcamera/sensor/camera_sensor_raw.cpp\n> +++ b/src/libcamera/sensor/camera_sensor_raw.cpp\n> @@ -420,10 +420,10 @@ std::optional<int> CameraSensorRaw::init()\n>  \t */\n>\n>  \tRectangle rect;\n> -\tret = subdev_->getSelection(streams_.image.sink, V4L2_SEL_TGT_CROP_BOUNDS,\n> +\tret = subdev_->getSelection(streams_.image.sink, V4L2_SEL_TGT_NATIVE_SIZE,\n>  \t\t\t\t    &rect);\n>  \tif (ret) {\n> -\t\tLOG(CameraSensor, Error) << \"No pixel array crop bounds\";\n> +\t\tLOG(CameraSensor, Error) << \"No pixel array native size\";\n>  \t\treturn { ret };\n>  \t}\n>\n> --\n> 2.48.1\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 4E7BDC324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 Oct 2025 14:37:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 496526B5F3;\n\tThu,  2 Oct 2025 16:37:37 +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 C8A116B5A2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 Oct 2025 16:37:35 +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 C3A766F3;\n\tThu,  2 Oct 2025 16:36:05 +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=\"op6VqaQf\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1759415765;\n\tbh=e1BV2qE9vnGAPVx8HSWixBcInnMM4YN4mVJOHXifSnw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=op6VqaQfxBZA/rFlSdyBwdYLTfs/KioFDAaXFEsu2G+7l1QNJee8lB4kya6UxyjB2\n\tbuW/sgil8IU/z5I+4df2VnsvhNbPbkKV5X6B3BHYM42E8FiamEoh+sNFrhaMjTW7hy\n\tZHvcWYnm6LzlOPCllWatZkQFJXdhIw5qPc2LewJQ=","Date":"Thu, 2 Oct 2025 16:37:32 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1] libcamera: sensor: Use V4L2_SEL_TGT_NATIVE_SIZE for\n\tPixelArraySize","Message-ID":"<b2idvoag5bmhhblbgizsunkw6roczudo6t3zg4ummxoynqodug@mifq27q6jrpk>","References":"<20251002080952.3077149-1-stefan.klug@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20251002080952.3077149-1-stefan.klug@ideasonboard.com>","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>"}}]