{"id":9213,"url":"https://patchwork.libcamera.org/api/patches/9213/?format=json","web_url":"https://patchwork.libcamera.org/patch/9213/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200805104900.2172763-7-niklas.soderlund@ragnatech.se>","date":"2020-08-05T10:48:57","name":"[libcamera-devel,v8,6/9] libcamera: pipelines: Use sensor ID as camera name","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"4cf7ac9bd36cbd721a431dbcec2fa7aff4180ec8","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/9213/mbox/","series":[{"id":1192,"url":"https://patchwork.libcamera.org/api/series/1192/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1192","date":"2020-08-05T10:48:51","name":"libcamera: Generate unique and stable camera IDs","version":8,"mbox":"https://patchwork.libcamera.org/series/1192/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/9213/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/9213/checks/","tags":{},"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 8941FBD86F\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Aug 2020 10:49:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 663E260492;\n\tWed,  5 Aug 2020 12:49:19 +0200 (CEST)","from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 201AD6059F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Aug 2020 12:49:17 +0200 (CEST)","from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de\n\t[84.172.82.168]) by bin-vsp-out-02.atm.binero.net (Halon) with ESMTPA\n\tid 4e4eaa6c-d709-11ea-a39b-005056917f90;\n\tWed, 05 Aug 2020 12:49:16 +0200 (CEST)"],"X-Halon-ID":"4e4eaa6c-d709-11ea-a39b-005056917f90","Authorized-sender":"niklas@soderlund.pp.se","From":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","To":"libcamera-devel@lists.libcamera.org","Date":"Wed,  5 Aug 2020 12:48:57 +0200","Message-Id":"<20200805104900.2172763-7-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.28.0","In-Reply-To":"<20200805104900.2172763-1-niklas.soderlund@ragnatech.se>","References":"<20200805104900.2172763-1-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH v8 6/9] libcamera: pipelines: Use sensor\n\tID as camera name","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>","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>"},"content":"Use the CameraSensor ID as the camera name in pipelines that uses a\nCameraSensors, this is done in preparation of turning the camera name\ninto an ID. The CameraSensor ID meets the requirements that will be put\non camera ID.\n\nBefore this change example of camera names:\n\n* OF based systems\n    ov5695 7-0036\n    ov2685 7-003c\n\n* ACPI based systems\n    ov13858 8-0010\n    ov5670 10-0036\n\n* VIMC\n    VIMC Sensor B\n\nAfter this change the same cameras are:\n\n* OF based systems\n    /base/i2c@ff160000/camera@36\n    /base/i2c@ff160000/camera@36\n\n* ACPI based systems\n    \\_SB_.PCI0.I2C2.CAM0\n    \\_SB_.PCI0.I2C4.CAM1\n\n* VIMC\n    platform/vimc.0 Sensor B\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n---\n src/libcamera/pipeline/ipu3/ipu3.cpp               | 9 ++++-----\n src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 3 ++-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp           | 2 +-\n src/libcamera/pipeline/simple/simple.cpp           | 2 +-\n src/libcamera/pipeline/vimc/vimc.cpp               | 4 ++--\n test/camera/buffer_import.cpp                      | 2 +-\n test/camera/capture.cpp                            | 2 +-\n test/camera/configuration_default.cpp              | 2 +-\n test/camera/configuration_set.cpp                  | 2 +-\n test/camera/statemachine.cpp                       | 2 +-\n test/controls/control_info_map.cpp                 | 2 +-\n test/controls/control_list.cpp                     | 2 +-\n test/serialization/serialization_test.h            | 2 +-\n 13 files changed, 18 insertions(+), 18 deletions(-)","diff":"diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex c1f9fdf1013c7ec0..cfee178aa1bf57c2 100644\n--- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n@@ -805,16 +805,15 @@ int PipelineHandlerIPU3::registerCameras()\n \t\t\t\t\t&IPU3CameraData::imguOutputBufferReady);\n \n \t\t/* Create and register the Camera instance. */\n-\t\tstd::string cameraName = cio2->sensor()->entity()->name();\n-\t\tstd::shared_ptr<Camera> camera = Camera::create(this,\n-\t\t\t\t\t\t\t\tcameraName,\n-\t\t\t\t\t\t\t\tstreams);\n+\t\tstd::string cameraId = cio2->sensor()->id();\n+\t\tstd::shared_ptr<Camera> camera =\n+\t\t\tCamera::create(this, cameraId, streams);\n \n \t\tregisterCamera(std::move(camera), std::move(data));\n \n \t\tLOG(IPU3, Info)\n \t\t\t<< \"Registered Camera[\" << numCameras << \"] \\\"\"\n-\t\t\t<< cameraName << \"\\\"\"\n+\t\t\t<< cameraId << \"\\\"\"\n \t\t\t<< \" connected to CSI-2 receiver \" << id;\n \n \t\tnumCameras++;\ndiff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\nindex 82a0a4dfd6824fce..c55d7325cd44d6cb 100644\n--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n@@ -972,7 +972,8 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n \tstreams.insert(&data->isp_[Isp::Stats]);\n \n \t/* Create and register the camera. */\n-\tstd::shared_ptr<Camera> camera = Camera::create(this, data->sensor_->model(), streams);\n+\tstd::shared_ptr<Camera> camera =\n+\t\tCamera::create(this, data->sensor_->id(), streams);\n \tregisterCamera(std::move(camera), std::move(data));\n \n \treturn true;\ndiff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex 52a0d862417cc4ec..94561062c2b9d4fc 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -971,7 +971,7 @@ int PipelineHandlerRkISP1::createCamera(MediaEntity *sensor)\n \n \tstd::set<Stream *> streams{ &data->stream_ };\n \tstd::shared_ptr<Camera> camera =\n-\t\tCamera::create(this, sensor->name(), streams);\n+\t\tCamera::create(this, data->sensor_->id(), streams);\n \tregisterCamera(std::move(camera), std::move(data));\n \n \treturn 0;\ndiff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex 0bab5af86f05d63c..eb72e3b8a2996342 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -815,7 +815,7 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)\n \t\t\tcontinue;\n \n \t\tstd::shared_ptr<Camera> camera =\n-\t\t\tCamera::create(this, data->sensor_->entity()->name(),\n+\t\t\tCamera::create(this, data->sensor_->id(),\n \t\t\t\t       data->streams());\n \t\tregisterCamera(std::move(camera), std::move(data));\n \t}\ndiff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp\nindex 4f461b928514022d..cf244f11f2423dea 100644\n--- a/src/libcamera/pipeline/vimc/vimc.cpp\n+++ b/src/libcamera/pipeline/vimc/vimc.cpp\n@@ -432,9 +432,9 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)\n \t\treturn false;\n \n \t/* Create and register the camera. */\n-\tstd::string name{ \"VIMC \" + data->sensor_->model() };\n \tstd::set<Stream *> streams{ &data->stream_ };\n-\tstd::shared_ptr<Camera> camera = Camera::create(this, name, streams);\n+\tstd::shared_ptr<Camera> camera =\n+\t\tCamera::create(this, data->sensor_->id(), streams);\n \tregisterCamera(std::move(camera), std::move(data));\n \n \treturn true;\ndiff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp\nindex ad680a83f9187213..46e03746213912aa 100644\n--- a/test/camera/buffer_import.cpp\n+++ b/test/camera/buffer_import.cpp\n@@ -28,7 +28,7 @@ class BufferImportTest : public CameraTest, public Test\n {\n public:\n \tBufferImportTest()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \ndiff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\nindex f6b2f348bda52752..ea84daeef196e349 100644\n--- a/test/camera/capture.cpp\n+++ b/test/camera/capture.cpp\n@@ -18,7 +18,7 @@ class Capture : public CameraTest, public Test\n {\n public:\n \tCapture()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \ndiff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp\nindex 31c908d2449eafe7..cdd6cb97e5ae0732 100644\n--- a/test/camera/configuration_default.cpp\n+++ b/test/camera/configuration_default.cpp\n@@ -18,7 +18,7 @@ class ConfigurationDefault : public CameraTest, public Test\n {\n public:\n \tConfigurationDefault()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \ndiff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp\nindex b4b5968115e81f59..30f19ba908d6a12e 100644\n--- a/test/camera/configuration_set.cpp\n+++ b/test/camera/configuration_set.cpp\n@@ -18,7 +18,7 @@ class ConfigurationSet : public CameraTest, public Test\n {\n public:\n \tConfigurationSet()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \ndiff --git a/test/camera/statemachine.cpp b/test/camera/statemachine.cpp\nindex 325b4674bcc958d8..0bda6fe4b0b232fc 100644\n--- a/test/camera/statemachine.cpp\n+++ b/test/camera/statemachine.cpp\n@@ -18,7 +18,7 @@ class Statemachine : public CameraTest, public Test\n {\n public:\n \tStatemachine()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \ndiff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp\nindex e4305f132db7952f..db95945a15809107 100644\n--- a/test/controls/control_info_map.cpp\n+++ b/test/controls/control_info_map.cpp\n@@ -24,7 +24,7 @@ class ControlInfoMapTest : public CameraTest, public Test\n {\n public:\n \tControlInfoMapTest()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \ndiff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp\nindex 5c8485b5dcc31499..b5a49dc1700021f8 100644\n--- a/test/controls/control_list.cpp\n+++ b/test/controls/control_list.cpp\n@@ -24,7 +24,7 @@ class ControlListTest : public CameraTest, public Test\n {\n public:\n \tControlListTest()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \ndiff --git a/test/serialization/serialization_test.h b/test/serialization/serialization_test.h\nindex fe77221ef5d07478..f51ae546d890ff27 100644\n--- a/test/serialization/serialization_test.h\n+++ b/test/serialization/serialization_test.h\n@@ -20,7 +20,7 @@ class SerializationTest : public CameraTest, public Test\n {\n public:\n \tSerializationTest()\n-\t\t: CameraTest(\"VIMC Sensor B\")\n+\t\t: CameraTest(\"platform/vimc.0 Sensor B\")\n \t{\n \t}\n \n","prefixes":["libcamera-devel","v8","6/9"]}