[{"id":36369,"web_url":"https://patchwork.libcamera.org/comment/36369/","msgid":"<176103852022.2052014.15571778216295444805@ping.linuxembedded.co.uk>","date":"2025-10-21T09:22:00","subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Barnabás Pőcze (2025-10-21 09:06:50)\n> From: Daniel Scally <dan.scally@ideasonboard.com>\n> \n> The imx708 sensor driver has long been available, especially in raspberry pi\n> kernels; and the raspberry pi ipa modules had the corresponding helper classes\n> since 952ef94ed78d71 in 2023. The camera sensor properties database also has\n> an entry for it, but the camera sensor helper classes are missing from the\n> common libipa component.\n> \n> So add camera sensor helper classes for all four variants of the sensor\n> (wide, noir). The gain calculation matches that in the raspberry pi ipa.\n> \n> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> [Add variants, rewrite commit message.]\n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n>  src/ipa/libipa/camera_sensor_helper.cpp | 25 +++++++++++++++++++++++++\n>  1 file changed, 25 insertions(+)\n> \n> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> index ef3bd0d62..829743a6d 100644\n> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> @@ -642,6 +642,31 @@ public:\n>  };\n>  REGISTER_CAMERA_SENSOR_HELPER(\"imx477\", CameraSensorHelperImx477)\n>  \n> +class CameraSensorHelperImx708 : public CameraSensorHelper\n> +{\n> +public:\n> +       CameraSensorHelperImx708()\n> +       {\n> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };\n> +       }\n> +};\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n\nDo we have to duplicate these? or can this just be:\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708)\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708)\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708)\n\nI think these strings are 'RPi specific' - and the reality here is we\nneed to expose how we identify modules.\n\nIsaac has been working on this recently - to propose a new string\ncontrol.\n\nI suspect the IMX708 could be updated to be able to use something like\nthis as well so we can always report this as an IMX708 - but account for\nthe module differences through the identifier.\n\n--\nKieran\n\n\n> +\n> +class CameraSensorHelperImx708Wide : public CameraSensorHelperImx708\n> +{\n> +};\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708Wide)\n> +\n> +class CameraSensorHelperImx708NoIR : public CameraSensorHelperImx708\n> +{\n> +};\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708NoIR)\n> +\n> +class CameraSensorHelperImx708WideNoIR : public CameraSensorHelperImx708\n> +{\n> +};\n> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708WideNoIR)\n> +\n>  class CameraSensorHelperOv2685 : public CameraSensorHelper\n>  {\n>  public:\n> -- \n> 2.51.1.dirty\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 6993BBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Oct 2025 09:22:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 710CA60763;\n\tTue, 21 Oct 2025 11:22:05 +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 388546075C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 11:22: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 C0E24149B;\n\tTue, 21 Oct 2025 11:20: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=\"J/JpD8ti\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761038419;\n\tbh=C5NpwVqbiuAF/lFVrO94IQH2W6TQSGjaaMFK56oB46g=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=J/JpD8tiYNqaN5n55d51FbkoCN6tRJXuitbIHl1Tq7XhlLBVHBx8Zwlh3Btwf8YQ6\n\trcwGJtdM+ltb/njNpEo4BuiXkX4QCDanLLRd9dMk/Tryq2Fr5zjSi4pvd8pc8IGfha\n\tFn83CVJsB2hEx85XAG7dRdmK2zwB1U8FTJWqCyUg=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251021080651.401753-1-barnabas.pocze@ideasonboard.com>","References":"<20251021080651.401753-1-barnabas.pocze@ideasonboard.com>","Subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Daniel Scally <dan.scally@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 21 Oct 2025 10:22:00 +0100","Message-ID":"<176103852022.2052014.15571778216295444805@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":36370,"web_url":"https://patchwork.libcamera.org/comment/36370/","msgid":"<ed834a53-3a04-4905-a1e1-d755a2c11c33@ideasonboard.com>","date":"2025-10-21T10:05:40","subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 10. 21. 11:22 keltezéssel, Kieran Bingham írta:\n> Quoting Barnabás Pőcze (2025-10-21 09:06:50)\n>> From: Daniel Scally <dan.scally@ideasonboard.com>\n>>\n>> The imx708 sensor driver has long been available, especially in raspberry pi\n>> kernels; and the raspberry pi ipa modules had the corresponding helper classes\n>> since 952ef94ed78d71 in 2023. The camera sensor properties database also has\n>> an entry for it, but the camera sensor helper classes are missing from the\n>> common libipa component.\n>>\n>> So add camera sensor helper classes for all four variants of the sensor\n>> (wide, noir). The gain calculation matches that in the raspberry pi ipa.\n>>\n>> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n>> [Add variants, rewrite commit message.]\n>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>> ---\n>>   src/ipa/libipa/camera_sensor_helper.cpp | 25 +++++++++++++++++++++++++\n>>   1 file changed, 25 insertions(+)\n>>\n>> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n>> index ef3bd0d62..829743a6d 100644\n>> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n>> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n>> @@ -642,6 +642,31 @@ public:\n>>   };\n>>   REGISTER_CAMERA_SENSOR_HELPER(\"imx477\", CameraSensorHelperImx477)\n>>   \n>> +class CameraSensorHelperImx708 : public CameraSensorHelper\n>> +{\n>> +public:\n>> +       CameraSensorHelperImx708()\n>> +       {\n>> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };\n>> +       }\n>> +};\n>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n> \n> Do we have to duplicate these? or can this just be:\n>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708)\n>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708)\n>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708)\n\nYes because the variable name is derived from `CameraSensorHelperImx708`, so\nthey would be the same, leading to redefinition errors.\n\n\n> \n> I think these strings are 'RPi specific' - and the reality here is we\n> need to expose how we identify modules.\n> \n> Isaac has been working on this recently - to propose a new string\n> control.\n> \n> I suspect the IMX708 could be updated to be able to use something like\n> this as well so we can always report this as an IMX708 - but account for\n> the module differences through the identifier.\n\nDo you think it's fine to merge as is (with the rpi specific names) to support the \"de facto\"\ndriver in the rpi kernels, or should we wait for a proper mainline kernel solution?\n\n\nRegards,\nBarnabás Pőcze\n\n> \n> --\n> Kieran\n> \n> \n>> +\n>> +class CameraSensorHelperImx708Wide : public CameraSensorHelperImx708\n>> +{\n>> +};\n>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708Wide)\n>> +\n>> +class CameraSensorHelperImx708NoIR : public CameraSensorHelperImx708\n>> +{\n>> +};\n>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708NoIR)\n>> +\n>> +class CameraSensorHelperImx708WideNoIR : public CameraSensorHelperImx708\n>> +{\n>> +};\n>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708WideNoIR)\n>> +\n>>   class CameraSensorHelperOv2685 : public CameraSensorHelper\n>>   {\n>>   public:\n>> -- \n>> 2.51.1.dirty\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 9765FC3259\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Oct 2025 10:05:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CD54B60756;\n\tTue, 21 Oct 2025 12:05:44 +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 3FD18606E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 12:05:44 +0200 (CEST)","from [192.168.33.29] (185.221.141.231.nat.pool.zt.hu\n\t[185.221.141.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8FA001387;\n\tTue, 21 Oct 2025 12:04:00 +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=\"jMYTZJfP\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761041040;\n\tbh=X+OqFpq71/sHqwONPoB4Fyfr+V/uE4jLcOdFfXmPUCo=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=jMYTZJfP3Lq3CQGVCZI8MYd4x2iKBC63D/lhXZL9H8URMCbKpbpmK8YzwAsETra1b\n\tfN0iO8ysL57Wio5xIO879K7QuCtY+bAL1pMJuUVUPzS4GtCUkT4m1gVBkVdJX+dmxu\n\tSsKk0ggz1/V7mDLxKuDpd9LZdEy+LeStqgBD//2o=","Message-ID":"<ed834a53-3a04-4905-a1e1-d755a2c11c33@ideasonboard.com>","Date":"Tue, 21 Oct 2025 12:05:40 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Daniel Scally <dan.scally@ideasonboard.com>","References":"<20251021080651.401753-1-barnabas.pocze@ideasonboard.com>\n\t<176103852022.2052014.15571778216295444805@ping.linuxembedded.co.uk>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<176103852022.2052014.15571778216295444805@ping.linuxembedded.co.uk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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":36371,"web_url":"https://patchwork.libcamera.org/comment/36371/","msgid":"<CAEmqJPrRPXDZfE5AstW3BG7t6U7KZW=pHktmK=9R31+DujDZXg@mail.gmail.com>","date":"2025-10-21T11:25:06","subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi,\n\nOn Tue, 21 Oct 2025 at 11:05, Barnabás Pőcze\n<barnabas.pocze@ideasonboard.com> wrote:\n>\n> Hi\n>\n> 2025. 10. 21. 11:22 keltezéssel, Kieran Bingham írta:\n> > Quoting Barnabás Pőcze (2025-10-21 09:06:50)\n> >> From: Daniel Scally <dan.scally@ideasonboard.com>\n> >>\n> >> The imx708 sensor driver has long been available, especially in raspberry pi\n> >> kernels; and the raspberry pi ipa modules had the corresponding helper classes\n> >> since 952ef94ed78d71 in 2023. The camera sensor properties database also has\n> >> an entry for it, but the camera sensor helper classes are missing from the\n> >> common libipa component.\n> >>\n> >> So add camera sensor helper classes for all four variants of the sensor\n> >> (wide, noir). The gain calculation matches that in the raspberry pi ipa.\n> >>\n> >> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> >> [Add variants, rewrite commit message.]\n> >> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> >> ---\n> >>   src/ipa/libipa/camera_sensor_helper.cpp | 25 +++++++++++++++++++++++++\n> >>   1 file changed, 25 insertions(+)\n> >>\n> >> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> >> index ef3bd0d62..829743a6d 100644\n> >> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> >> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> >> @@ -642,6 +642,31 @@ public:\n> >>   };\n> >>   REGISTER_CAMERA_SENSOR_HELPER(\"imx477\", CameraSensorHelperImx477)\n> >>\n> >> +class CameraSensorHelperImx708 : public CameraSensorHelper\n> >> +{\n> >> +public:\n> >> +       CameraSensorHelperImx708()\n> >> +       {\n> >> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };\n> >> +       }\n> >> +};\n> >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n> >\n> > Do we have to duplicate these? or can this just be:\n> >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708)\n> >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708)\n> >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708)\n>\n> Yes because the variable name is derived from `CameraSensorHelperImx708`, so\n> they would be the same, leading to redefinition errors.\n>\n>\n> >\n> > I think these strings are 'RPi specific' - and the reality here is we\n> > need to expose how we identify modules.\n> >\n> > Isaac has been working on this recently - to propose a new string\n> > control.\n> >\n> > I suspect the IMX708 could be updated to be able to use something like\n> > this as well so we can always report this as an IMX708 - but account for\n> > the module differences through the identifier.\n>\n> Do you think it's fine to merge as is (with the rpi specific names) to support the \"de facto\"\n> driver in the rpi kernels, or should we wait for a proper mainline kernel solution?\n\nThe changes in this series were initially submitted when we added\nsupport for IMX708.  They were not meraged because (as Kieran\nmentioned) this is an RPi specific discovery/naming convention.  I'm\nhappy to add this if it's useful to others, or move to a more standard\nscheme which sounds like Dan is aiming to do?\n\nRegards,\nNaush\n\n\n>\n>\n> Regards,\n> Barnabás Pőcze\n>\n> >\n> > --\n> > Kieran\n> >\n> >\n> >> +\n> >> +class CameraSensorHelperImx708Wide : public CameraSensorHelperImx708\n> >> +{\n> >> +};\n> >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708Wide)\n> >> +\n> >> +class CameraSensorHelperImx708NoIR : public CameraSensorHelperImx708\n> >> +{\n> >> +};\n> >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708NoIR)\n> >> +\n> >> +class CameraSensorHelperImx708WideNoIR : public CameraSensorHelperImx708\n> >> +{\n> >> +};\n> >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708WideNoIR)\n> >> +\n> >>   class CameraSensorHelperOv2685 : public CameraSensorHelper\n> >>   {\n> >>   public:\n> >> --\n> >> 2.51.1.dirty\n> >>\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 AD73FBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Oct 2025 11:25:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D6DAC6076C;\n\tTue, 21 Oct 2025 13:25:45 +0200 (CEST)","from mail-vs1-xe36.google.com (mail-vs1-xe36.google.com\n\t[IPv6:2607:f8b0:4864:20::e36])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9500A6075B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 13:25:43 +0200 (CEST)","by mail-vs1-xe36.google.com with SMTP id\n\tada2fe7eead31-5d5ed7174dbso216862137.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 04:25:43 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"s1ghlcDR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1761045942; x=1761650742;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=zJMjm2d7nRKGc3a3LC7KyvZlzS0M5UdrAQR4fPmfhpw=;\n\tb=s1ghlcDRNVQ7n+qeoJzza44QPB+aTWiFjAh0DlN5oo9SftRLkhmwKdEp165nmuqmIR\n\t4LqSMgzcptRYdrkc8rbG52ewN0zz5rZidcS1C/N2vUVeAc5oFhIhHHyXTMlozN4SK/ar\n\tbSZuOLWmXloVmeAMmHvuRYViJXpAjz5MC4csKr8Ddgda0UVdXen+YvWbZ1owt3iKpvsS\n\t4nJALx1Vt1rR7VZN5OCvFfZ+FyFQqNuveo1hjGGqVQBc+5wmOiZekfy7AGCpQ6R4SC81\n\tPD5je+Cv5yZanylD89izSTy/ragIBsiX/5tTQ3oHBKMPohM+dPJlfK6iOZTQ2ecJ3TJS\n\tuAjA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1761045942; x=1761650742;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=zJMjm2d7nRKGc3a3LC7KyvZlzS0M5UdrAQR4fPmfhpw=;\n\tb=L7+i+260tJykA8FvWWRkjiyp370CnbGOrMWfIjZ4NzJU+ZjaiTDyuqKva13RdMYCoQ\n\tuZtm9UnwX4dny71Kv1xWR8Yev+Hixo5+nZ0g+KJssGIr6HlZAKBUhz/P+HrQaw4oxeP2\n\t4MmaHVGn7aLsVLZMzUddoGfg+k3BPiTOdPY0D35/U/Sp+6GQ2XaWCWfkpT38lrt09ff0\n\tBWETVieRtnFP+5LCO1P5gq6amXRgPEKEbokY+vijrUQAg44fMyeDYEZEVm3C3Pm7o/LO\n\tE8oI8PJKWfsbl3DwNTkRx68jVKLrHhY1euKknFWzYMxljrUuaWlgrH7ja5H+HxnLgYEa\n\tLLSw==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCUkeLH8UkAzX5nD8CN/84/G27XqA8lwia+fBAh4J5DoBk6xVIlw3RngOaqQqesM2Vhm/27ginNhD0Q7z0tCy1c=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YzPyiqPUqSHCOR6RG8VITroRUFdkzOQfUz9noISpH7H9XEqeeGF\n\twPKuItZnNj8M2XrjGt3V3XTXO/eUQNSiHHsUTljc9xDXasHq9CCa+cKOn6ciGEVGKE23Sf76TAw\n\tv/PrNaZ8qSyjAfmO9qJTHODZi4f2ypzMA9c82VQJEGA==","X-Gm-Gg":"ASbGncsLHlpz/gV6iKZxOChrfsFsQsmnfOQS/EPnGOAnuYdQ3hk+0uYlFBLSOr0oIf7\n\tqiWVxMrqE0t67XwIK0M0SbEPUTShJo6D+3fwF9z68DY5N9YhmPWUW0xrfOgnOEj8PZrvdMTMxBS\n\tvbWO/qYNL2sZERBRRru7Z2U7DAHu7PqioZCOD9OT9IHH7izei0C4uDs4r1Z6gZA5H15FCfVsenl\n\tPNlDGqRUUkZg5tC8h9jl5pwxH6R+PXQ8kXjdtI8Kq5EtodGeHDecNh26G2jJc/tFYHiLvpny8mN\n\tPar/GLBH0lmH6VRn465AQ8JyEAH3tNeeOgiZ","X-Google-Smtp-Source":"AGHT+IEHqKmbQGFc0G8yDMn+WtFGQmP10UR8XMyGDIXti094YJmbivID8FzGFKErsqGtk5gNqvvPlNhrPw68Iug/6xM=","X-Received":"by 2002:a05:6102:418c:b0:5b8:e27b:f41b with SMTP id\n\tada2fe7eead31-5db0e0f98a0mr368095137.8.1761045942271; Tue, 21 Oct 2025\n\t04:25:42 -0700 (PDT)","MIME-Version":"1.0","References":"<20251021080651.401753-1-barnabas.pocze@ideasonboard.com>\n\t<176103852022.2052014.15571778216295444805@ping.linuxembedded.co.uk>\n\t<ed834a53-3a04-4905-a1e1-d755a2c11c33@ideasonboard.com>","In-Reply-To":"<ed834a53-3a04-4905-a1e1-d755a2c11c33@ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Tue, 21 Oct 2025 12:25:06 +0100","X-Gm-Features":"AS18NWC9IavQMiEjA0OAeH4x1FAPdwi9CEnyA77m3ci81VR1ljd40Buh5DrkmE4","Message-ID":"<CAEmqJPrRPXDZfE5AstW3BG7t6U7KZW=pHktmK=9R31+DujDZXg@mail.gmail.com>","Subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, \n\tDaniel Scally <dan.scally@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":36373,"web_url":"https://patchwork.libcamera.org/comment/36373/","msgid":"<176104740805.285330.5853453992817256769@ping.linuxembedded.co.uk>","date":"2025-10-21T11:50:08","subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Naushir Patuck (2025-10-21 12:25:06)\n> Hi,\n> \n> On Tue, 21 Oct 2025 at 11:05, Barnabás Pőcze\n> <barnabas.pocze@ideasonboard.com> wrote:\n> >\n> > Hi\n> >\n> > 2025. 10. 21. 11:22 keltezéssel, Kieran Bingham írta:\n> > > Quoting Barnabás Pőcze (2025-10-21 09:06:50)\n> > >> From: Daniel Scally <dan.scally@ideasonboard.com>\n> > >>\n> > >> The imx708 sensor driver has long been available, especially in raspberry pi\n> > >> kernels; and the raspberry pi ipa modules had the corresponding helper classes\n> > >> since 952ef94ed78d71 in 2023. The camera sensor properties database also has\n> > >> an entry for it, but the camera sensor helper classes are missing from the\n> > >> common libipa component.\n> > >>\n> > >> So add camera sensor helper classes for all four variants of the sensor\n> > >> (wide, noir). The gain calculation matches that in the raspberry pi ipa.\n> > >>\n> > >> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> > >> [Add variants, rewrite commit message.]\n> > >> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > >> ---\n> > >>   src/ipa/libipa/camera_sensor_helper.cpp | 25 +++++++++++++++++++++++++\n> > >>   1 file changed, 25 insertions(+)\n> > >>\n> > >> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> > >> index ef3bd0d62..829743a6d 100644\n> > >> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> > >> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> > >> @@ -642,6 +642,31 @@ public:\n> > >>   };\n> > >>   REGISTER_CAMERA_SENSOR_HELPER(\"imx477\", CameraSensorHelperImx477)\n> > >>\n> > >> +class CameraSensorHelperImx708 : public CameraSensorHelper\n> > >> +{\n> > >> +public:\n> > >> +       CameraSensorHelperImx708()\n> > >> +       {\n> > >> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };\n> > >> +       }\n> > >> +};\n> > >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n\nAt the very least, this part could/should already be merged.\n\n> > >\n> > > Do we have to duplicate these? or can this just be:\n> > >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708)\n> > >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708)\n> > >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708)\n> >\n> > Yes because the variable name is derived from `CameraSensorHelperImx708`, so\n> > they would be the same, leading to redefinition errors.\n> >\n> >\n> > >\n> > > I think these strings are 'RPi specific' - and the reality here is we\n> > > need to expose how we identify modules.\n> > >\n> > > Isaac has been working on this recently - to propose a new string\n> > > control.\n> > >\n> > > I suspect the IMX708 could be updated to be able to use something like\n> > > this as well so we can always report this as an IMX708 - but account for\n> > > the module differences through the identifier.\n> >\n> > Do you think it's fine to merge as is (with the rpi specific names) to support the \"de facto\"\n> > driver in the rpi kernels, or should we wait for a proper mainline kernel solution?\n> \n> The changes in this series were initially submitted when we added\n> support for IMX708.  They were not meraged because (as Kieran\n> mentioned) this is an RPi specific discovery/naming convention.  I'm\n> happy to add this if it's useful to others, or move to a more standard\n> scheme which sounds like Dan is aiming to do?\n\nI think we need to push on how to get an upstream solution, rather than\ncontinue to try to workaround things.\n\n\nWe need module identifiers in so many places - not just imx708 ... so\nlets give this topic a kick.\n\n\nIsaac, could you post your proposed module identifier control to the\nlinux-media mailing list please?\n\n\n--\nKieran\n\n> \n> Regards,\n> Naush\n> \n> \n> >\n> >\n> > Regards,\n> > Barnabás Pőcze\n> >\n> > >\n> > > --\n> > > Kieran\n> > >\n> > >\n> > >> +\n> > >> +class CameraSensorHelperImx708Wide : public CameraSensorHelperImx708\n> > >> +{\n> > >> +};\n> > >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708Wide)\n> > >> +\n> > >> +class CameraSensorHelperImx708NoIR : public CameraSensorHelperImx708\n> > >> +{\n> > >> +};\n> > >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708NoIR)\n> > >> +\n> > >> +class CameraSensorHelperImx708WideNoIR : public CameraSensorHelperImx708\n> > >> +{\n> > >> +};\n> > >> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708WideNoIR)\n> > >> +\n> > >>   class CameraSensorHelperOv2685 : public CameraSensorHelper\n> > >>   {\n> > >>   public:\n> > >> --\n> > >> 2.51.1.dirty\n> > >>\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 EF07FBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Oct 2025 11:50:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C42376076F;\n\tTue, 21 Oct 2025 13:50:13 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 249F36075B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 13:50:12 +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 5A67AE01;\n\tTue, 21 Oct 2025 13:48:28 +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=\"KHpeuQEk\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761047308;\n\tbh=kOhBGdzFbvKPSqTFBFnF00+ZVHD3KGHA9vDyvCR83dk=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=KHpeuQEkKLV77FRvNA1VndSqOx2JmyL9lnW2J1NeWk7jIWxIr3gcs9lkoE7XnaYYp\n\t0vyj+BkRxrb+fiMuwpW7hiyAt9JAJt6Yp22A4XuI+gvvdEY/8AUJU8nmqHfxzcCffv\n\tbWImvX5kWj35Thl4VEwa9jogrhi7fZMJpzLdi4+w=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<CAEmqJPrRPXDZfE5AstW3BG7t6U7KZW=pHktmK=9R31+DujDZXg@mail.gmail.com>","References":"<20251021080651.401753-1-barnabas.pocze@ideasonboard.com>\n\t<176103852022.2052014.15571778216295444805@ping.linuxembedded.co.uk>\n\t<ed834a53-3a04-4905-a1e1-d755a2c11c33@ideasonboard.com>\n\t<CAEmqJPrRPXDZfE5AstW3BG7t6U7KZW=pHktmK=9R31+DujDZXg@mail.gmail.com>","Subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tDaniel Scally <dan.scally@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tNaushir Patuck <naush@raspberrypi.com>, Isaac Scott\n\t<isaac.scott@ideasonboard.com>, ","Date":"Tue, 21 Oct 2025 12:50:08 +0100","Message-ID":"<176104740805.285330.5853453992817256769@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":36374,"web_url":"https://patchwork.libcamera.org/comment/36374/","msgid":"<1e322241-b613-4000-97a3-3788cb5fd26b@ideasonboard.com>","date":"2025-10-21T11:55:54","subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 10. 21. 13:25 keltezéssel, Naushir Patuck írta:\n> Hi,\n> \n> On Tue, 21 Oct 2025 at 11:05, Barnabás Pőcze\n> <barnabas.pocze@ideasonboard.com> wrote:\n>>\n>> Hi\n>>\n>> 2025. 10. 21. 11:22 keltezéssel, Kieran Bingham írta:\n>>> Quoting Barnabás Pőcze (2025-10-21 09:06:50)\n>>>> From: Daniel Scally <dan.scally@ideasonboard.com>\n>>>>\n>>>> The imx708 sensor driver has long been available, especially in raspberry pi\n>>>> kernels; and the raspberry pi ipa modules had the corresponding helper classes\n>>>> since 952ef94ed78d71 in 2023. The camera sensor properties database also has\n>>>> an entry for it, but the camera sensor helper classes are missing from the\n>>>> common libipa component.\n>>>>\n>>>> So add camera sensor helper classes for all four variants of the sensor\n>>>> (wide, noir). The gain calculation matches that in the raspberry pi ipa.\n>>>>\n>>>> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n>>>> [Add variants, rewrite commit message.]\n>>>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>>>> ---\n>>>>    src/ipa/libipa/camera_sensor_helper.cpp | 25 +++++++++++++++++++++++++\n>>>>    1 file changed, 25 insertions(+)\n>>>>\n>>>> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n>>>> index ef3bd0d62..829743a6d 100644\n>>>> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n>>>> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n>>>> @@ -642,6 +642,31 @@ public:\n>>>>    };\n>>>>    REGISTER_CAMERA_SENSOR_HELPER(\"imx477\", CameraSensorHelperImx477)\n>>>>\n>>>> +class CameraSensorHelperImx708 : public CameraSensorHelper\n>>>> +{\n>>>> +public:\n>>>> +       CameraSensorHelperImx708()\n>>>> +       {\n>>>> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };\n>>>> +       }\n>>>> +};\n>>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n>>>\n>>> Do we have to duplicate these? or can this just be:\n>>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708)\n>>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708)\n>>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708)\n>>\n>> Yes because the variable name is derived from `CameraSensorHelperImx708`, so\n>> they would be the same, leading to redefinition errors.\n>>\n>>\n>>>\n>>> I think these strings are 'RPi specific' - and the reality here is we\n>>> need to expose how we identify modules.\n>>>\n>>> Isaac has been working on this recently - to propose a new string\n>>> control.\n>>>\n>>> I suspect the IMX708 could be updated to be able to use something like\n>>> this as well so we can always report this as an IMX708 - but account for\n>>> the module differences through the identifier.\n>>\n>> Do you think it's fine to merge as is (with the rpi specific names) to support the \"de facto\"\n>> driver in the rpi kernels, or should we wait for a proper mainline kernel solution?\n> \n> The changes in this series were initially submitted when we added\n> support for IMX708.  They were not meraged because (as Kieran\n> mentioned) this is an RPi specific discovery/naming convention.  I'm\n> happy to add this if it's useful to others, or move to a more standard\n> scheme which sounds like Dan is aiming to do?\n\nI assume you mean https://patchwork.libcamera.org/patch/18161/ ?\n\nIn any case, I suppose merging the helper for the base model (\"imx708\") for now\nshould not be contentious, right? (@Kieran ?)\n\nSomewhat unrelated, out of curiosity, I see only a single version of the kernel driver\nfrom 2023: https://lore.kernel.org/linux-media/20230124150546.12876-1-naush@raspberrypi.com/\nare there any updates that I haven't found?\n\n\n> \n> Regards,\n> Naush\n> \n> \n>>\n>>\n>> Regards,\n>> Barnabás Pőcze\n>>\n>>>\n>>> --\n>>> Kieran\n>>>\n>>>\n>>>> +\n>>>> +class CameraSensorHelperImx708Wide : public CameraSensorHelperImx708\n>>>> +{\n>>>> +};\n>>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708Wide)\n>>>> +\n>>>> +class CameraSensorHelperImx708NoIR : public CameraSensorHelperImx708\n>>>> +{\n>>>> +};\n>>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708NoIR)\n>>>> +\n>>>> +class CameraSensorHelperImx708WideNoIR : public CameraSensorHelperImx708\n>>>> +{\n>>>> +};\n>>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708WideNoIR)\n>>>> +\n>>>>    class CameraSensorHelperOv2685 : public CameraSensorHelper\n>>>>    {\n>>>>    public:\n>>>> --\n>>>> 2.51.1.dirty\n>>>>\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 2E78AC3259\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Oct 2025 11:56:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 18DBF60779;\n\tTue, 21 Oct 2025 13:56:01 +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 8FB3F6075B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 13:55:59 +0200 (CEST)","from [192.168.33.29] (185.221.141.231.nat.pool.zt.hu\n\t[185.221.141.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C6FBFE01;\n\tTue, 21 Oct 2025 13:54:15 +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=\"FgNJO3OQ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761047656;\n\tbh=39wllzAmoxGXayQflBdEsjipwfzFMmEE88OmoeOp04g=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=FgNJO3OQzzT2d/wFb9HsKBkSILNvW8NX2udGCetD8zli6WVe7gUavqBRrUYp4P6CG\n\taMoh7yTspXBDOL1ZUpsZPmK++2TXeB8AuGeVA0oTXxawllHEQlppMb6cbXXL05LOd0\n\tdLcerH2j/Mis4tSUwP1ebltpaFwZYZiz7MIyJZak=","Message-ID":"<1e322241-b613-4000-97a3-3788cb5fd26b@ideasonboard.com>","Date":"Tue, 21 Oct 2025 13:55:54 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tDaniel Scally <dan.scally@ideasonboard.com>","References":"<20251021080651.401753-1-barnabas.pocze@ideasonboard.com>\n\t<176103852022.2052014.15571778216295444805@ping.linuxembedded.co.uk>\n\t<ed834a53-3a04-4905-a1e1-d755a2c11c33@ideasonboard.com>\n\t<pZEyUvkYUZ8G0r328dj8KhGXGNUBLT9_ySHB5zJ915DOchjZh8TYKnWUThtxVAFzXhsjNWYLDNr5tmRMXNobFw==@protonmail.internalid>\n\t<CAEmqJPrRPXDZfE5AstW3BG7t6U7KZW=pHktmK=9R31+DujDZXg@mail.gmail.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<CAEmqJPrRPXDZfE5AstW3BG7t6U7KZW=pHktmK=9R31+DujDZXg@mail.gmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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":36375,"web_url":"https://patchwork.libcamera.org/comment/36375/","msgid":"<CAEmqJPpyM2E3ocvzm8BxoJR6raWEecX3vy1HL1Hf6E0occxCoA@mail.gmail.com>","date":"2025-10-21T12:06:07","subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Barnabás,\n\nOn Tue, 21 Oct 2025 at 12:55, Barnabás Pőcze\n<barnabas.pocze@ideasonboard.com> wrote:\n>\n> Hi\n>\n> 2025. 10. 21. 13:25 keltezéssel, Naushir Patuck írta:\n> > Hi,\n> >\n> > On Tue, 21 Oct 2025 at 11:05, Barnabás Pőcze\n> > <barnabas.pocze@ideasonboard.com> wrote:\n> >>\n> >> Hi\n> >>\n> >> 2025. 10. 21. 11:22 keltezéssel, Kieran Bingham írta:\n> >>> Quoting Barnabás Pőcze (2025-10-21 09:06:50)\n> >>>> From: Daniel Scally <dan.scally@ideasonboard.com>\n> >>>>\n> >>>> The imx708 sensor driver has long been available, especially in raspberry pi\n> >>>> kernels; and the raspberry pi ipa modules had the corresponding helper classes\n> >>>> since 952ef94ed78d71 in 2023. The camera sensor properties database also has\n> >>>> an entry for it, but the camera sensor helper classes are missing from the\n> >>>> common libipa component.\n> >>>>\n> >>>> So add camera sensor helper classes for all four variants of the sensor\n> >>>> (wide, noir). The gain calculation matches that in the raspberry pi ipa.\n> >>>>\n> >>>> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> >>>> [Add variants, rewrite commit message.]\n> >>>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> >>>> ---\n> >>>>    src/ipa/libipa/camera_sensor_helper.cpp | 25 +++++++++++++++++++++++++\n> >>>>    1 file changed, 25 insertions(+)\n> >>>>\n> >>>> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> >>>> index ef3bd0d62..829743a6d 100644\n> >>>> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> >>>> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> >>>> @@ -642,6 +642,31 @@ public:\n> >>>>    };\n> >>>>    REGISTER_CAMERA_SENSOR_HELPER(\"imx477\", CameraSensorHelperImx477)\n> >>>>\n> >>>> +class CameraSensorHelperImx708 : public CameraSensorHelper\n> >>>> +{\n> >>>> +public:\n> >>>> +       CameraSensorHelperImx708()\n> >>>> +       {\n> >>>> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };\n> >>>> +       }\n> >>>> +};\n> >>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708\", CameraSensorHelperImx708)\n> >>>\n> >>> Do we have to duplicate these? or can this just be:\n> >>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708)\n> >>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708)\n> >>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708)\n> >>\n> >> Yes because the variable name is derived from `CameraSensorHelperImx708`, so\n> >> they would be the same, leading to redefinition errors.\n> >>\n> >>\n> >>>\n> >>> I think these strings are 'RPi specific' - and the reality here is we\n> >>> need to expose how we identify modules.\n> >>>\n> >>> Isaac has been working on this recently - to propose a new string\n> >>> control.\n> >>>\n> >>> I suspect the IMX708 could be updated to be able to use something like\n> >>> this as well so we can always report this as an IMX708 - but account for\n> >>> the module differences through the identifier.\n> >>\n> >> Do you think it's fine to merge as is (with the rpi specific names) to support the \"de facto\"\n> >> driver in the rpi kernels, or should we wait for a proper mainline kernel solution?\n> >\n> > The changes in this series were initially submitted when we added\n> > support for IMX708.  They were not meraged because (as Kieran\n> > mentioned) this is an RPi specific discovery/naming convention.  I'm\n> > happy to add this if it's useful to others, or move to a more standard\n> > scheme which sounds like Dan is aiming to do?\n>\n> I assume you mean https://patchwork.libcamera.org/patch/18161/ ?\n\nYes, that looks to be the one.\n\n>\n> In any case, I suppose merging the helper for the base model (\"imx708\") for now\n> should not be contentious, right? (@Kieran ?)\n>\n> Somewhat unrelated, out of curiosity, I see only a single version of the kernel driver\n> from 2023: https://lore.kernel.org/linux-media/20230124150546.12876-1-naush@raspberrypi.com/\n> are there any updates that I haven't found?\n\nWe made the decision to hold off submitting any updated patches for\nthe IMX708 driver until we had full streams/metadata support\n(essential for the PDAF and HDR metadata).  In hindsight that was the\nwrong call given the time it's taken (taking!) to get that\nfunctionality merged ;-)\n\nAs soon as that work lands, I'll re-submit the driver with full\nfunctionality for upstreaming.\n\nNaush\n\n>\n>\n> >\n> > Regards,\n> > Naush\n> >\n> >\n> >>\n> >>\n> >> Regards,\n> >> Barnabás Pőcze\n> >>\n> >>>\n> >>> --\n> >>> Kieran\n> >>>\n> >>>\n> >>>> +\n> >>>> +class CameraSensorHelperImx708Wide : public CameraSensorHelperImx708\n> >>>> +{\n> >>>> +};\n> >>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide\", CameraSensorHelperImx708Wide)\n> >>>> +\n> >>>> +class CameraSensorHelperImx708NoIR : public CameraSensorHelperImx708\n> >>>> +{\n> >>>> +};\n> >>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_noir\", CameraSensorHelperImx708NoIR)\n> >>>> +\n> >>>> +class CameraSensorHelperImx708WideNoIR : public CameraSensorHelperImx708\n> >>>> +{\n> >>>> +};\n> >>>> +REGISTER_CAMERA_SENSOR_HELPER(\"imx708_wide_noir\", CameraSensorHelperImx708WideNoIR)\n> >>>> +\n> >>>>    class CameraSensorHelperOv2685 : public CameraSensorHelper\n> >>>>    {\n> >>>>    public:\n> >>>> --\n> >>>> 2.51.1.dirty\n> >>>>\n> >>\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 7E5C6BE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Oct 2025 12:06:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9547960773;\n\tTue, 21 Oct 2025 14:06:46 +0200 (CEST)","from mail-vs1-xe2e.google.com (mail-vs1-xe2e.google.com\n\t[IPv6:2607:f8b0:4864:20::e2e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8F9696075B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 14:06:44 +0200 (CEST)","by mail-vs1-xe2e.google.com with SMTP id\n\tada2fe7eead31-5b6fa11df79so345793137.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Oct 2025 05:06:44 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"kq6xl4xi\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1761048403; x=1761653203;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=c7tdIkryOWMe3e3zGA+iIOmip5Kw74eQ3aTU+dAOSpc=;\n\tb=kq6xl4xi2gp3FSGRSXyRKmaAMm2miU33b5vOyhysaiJY3NqgzlkuMBFbS9wGIqU0+1\n\tfvUMMvshfeODNK6tbbRar6mKRf69PLAAltDiePJE3IKYIiSMs/eY0Ya71iV4Y/jVoT07\n\t7YCeTUZ4sysGzM8lpbGilyhCcgAQ4bm61jooEmgij5GV7jmnHR7wsGUYsMqU6Hhh8qf5\n\tfJXnCAQbey0jAbOWoYUOwXoVlmpiOYs4foZmfLnu9GpDWTNX/EPbv0YcQKpW6Wr0mIw9\n\ttLZAbwQXPmfJ5RmOwhiPxz2L9lcEUdwFIestR7r9mf3XEa6bwFiXQbEvmw4ASNacjRpg\n\tS25g==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1761048403; x=1761653203;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=c7tdIkryOWMe3e3zGA+iIOmip5Kw74eQ3aTU+dAOSpc=;\n\tb=ktyVw3wVLPukK2hbG1QUN3c+g2ht4zMMC59xyCpr/0fbgm1O1Kr0ORiqjvIvzioJTr\n\tR32uLjoHK9d+HUBwbxW/Fq0lLIHJFjetnV9xxoZZ+eugGf1LxAr+s/bUgnaCNhKGZ84M\n\tgf3wlcq962OX1tRCityK6TnKMvEwYaqh28qY9T7q7TMcnsN0WLDLUFE7lgaMZDO5xdzR\n\tx/jf0h2Q930PQy1q6ky9B7Ah3t2z7KiVJuO9/5HOdF3fMzXmzsgeqUE7dUBYJyQbDhru\n\tXWLMxW+e2Zwznbktml10eW8XFvrnoXW5TPIqbJQKsNQZ+x3tSvmIUzbekcxL14kS3Tae\n\tyN9g==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCU3mXqabMaPCXMzapv4MohefUG1GCcG0s1wr2VKj/RMOVCPQtAVB7ptv4KY4G3yJoTJ8fKBRgKULH+9vjihnUQ=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YykqtoWaZzMD3ZYGgixri/TAij+8NSBvGGhPYeexkOw14OhlMSu\n\t5glVIncitp51uyJfV2/q6o2UBWL+SC/6sJc5KhZwhHbv+CERbe8lBqgIEszy6+ccvSBZsIBuqpw\n\tZzfz6HLW55Fw7ArXFptlvQXWGQSvPfUrlhpn9tnWdWA==","X-Gm-Gg":"ASbGncsmhkh+U/C3gA0Jqe6kUWD7Y2UB9S3gge5R140hrzoZksCqaW5svB/857Bj2rW\n\t7AU2egHiRI9iYBhcJAuqf6kP5iEiwOHrfsp9dUG6iGqPavI/j1uFruzY7im8qix1uoZAaqyzovz\n\tdujAktkMDBmXYQ2E3duLfg1VWAwSMKVEZOLZ02u9IWQEpvKde8BtOUUE61qMulyuIYwJ1+kaem9\n\tvuYFIvKATy2+S0g34YrW8Fpk6BU3FyoxSy1tYoF/wJ+fGxctV9+awNY0XocMlTUpeJvaVJGmbeS\n\tKVyW7QIcnK9fDSvE+FV1Wd+5ZQ==","X-Google-Smtp-Source":"AGHT+IHno0YeroJgnC9O0SkVZLUvbokazlqRPPsL85Imn4bFs6Syu9ZWv6bQu4qAfoCyosVBSHy3lLbCbSLPQke4LeA=","X-Received":"by 2002:a05:6102:e10:b0:5d6:1ae:1a1d with SMTP id\n\tada2fe7eead31-5d7dd6fd48bmr2433961137.8.1761048403267;\n\tTue, 21 Oct 2025 05:06:43 -0700 (PDT)","MIME-Version":"1.0","References":"<20251021080651.401753-1-barnabas.pocze@ideasonboard.com>\n\t<176103852022.2052014.15571778216295444805@ping.linuxembedded.co.uk>\n\t<ed834a53-3a04-4905-a1e1-d755a2c11c33@ideasonboard.com>\n\t<pZEyUvkYUZ8G0r328dj8KhGXGNUBLT9_ySHB5zJ915DOchjZh8TYKnWUThtxVAFzXhsjNWYLDNr5tmRMXNobFw==@protonmail.internalid>\n\t<CAEmqJPrRPXDZfE5AstW3BG7t6U7KZW=pHktmK=9R31+DujDZXg@mail.gmail.com>\n\t<1e322241-b613-4000-97a3-3788cb5fd26b@ideasonboard.com>","In-Reply-To":"<1e322241-b613-4000-97a3-3788cb5fd26b@ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Tue, 21 Oct 2025 13:06:07 +0100","X-Gm-Features":"AS18NWDhFn-62TuAYgyfmWMTGttZcmhs6e_DR83SqydoNpwraYELukMcjzoM7C4","Message-ID":"<CAEmqJPpyM2E3ocvzm8BxoJR6raWEecX3vy1HL1Hf6E0occxCoA@mail.gmail.com>","Subject":"Re: [RFC PATCH v1 1/2] libipa: camera_sensor_helper: Add imx708","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, \n\tDaniel Scally <dan.scally@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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>"}}]