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

Message ID 20200804161358.1628962-7-niklas.soderlund@ragnatech.se
State Superseded
Headers show
Series
  • libcamera: Generate unique and stable camera IDs
Related show

Commit Message

Niklas Söderlund Aug. 4, 2020, 4:13 p.m. UTC
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@ff160000/camera@36
    base/i2c@ff160000/camera@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@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(-)

Comments

Laurent Pinchart Aug. 4, 2020, 6:31 p.m. UTC | #1
Hi Niklas,

Thank you for the patch.

On Tue, Aug 04, 2020 at 06:13:55PM +0200, Niklas Söderlund wrote:
> 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@ff160000/camera@36
>     base/i2c@ff160000/camera@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@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();

I'd name the variable cameraId already, or rename it in 8/9.

> +		std::shared_ptr<Camera> camera =
> +			Camera::create(this, cameraName, streams);

Or just

		std::shared_ptr<Camera> camera =
			Camera::create(this, cio2->sensor()->id(), streams);

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

>  
>  		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")
>  	{
>  	}
>
Jacopo Mondi Aug. 5, 2020, 7:32 a.m. UTC | #2
Hi Niklas,

On Tue, Aug 04, 2020 at 06:13:55PM +0200, Niklas Söderlund wrote:
> 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@ff160000/camera@36
>     base/i2c@ff160000/camera@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@ragnatech.se>

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

> ---
>  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
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

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")
 	{
 	}