[{"id":29363,"web_url":"https://patchwork.libcamera.org/comment/29363/","msgid":"<20240429092345.7g6lskwocv6ms7q4@jasper>","date":"2024-04-29T09:23:45","subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Umang,\n\nthanks for reposting the patch.\n\nLooks good to me.\nReviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \n\nCheers,\nStefan\n\n\nOn Fri, Apr 26, 2024 at 06:55:15PM +0530, Umang Jain wrote:\n> From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> Provide the IMX283 camera sensor properties and registration\n> with libipa for the gain code helpers.\n> \n> The test patterns exposed by the IMX283 do not map well to the current\n> set of test pattern controls supplied by libcamera. These are left\n> inentionally unimplemented.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n>  src/ipa/libipa/camera_sensor_helper.cpp           | 11 +++++++++++\n>  src/libcamera/sensor/camera_sensor_properties.cpp |  4 ++++\n>  2 files changed, 15 insertions(+)\n> \n> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> index ce29f423..f70d898f 100644\n> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> @@ -417,6 +417,17 @@ public:\n>  };\n>  REGISTER_CAMERA_SENSOR_HELPER(\"imx258\", CameraSensorHelperImx258)\n>  \n> +class CameraSensorHelperImx283 : public CameraSensorHelper\n> +{\n> +public:\n> +\tCameraSensorHelperImx283()\n> +\t{\n> +\t\tgainType_ = AnalogueGainLinear;\n> +\t\tgainConstants_.linear = { 0, 2048, -1, 2048 };\n> +\t}\n> +};\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx283\", CameraSensorHelperImx283)\n> +\n>  class CameraSensorHelperImx290 : public CameraSensorHelper\n>  {\n>  public:\n> diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp\n> index 6e28b09e..4eabbbda 100644\n> --- a/src/libcamera/sensor/camera_sensor_properties.cpp\n> +++ b/src/libcamera/sensor/camera_sensor_properties.cpp\n> @@ -99,6 +99,10 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen\n>  \t\t\t\t{ controls::draft::TestPatternModePn9, 4 },\n>  \t\t\t},\n>  \t\t} },\n> +\t\t{ \"imx283\", {\n> +\t\t\t.unitCellSize = { 2400, 2400 },\n> +\t\t\t.testPatternModes = {},\n> +\t\t} },\n>  \t\t{ \"imx290\", {\n>  \t\t\t.unitCellSize = { 2900, 2900 },\n>  \t\t\t.testPatternModes = {},\n> -- \n> 2.44.0\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 5BA37C3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 29 Apr 2024 09:23:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1FCDE63418;\n\tMon, 29 Apr 2024 11:23:50 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9DFAE633ED\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Apr 2024 11:23:48 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:68ce:fe8f:55aa:adfe])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 15F404AB;\n\tMon, 29 Apr 2024 11:22:53 +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=\"AwoEHh5a\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1714382573;\n\tbh=WY6+j9Xt0X0uwV/frJv1oSOg2u3rJ9R9FxR3uK2pgIY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=AwoEHh5a5wR/+vy1sHHWqUAVmS2hmJaL/4HO72vFaAQ2DbgNAZckbMrBh9lHfF6dJ\n\tZzv+Xx6CgjRU+suja5Mw75BPo2GLB8zMzsTYXl/uoxNFqEUMgw/wszkqHT8KPWRTHD\n\tSqy0NMb2HVVKwFEM+hE8n0ESARbys4EHaHoMJl+o=","Date":"Mon, 29 Apr 2024 11:23:45 +0200","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","Message-ID":"<20240429092345.7g6lskwocv6ms7q4@jasper>","References":"<20240426132516.11085-1-umang.jain@ideasonboard.com>\n\t<20240426132516.11085-2-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240426132516.11085-2-umang.jain@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>"}},{"id":29389,"web_url":"https://patchwork.libcamera.org/comment/29389/","msgid":"<qgoo4jhn5alqhvda37dbdveq3f2yvskx7tk3fpmnq4vci6cr2h@lohp4nkd4cpu>","date":"2024-05-02T15:24:06","subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Umang\n\nOn Fri, Apr 26, 2024 at 06:55:15PM +0530, Umang Jain wrote:\n> From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> Provide the IMX283 camera sensor properties and registration\n> with libipa for the gain code helpers.\n>\n> The test patterns exposed by the IMX283 do not map well to the current\n> set of test pattern controls supplied by libcamera. These are left\n> inentionally unimplemented.\n\nintentionally\n\n>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n>  src/ipa/libipa/camera_sensor_helper.cpp           | 11 +++++++++++\n>  src/libcamera/sensor/camera_sensor_properties.cpp |  4 ++++\n>  2 files changed, 15 insertions(+)\n>\n> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> index ce29f423..f70d898f 100644\n> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> @@ -417,6 +417,17 @@ public:\n>  };\n>  REGISTER_CAMERA_SENSOR_HELPER(\"imx258\", CameraSensorHelperImx258)\n>\n> +class CameraSensorHelperImx283 : public CameraSensorHelper\n> +{\n> +public:\n> +\tCameraSensorHelperImx283()\n> +\t{\n> +\t\tgainType_ = AnalogueGainLinear;\n> +\t\tgainConstants_.linear = { 0, 2048, -1, 2048 };\n\nI see the gain-code to value in the datasheet expressed in dB\nassociated with a graph that suggest and exponential model.\n\nAre we sure we should here use the linear one ?\n\n> +\t}\n> +};\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx283\", CameraSensorHelperImx283)\n> +\n>  class CameraSensorHelperImx290 : public CameraSensorHelper\n>  {\n>  public:\n> diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp\n> index 6e28b09e..4eabbbda 100644\n> --- a/src/libcamera/sensor/camera_sensor_properties.cpp\n> +++ b/src/libcamera/sensor/camera_sensor_properties.cpp\n> @@ -99,6 +99,10 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen\n>  \t\t\t\t{ controls::draft::TestPatternModePn9, 4 },\n>  \t\t\t},\n>  \t\t} },\n> +\t\t{ \"imx283\", {\n> +\t\t\t.unitCellSize = { 2400, 2400 },\n> +\t\t\t.testPatternModes = {},\n> +\t\t} },\n>  \t\t{ \"imx290\", {\n>  \t\t\t.unitCellSize = { 2900, 2900 },\n>  \t\t\t.testPatternModes = {},\n> --\n> 2.44.0\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 B288EBDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 May 2024 15:24:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A01D863418;\n\tThu,  2 May 2024 17:24:11 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CB947633EB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 May 2024 17:24:09 +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 DD0684D4;\n\tThu,  2 May 2024 17:23:11 +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=\"WCv1Zpfw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1714663392;\n\tbh=7nCEhlSNrJPlAHjpC4shA75vStMEak8rpqI4rwGJZow=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=WCv1Zpfwz8KMzVHvCOMN5NTtb5VF3rapLaMKYrSFd7qcBOIjq4Ys7jzKv/q5iw/5B\n\tQpE6d90gtgtTbhoqzRissZ8svnu+Evf4ebpfcZ2dGMWeKxGYTThxib2NU3KIi5YWUl\n\tpfDzm8ROx3gVsIasa9itObD6Ye+uI5TWnUP6gTSk=","Date":"Thu, 2 May 2024 17:24:06 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, \n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","Message-ID":"<qgoo4jhn5alqhvda37dbdveq3f2yvskx7tk3fpmnq4vci6cr2h@lohp4nkd4cpu>","References":"<20240426132516.11085-1-umang.jain@ideasonboard.com>\n\t<20240426132516.11085-2-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240426132516.11085-2-umang.jain@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>"}},{"id":29392,"web_url":"https://patchwork.libcamera.org/comment/29392/","msgid":"<20240502154139.GC15807@pendragon.ideasonboard.com>","date":"2024-05-02T15:41:39","subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, May 02, 2024 at 05:24:06PM +0200, Jacopo Mondi wrote:\n> On Fri, Apr 26, 2024 at 06:55:15PM +0530, Umang Jain wrote:\n> > From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > Provide the IMX283 camera sensor properties and registration\n> > with libipa for the gain code helpers.\n> >\n> > The test patterns exposed by the IMX283 do not map well to the current\n> > set of test pattern controls supplied by libcamera. These are left\n> > inentionally unimplemented.\n> \n> intentionally\n> \n> >\n> > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> > ---\n> >  src/ipa/libipa/camera_sensor_helper.cpp           | 11 +++++++++++\n> >  src/libcamera/sensor/camera_sensor_properties.cpp |  4 ++++\n> >  2 files changed, 15 insertions(+)\n> >\n> > diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> > index ce29f423..f70d898f 100644\n> > --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> > +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> > @@ -417,6 +417,17 @@ public:\n> >  };\n> >  REGISTER_CAMERA_SENSOR_HELPER(\"imx258\", CameraSensorHelperImx258)\n> >\n> > +class CameraSensorHelperImx283 : public CameraSensorHelper\n> > +{\n> > +public:\n> > +\tCameraSensorHelperImx283()\n> > +\t{\n> > +\t\tgainType_ = AnalogueGainLinear;\n> > +\t\tgainConstants_.linear = { 0, 2048, -1, 2048 };\n> \n> I see the gain-code to value in the datasheet expressed in dB\n> associated with a graph that suggest and exponential model.\n> \n> Are we sure we should here use the linear one ?\n\nThe formula in the datasheet indicates that the gain in dB is equal to\n\n-20 * log((2048 - gain) / 2048)\n\nso the above is correct.\n\n> > +\t}\n> > +};\n> > +REGISTER_CAMERA_SENSOR_HELPER(\"imx283\", CameraSensorHelperImx283)\n> > +\n> >  class CameraSensorHelperImx290 : public CameraSensorHelper\n> >  {\n> >  public:\n> > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp\n> > index 6e28b09e..4eabbbda 100644\n> > --- a/src/libcamera/sensor/camera_sensor_properties.cpp\n> > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp\n> > @@ -99,6 +99,10 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen\n> >  \t\t\t\t{ controls::draft::TestPatternModePn9, 4 },\n> >  \t\t\t},\n> >  \t\t} },\n> > +\t\t{ \"imx283\", {\n> > +\t\t\t.unitCellSize = { 2400, 2400 },\n> > +\t\t\t.testPatternModes = {},\n> > +\t\t} },\n> >  \t\t{ \"imx290\", {\n> >  \t\t\t.unitCellSize = { 2900, 2900 },\n> >  \t\t\t.testPatternModes = {},","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 168C6BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 May 2024 15:41:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3365C633EB;\n\tThu,  2 May 2024 17:41:48 +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 6DE49633EB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 May 2024 17:41:46 +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 65AE63A3;\n\tThu,  2 May 2024 17:40:48 +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=\"LKhz79Ym\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1714664448;\n\tbh=dw/eRdgefZnT5XxHk0BeMy3hwJytOI/5Ga4TS81rWpE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=LKhz79YmpK+XXMh5YCkEDhPZUiirQlF65HF6lSTpDwX5gRU6xqUZPidtVyVxF8Fl4\n\tF8iNp5pMigiX0aWPao8LgT1/Ya2+XR/wOvRDGOWibPQ661yn+off4ofqN2xz/rUsqk\n\tj9RX/tdHaRbISJtbt9w9+9d7Wrt0JQpWwv6NwVrA=","Date":"Thu, 2 May 2024 18:41:39 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","Message-ID":"<20240502154139.GC15807@pendragon.ideasonboard.com>","References":"<20240426132516.11085-1-umang.jain@ideasonboard.com>\n\t<20240426132516.11085-2-umang.jain@ideasonboard.com>\n\t<qgoo4jhn5alqhvda37dbdveq3f2yvskx7tk3fpmnq4vci6cr2h@lohp4nkd4cpu>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<qgoo4jhn5alqhvda37dbdveq3f2yvskx7tk3fpmnq4vci6cr2h@lohp4nkd4cpu>","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":29394,"web_url":"https://patchwork.libcamera.org/comment/29394/","msgid":"<2b5nik4ij3dlcchfkaeuz5ygasv35bvnqnut7hvijwshmsewfn@cbqey2ipfljx>","date":"2024-05-02T16:25:59","subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Laurent\n\nOn Thu, May 02, 2024 at 06:41:39PM GMT, Laurent Pinchart wrote:\n> On Thu, May 02, 2024 at 05:24:06PM +0200, Jacopo Mondi wrote:\n> > On Fri, Apr 26, 2024 at 06:55:15PM +0530, Umang Jain wrote:\n> > > From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > >\n> > > Provide the IMX283 camera sensor properties and registration\n> > > with libipa for the gain code helpers.\n> > >\n> > > The test patterns exposed by the IMX283 do not map well to the current\n> > > set of test pattern controls supplied by libcamera. These are left\n> > > inentionally unimplemented.\n> >\n> > intentionally\n> >\n> > >\n> > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> > > ---\n> > >  src/ipa/libipa/camera_sensor_helper.cpp           | 11 +++++++++++\n> > >  src/libcamera/sensor/camera_sensor_properties.cpp |  4 ++++\n> > >  2 files changed, 15 insertions(+)\n> > >\n> > > diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> > > index ce29f423..f70d898f 100644\n> > > --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> > > +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> > > @@ -417,6 +417,17 @@ public:\n> > >  };\n> > >  REGISTER_CAMERA_SENSOR_HELPER(\"imx258\", CameraSensorHelperImx258)\n> > >\n> > > +class CameraSensorHelperImx283 : public CameraSensorHelper\n> > > +{\n> > > +public:\n> > > +\tCameraSensorHelperImx283()\n> > > +\t{\n> > > +\t\tgainType_ = AnalogueGainLinear;\n> > > +\t\tgainConstants_.linear = { 0, 2048, -1, 2048 };\n> >\n> > I see the gain-code to value in the datasheet expressed in dB\n> > associated with a graph that suggest and exponential model.\n> >\n> > Are we sure we should here use the linear one ?\n>\n> The formula in the datasheet indicates that the gain in dB is equal to\n>\n> -20 * log((2048 - gain) / 2048)\n>\n> so the above is correct.\n>\n\nI see, so the \"-20 * log(gain)\" is just to convert to gain value to\ndb, while the actual code-to-gain formula is\n\n        gain(db) = 20 * log (gain ^ -1)\n        gain = 2048 / ( 2048 - gain)\n\n(Thanks for the hint, I missed the - in front of -20)\n\nwhich corresponds to m0 = 0, c0 = 2048, m1 = -1, c1 = 2048\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n> > > +\t}\n> > > +};\n> > > +REGISTER_CAMERA_SENSOR_HELPER(\"imx283\", CameraSensorHelperImx283)\n> > > +\n> > >  class CameraSensorHelperImx290 : public CameraSensorHelper\n> > >  {\n> > >  public:\n> > > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp\n> > > index 6e28b09e..4eabbbda 100644\n> > > --- a/src/libcamera/sensor/camera_sensor_properties.cpp\n> > > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp\n> > > @@ -99,6 +99,10 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen\n> > >  \t\t\t\t{ controls::draft::TestPatternModePn9, 4 },\n> > >  \t\t\t},\n> > >  \t\t} },\n> > > +\t\t{ \"imx283\", {\n> > > +\t\t\t.unitCellSize = { 2400, 2400 },\n> > > +\t\t\t.testPatternModes = {},\n> > > +\t\t} },\n> > >  \t\t{ \"imx290\", {\n> > >  \t\t\t.unitCellSize = { 2900, 2900 },\n> > >  \t\t\t.testPatternModes = {},\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 2FA45BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 May 2024 16:26:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E8E6F63418;\n\tThu,  2 May 2024 18:26:03 +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 DEE77633EB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 May 2024 18:26:02 +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 18DBD4D4;\n\tThu,  2 May 2024 18:25: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=\"b+BzAffl\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1714667105;\n\tbh=aG733hTf+iwRUBRZ8kuqnOzmwagSSh4cAdwLhJYWdEI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=b+BzAffle9o0UNHzCu3CnRuIs3vcJBGKcaLOrRa3KQO7+lhneZL6R2shgc0MBJGsJ\n\ttN27Ech13FbqkCGfK4v+MQdajsjlak+LMybXyKm2U21UM6h8A7SJSr/Nk24x+SrT+s\n\to/seG0B1AHoyKJMI1ydwgJ4GL0hYPfmdX6OVvEz4=","Date":"Thu, 2 May 2024 18:25:59 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tUmang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, \n\tKieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283\n\tsensor properties","Message-ID":"<2b5nik4ij3dlcchfkaeuz5ygasv35bvnqnut7hvijwshmsewfn@cbqey2ipfljx>","References":"<20240426132516.11085-1-umang.jain@ideasonboard.com>\n\t<20240426132516.11085-2-umang.jain@ideasonboard.com>\n\t<qgoo4jhn5alqhvda37dbdveq3f2yvskx7tk3fpmnq4vci6cr2h@lohp4nkd4cpu>\n\t<20240502154139.GC15807@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240502154139.GC15807@pendragon.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>"}}]