[libcamera-devel] [PATCH v7 6/9] libcamera: pipelines: Use sensor ID as camera name

Niklas Söderlund niklas.soderlund at ragnatech.se
Tue Aug 4 18:13:55 CEST 2020


Use the CameraSensor ID as the camera name in pipelines that uses a
CameraSensors, this is done in preparation of turning the camera name
into an ID. The CameraSensor ID meets the requirements that will be put
on camera ID.

Before this change example of camera names:

* OF based systems
    ov5695 7-0036
    ov2685 7-003c

* ACPI based systems
    ov13858 8-0010
    ov5670 10-0036

* VIMC
    VIMC Sensor B

After this change the same cameras are:

* OF based systems
    base/i2c at ff160000/camera at 36
    base/i2c at ff160000/camera at 3c

* ACPI based systems
    \_SB_.PCI0.I2C2.CAM0
    \_SB_.PCI0.I2C4.CAM1

* VIMC
    platform:vimc Sensor B

Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
---
 src/libcamera/pipeline/ipu3/ipu3.cpp               | 7 +++----
 src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 3 ++-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp           | 2 +-
 src/libcamera/pipeline/simple/simple.cpp           | 2 +-
 src/libcamera/pipeline/vimc/vimc.cpp               | 4 ++--
 test/camera/buffer_import.cpp                      | 2 +-
 test/camera/capture.cpp                            | 2 +-
 test/camera/configuration_default.cpp              | 2 +-
 test/camera/configuration_set.cpp                  | 2 +-
 test/camera/statemachine.cpp                       | 2 +-
 test/controls/control_info_map.cpp                 | 2 +-
 test/controls/control_list.cpp                     | 2 +-
 test/serialization/serialization_test.h            | 2 +-
 13 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index c1f9fdf1013c7ec0..c300f570d727e03e 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -805,10 +805,9 @@ int PipelineHandlerIPU3::registerCameras()
 					&IPU3CameraData::imguOutputBufferReady);
 
 		/* Create and register the Camera instance. */
-		std::string cameraName = cio2->sensor()->entity()->name();
-		std::shared_ptr<Camera> camera = Camera::create(this,
-								cameraName,
-								streams);
+		std::string cameraName = cio2->sensor()->id();
+		std::shared_ptr<Camera> camera =
+			Camera::create(this, cameraName, streams);
 
 		registerCamera(std::move(camera), std::move(data));
 
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 82a0a4dfd6824fce..c55d7325cd44d6cb 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -972,7 +972,8 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
 	streams.insert(&data->isp_[Isp::Stats]);
 
 	/* Create and register the camera. */
-	std::shared_ptr<Camera> camera = Camera::create(this, data->sensor_->model(), streams);
+	std::shared_ptr<Camera> camera =
+		Camera::create(this, data->sensor_->id(), streams);
 	registerCamera(std::move(camera), std::move(data));
 
 	return true;
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 52a0d862417cc4ec..94561062c2b9d4fc 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -971,7 +971,7 @@ int PipelineHandlerRkISP1::createCamera(MediaEntity *sensor)
 
 	std::set<Stream *> streams{ &data->stream_ };
 	std::shared_ptr<Camera> camera =
-		Camera::create(this, sensor->name(), streams);
+		Camera::create(this, data->sensor_->id(), streams);
 	registerCamera(std::move(camera), std::move(data));
 
 	return 0;
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 0bab5af86f05d63c..eb72e3b8a2996342 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -815,7 +815,7 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)
 			continue;
 
 		std::shared_ptr<Camera> camera =
-			Camera::create(this, data->sensor_->entity()->name(),
+			Camera::create(this, data->sensor_->id(),
 				       data->streams());
 		registerCamera(std::move(camera), std::move(data));
 	}
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index 4f461b928514022d..cf244f11f2423dea 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -432,9 +432,9 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
 		return false;
 
 	/* Create and register the camera. */
-	std::string name{ "VIMC " + data->sensor_->model() };
 	std::set<Stream *> streams{ &data->stream_ };
-	std::shared_ptr<Camera> camera = Camera::create(this, name, streams);
+	std::shared_ptr<Camera> camera =
+		Camera::create(this, data->sensor_->id(), streams);
 	registerCamera(std::move(camera), std::move(data));
 
 	return true;
diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp
index ad680a83f9187213..e8a7d1df52d3782c 100644
--- a/test/camera/buffer_import.cpp
+++ b/test/camera/buffer_import.cpp
@@ -28,7 +28,7 @@ class BufferImportTest : public CameraTest, public Test
 {
 public:
 	BufferImportTest()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
index f6b2f348bda52752..d5ed6e72626cf87d 100644
--- a/test/camera/capture.cpp
+++ b/test/camera/capture.cpp
@@ -18,7 +18,7 @@ class Capture : public CameraTest, public Test
 {
 public:
 	Capture()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
diff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp
index 31c908d2449eafe7..ea97493d915fd107 100644
--- a/test/camera/configuration_default.cpp
+++ b/test/camera/configuration_default.cpp
@@ -18,7 +18,7 @@ class ConfigurationDefault : public CameraTest, public Test
 {
 public:
 	ConfigurationDefault()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp
index b4b5968115e81f59..b1fa8fea2edd7683 100644
--- a/test/camera/configuration_set.cpp
+++ b/test/camera/configuration_set.cpp
@@ -18,7 +18,7 @@ class ConfigurationSet : public CameraTest, public Test
 {
 public:
 	ConfigurationSet()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
diff --git a/test/camera/statemachine.cpp b/test/camera/statemachine.cpp
index 325b4674bcc958d8..0e7c43dd84399a5a 100644
--- a/test/camera/statemachine.cpp
+++ b/test/camera/statemachine.cpp
@@ -18,7 +18,7 @@ class Statemachine : public CameraTest, public Test
 {
 public:
 	Statemachine()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
index e4305f132db7952f..72987646a63dab6b 100644
--- a/test/controls/control_info_map.cpp
+++ b/test/controls/control_info_map.cpp
@@ -24,7 +24,7 @@ class ControlInfoMapTest : public CameraTest, public Test
 {
 public:
 	ControlInfoMapTest()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
index 5c8485b5dcc31499..9a0fe53c022246f1 100644
--- a/test/controls/control_list.cpp
+++ b/test/controls/control_list.cpp
@@ -24,7 +24,7 @@ class ControlListTest : public CameraTest, public Test
 {
 public:
 	ControlListTest()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
diff --git a/test/serialization/serialization_test.h b/test/serialization/serialization_test.h
index fe77221ef5d07478..5d4a6cd80a6e2208 100644
--- a/test/serialization/serialization_test.h
+++ b/test/serialization/serialization_test.h
@@ -20,7 +20,7 @@ class SerializationTest : public CameraTest, public Test
 {
 public:
 	SerializationTest()
-		: CameraTest("VIMC Sensor B")
+		: CameraTest("platform:vimc Sensor B")
 	{
 	}
 
-- 
2.28.0



More information about the libcamera-devel mailing list