[{"id":14385,"web_url":"https://patchwork.libcamera.org/comment/14385/","msgid":"<20201229042608.GE67590@pyrite.rasen.tech>","date":"2020-12-29T04:26:08","subject":"Re: [libcamera-devel] [PATCH v3 2/4] libcamera: camera_sensor:\n\tRegister static properties","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Mon, Dec 28, 2020 at 05:52:01PM +0100, Jacopo Mondi wrote:\n> Register static properties, retrieved inspecting the sensor\n> database, in the CameraSensor class.\n> \n> Static properties are overridden by properties retrieved from\n> the kernel interface at run-time if any overlap between the two\n> sets occurs.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  include/libcamera/internal/camera_sensor.h |  1 +\n>  src/libcamera/camera_sensor.cpp            | 21 ++++++++++++++++++++-\n>  2 files changed, 21 insertions(+), 1 deletion(-)\n> \n> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n> index 10877b9d1d9d..2790c55b6178 100644\n> --- a/include/libcamera/internal/camera_sensor.h\n> +++ b/include/libcamera/internal/camera_sensor.h\n> @@ -71,6 +71,7 @@ protected:\n>  private:\n>  \tint generateId();\n>  \tint validateSensorDriver();\n> +\tvoid initStaticProperties();\n>  \tint initProperties();\n>  \tint initControls();\n>  \n> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n> index ea57943647b1..d86fc211c4f6 100644\n> --- a/src/libcamera/camera_sensor.cpp\n> +++ b/src/libcamera/camera_sensor.cpp\n> @@ -20,6 +20,7 @@\n>  \n>  #include \"libcamera/internal/bayer_format.h\"\n>  #include \"libcamera/internal/formats.h\"\n> +#include \"libcamera/internal/sensor_database.h\"\n>  #include \"libcamera/internal/sysfs.h\"\n>  #include \"libcamera/internal/utils.h\"\n>  \n> @@ -295,6 +296,21 @@ int CameraSensor::validateSensorDriver()\n>  \treturn 0;\n>  }\n>  \n> +void CameraSensor::initStaticProperties()\n> +{\n> +\tconst SensorInfo *info = SensorDatabase::get(model_);\n> +\tif (!info) {\n> +\t\tLOG(CameraSensor, Warning)\n> +\t\t\t<< \"No static properties available for '\" << model_ << \"'\";\n> +\t\tLOG(CameraSensor, Warning)\n> +\t\t\t<< \"Please consider updating the sensor database\";\n> +\t\treturn;\n> +\t}\n> +\n> +\t/* Register the properties retrieved from the sensor database. */\n> +\tproperties_.set(properties::UnitCellSize, info->unitCellSize);\n\nAh, I see that we can't iterate over the ControlList anymore. I guess\nit's just a conversion here once so it's not that big of a deal.\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> +}\n> +\n>  int CameraSensor::initProperties()\n>  {\n>  \t/*\n> @@ -332,7 +348,10 @@ int CameraSensor::initProperties()\n>  \tif (ret)\n>  \t\treturn ret;\n>  \n> -\t/* Retrieve and store the camera sensor properties. */\n> +\t/* Initialize the static properties from the sensor database. */\n> +\tinitStaticProperties();\n> +\n> +\t/* Retrieve and register properties from the kernel interface. */\n>  \tconst ControlInfoMap &controls = subdev_->controls();\n>  \tint32_t propertyValue;\n>  \n> -- \n> 2.29.2\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 07A3BC0F1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 29 Dec 2020 04:26:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7D343615D2;\n\tTue, 29 Dec 2020 05:26:16 +0100 (CET)","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 C8BD06031A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 29 Dec 2020 05:26:15 +0100 (CET)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 34E2198;\n\tTue, 29 Dec 2020 05:26:13 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"KESku4HU\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1609215975;\n\tbh=E6V8oOb5h7MOuPjhR8ukc1ineLTk0Ys8CWCBEi/3rtM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=KESku4HUVODETvYkhvN1jYbALtsysbGi1mQWcA98j7wVF5kYbq0bgMDyVrTBqhVy8\n\tbmzTuiWKZ9LhoHSHpW5j+h4FVsKz1PUWO6kPOEG/gnweORO1SW3t7DeX/nftx6/kxc\n\tXmPZ835EcMZTvLM2C92FOrFpavptvA29Sma1s6xQ=","Date":"Tue, 29 Dec 2020 13:26:08 +0900","From":"paul.elder@ideasonboard.com","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20201229042608.GE67590@pyrite.rasen.tech>","References":"<20201228165203.53771-1-jacopo@jmondi.org>\n\t<20201228165203.53771-3-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20201228165203.53771-3-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH v3 2/4] libcamera: camera_sensor:\n\tRegister static properties","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14399,"web_url":"https://patchwork.libcamera.org/comment/14399/","msgid":"<X+tmbLG83fhLRqBx@oden.dyn.berto.se>","date":"2020-12-29T17:25:00","subject":"Re: [libcamera-devel] [PATCH v3 2/4] libcamera: camera_sensor:\n\tRegister static properties","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nThanks for your patch.\n\nOn 2020-12-28 17:52:01 +0100, Jacopo Mondi wrote:\n> Register static properties, retrieved inspecting the sensor\n> database, in the CameraSensor class.\n> \n> Static properties are overridden by properties retrieved from\n> the kernel interface at run-time if any overlap between the two\n> sets occurs.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  include/libcamera/internal/camera_sensor.h |  1 +\n>  src/libcamera/camera_sensor.cpp            | 21 ++++++++++++++++++++-\n>  2 files changed, 21 insertions(+), 1 deletion(-)\n> \n> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n> index 10877b9d1d9d..2790c55b6178 100644\n> --- a/include/libcamera/internal/camera_sensor.h\n> +++ b/include/libcamera/internal/camera_sensor.h\n> @@ -71,6 +71,7 @@ protected:\n>  private:\n>  \tint generateId();\n>  \tint validateSensorDriver();\n> +\tvoid initStaticProperties();\n>  \tint initProperties();\n>  \tint initControls();\n>  \n> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n> index ea57943647b1..d86fc211c4f6 100644\n> --- a/src/libcamera/camera_sensor.cpp\n> +++ b/src/libcamera/camera_sensor.cpp\n> @@ -20,6 +20,7 @@\n>  \n>  #include \"libcamera/internal/bayer_format.h\"\n>  #include \"libcamera/internal/formats.h\"\n> +#include \"libcamera/internal/sensor_database.h\"\n>  #include \"libcamera/internal/sysfs.h\"\n>  #include \"libcamera/internal/utils.h\"\n>  \n> @@ -295,6 +296,21 @@ int CameraSensor::validateSensorDriver()\n>  \treturn 0;\n>  }\n>  \n> +void CameraSensor::initStaticProperties()\n> +{\n> +\tconst SensorInfo *info = SensorDatabase::get(model_);\n> +\tif (!info) {\n> +\t\tLOG(CameraSensor, Warning)\n> +\t\t\t<< \"No static properties available for '\" << model_ << \"'\";\n> +\t\tLOG(CameraSensor, Warning)\n> +\t\t\t<< \"Please consider updating the sensor database\";\n\nI think this could be a single LOG().\n\n> +\t\treturn;\n> +\t}\n> +\n> +\t/* Register the properties retrieved from the sensor database. */\n> +\tproperties_.set(properties::UnitCellSize, info->unitCellSize);\n\nThis implies all future data members of SensorInfo are mandatory. Would \nit make sens to add a 'valid' flag for each data member and only set the \nproperty if it's actually recorded in the sensor database?\n\n> +}\n> +\n>  int CameraSensor::initProperties()\n>  {\n>  \t/*\n> @@ -332,7 +348,10 @@ int CameraSensor::initProperties()\n>  \tif (ret)\n>  \t\treturn ret;\n>  \n> -\t/* Retrieve and store the camera sensor properties. */\n> +\t/* Initialize the static properties from the sensor database. */\n> +\tinitStaticProperties();\n> +\n> +\t/* Retrieve and register properties from the kernel interface. */\n>  \tconst ControlInfoMap &controls = subdev_->controls();\n>  \tint32_t propertyValue;\n>  \n> -- \n> 2.29.2\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 0693EC0F1A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 29 Dec 2020 17:25:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8313E615B2;\n\tTue, 29 Dec 2020 18:25:03 +0100 (CET)","from mail-lf1-x129.google.com (mail-lf1-x129.google.com\n\t[IPv6:2a00:1450:4864:20::129])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 71BE56031F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 29 Dec 2020 18:25:02 +0100 (CET)","by mail-lf1-x129.google.com with SMTP id m25so32247090lfc.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 29 Dec 2020 09:25:02 -0800 (PST)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\tw23sm6992682ljh.9.2020.12.29.09.25.01\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 29 Dec 2020 09:25:01 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"J96Yo/tH\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=PSpbWMRBrZEMBd71lr5DLPFLqkPyBYMQwON78sOwIq0=;\n\tb=J96Yo/tHanm1mZARZlT7rMUFjmAzam74Uab8E51eicaGcSrG4o5JsscZfKv98OLg+4\n\tICSlEnsThxqlYPwPpz96MR+w8ztEkPdTb2zH07q7IATB5LA0AwjBlKYzSs0unQyBrDxB\n\t7C9CGiWq4O4XIVqAbuuIqxxNYBeJtklaren4pQip7NfG9Q2QD6EuNMClTocsxxL43j01\n\tE0fKRa5kKWA8hsHvXi40Ah32gqqeBXIOOHWIGxGLpNy0XuOLKX5ty/fXBy2C0BbXH7/A\n\tf3xzP2xtCNkiNdDaNZcMLdC4JTGXOXX1A7KLcSwHbcsEkNyKgYJfTsBsK0OLMCWJFqhb\n\toIig==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=PSpbWMRBrZEMBd71lr5DLPFLqkPyBYMQwON78sOwIq0=;\n\tb=CnOMaaTjOf1uW9EzDobb6sf4xbLF6Y3hZjCW5dLRMCXdcawmTqLhEI5oggDwPZ9Y5W\n\tfIWC7vNS1Vs+xi8JKMk2q8a0llloPvVpNu6CUW3WWT3sdDEGvWMAeyi9O0FSq7s6mCfI\n\tsatomcIJGwEl+ov7/IGOXRtME2pdmZFT6cBstBR1ik5ivJqhw7/RAP3v+18s+ktCoAmZ\n\tcoIGW4xJYqmt4PGRXbbogwVx9errj/GWavXOC/XjiiOoFXmFAWAXxHvMhpKE76kjGhlE\n\t/HwSxMVKJDEhghnXekHScxyjuU7YjJfPb7v/sm+Bc/hcCj+XLyuLAFtR+XgFlVr4mEVY\n\tuH9w==","X-Gm-Message-State":"AOAM530zfg9pKD9XHWyP7vXpHMvW/a53ht0elR4VuHUq9q3lOczaAM9+\n\trjisZwU8ym+NtQ9B0Y9XagNO9uxi3Yl5Xg==","X-Google-Smtp-Source":"ABdhPJxTUD5bjZ/IPtYyetkKp5+ymCzrqHDdv31fJJQy0/032XC2f80Z77DV955VSS+gCOhxBSH/sQ==","X-Received":"by 2002:a2e:9913:: with SMTP id\n\tv19mr22882944lji.209.1609262701873; \n\tTue, 29 Dec 2020 09:25:01 -0800 (PST)","Date":"Tue, 29 Dec 2020 18:25:00 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<X+tmbLG83fhLRqBx@oden.dyn.berto.se>","References":"<20201228165203.53771-1-jacopo@jmondi.org>\n\t<20201228165203.53771-3-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20201228165203.53771-3-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH v3 2/4] libcamera: camera_sensor:\n\tRegister static properties","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14407,"web_url":"https://patchwork.libcamera.org/comment/14407/","msgid":"<20201230081639.emxiauond3wb6soz@uno.localdomain>","date":"2020-12-30T08:16:39","subject":"Re: [libcamera-devel] [PATCH v3 2/4] libcamera: camera_sensor:\n\tRegister static properties","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n\nOn Tue, Dec 29, 2020 at 06:25:00PM +0100, Niklas Söderlund wrote:\n> Hi Jacopo,\n>\n> Thanks for your patch.\n>\n> On 2020-12-28 17:52:01 +0100, Jacopo Mondi wrote:\n> > Register static properties, retrieved inspecting the sensor\n> > database, in the CameraSensor class.\n> >\n> > Static properties are overridden by properties retrieved from\n> > the kernel interface at run-time if any overlap between the two\n> > sets occurs.\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  include/libcamera/internal/camera_sensor.h |  1 +\n> >  src/libcamera/camera_sensor.cpp            | 21 ++++++++++++++++++++-\n> >  2 files changed, 21 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n> > index 10877b9d1d9d..2790c55b6178 100644\n> > --- a/include/libcamera/internal/camera_sensor.h\n> > +++ b/include/libcamera/internal/camera_sensor.h\n> > @@ -71,6 +71,7 @@ protected:\n> >  private:\n> >  \tint generateId();\n> >  \tint validateSensorDriver();\n> > +\tvoid initStaticProperties();\n> >  \tint initProperties();\n> >  \tint initControls();\n> >\n> > diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n> > index ea57943647b1..d86fc211c4f6 100644\n> > --- a/src/libcamera/camera_sensor.cpp\n> > +++ b/src/libcamera/camera_sensor.cpp\n> > @@ -20,6 +20,7 @@\n> >\n> >  #include \"libcamera/internal/bayer_format.h\"\n> >  #include \"libcamera/internal/formats.h\"\n> > +#include \"libcamera/internal/sensor_database.h\"\n> >  #include \"libcamera/internal/sysfs.h\"\n> >  #include \"libcamera/internal/utils.h\"\n> >\n> > @@ -295,6 +296,21 @@ int CameraSensor::validateSensorDriver()\n> >  \treturn 0;\n> >  }\n> >\n> > +void CameraSensor::initStaticProperties()\n> > +{\n> > +\tconst SensorInfo *info = SensorDatabase::get(model_);\n> > +\tif (!info) {\n> > +\t\tLOG(CameraSensor, Warning)\n> > +\t\t\t<< \"No static properties available for '\" << model_ << \"'\";\n> > +\t\tLOG(CameraSensor, Warning)\n> > +\t\t\t<< \"Please consider updating the sensor database\";\n>\n> I think this could be a single LOG().\n>\n\nI wanted to avoid too long lines.\n\n> > +\t\treturn;\n> > +\t}\n> > +\n> > +\t/* Register the properties retrieved from the sensor database. */\n> > +\tproperties_.set(properties::UnitCellSize, info->unitCellSize);\n>\n> This implies all future data members of SensorInfo are mandatory. Would\n> it make sens to add a 'valid' flag for each data member and only set the\n> property if it's actually recorded in the sensor database?\n>\n\nCorrect, I currently assume all SensorInfo fields are there.\nCurrently I don't think it's a big deal, there's only one field :)\n\nGoing forward we might need to ensure that either all fields are\nthere, or implement a smarter lookup method, but right now I'm not\nsure what direction to take. In the back of my mind the idea to\ngenerate the sensor database from a .yaml input file is still an\noption worth exploring.\n\nThanks\n   j\n\n> > +}\n> > +\n> >  int CameraSensor::initProperties()\n> >  {\n> >  \t/*\n> > @@ -332,7 +348,10 @@ int CameraSensor::initProperties()\n> >  \tif (ret)\n> >  \t\treturn ret;\n> >\n> > -\t/* Retrieve and store the camera sensor properties. */\n> > +\t/* Initialize the static properties from the sensor database. */\n> > +\tinitStaticProperties();\n> > +\n> > +\t/* Retrieve and register properties from the kernel interface. */\n> >  \tconst ControlInfoMap &controls = subdev_->controls();\n> >  \tint32_t propertyValue;\n> >\n> > --\n> > 2.29.2\n> >\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\n>\n> --\n> Regards,\n> Niklas Söderlund","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 1ACC5C0F1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 30 Dec 2020 08:16:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 92AB1615B2;\n\tWed, 30 Dec 2020 09:16:27 +0100 (CET)","from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net\n\t[217.70.183.198])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9793D6031B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 30 Dec 2020 09:16:25 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 05F79C0006;\n\tWed, 30 Dec 2020 08:16:24 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Wed, 30 Dec 2020 09:16:39 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<20201230081639.emxiauond3wb6soz@uno.localdomain>","References":"<20201228165203.53771-1-jacopo@jmondi.org>\n\t<20201228165203.53771-3-jacopo@jmondi.org>\n\t<X+tmbLG83fhLRqBx@oden.dyn.berto.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<X+tmbLG83fhLRqBx@oden.dyn.berto.se>","Subject":"Re: [libcamera-devel] [PATCH v3 2/4] libcamera: camera_sensor:\n\tRegister static properties","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]