[libcamera-devel] [PATCH 2/4] libcamera: device_enumerator_udev: Delay device node lookup

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Sep 12 22:03:28 CEST 2019


When populating media devices, we look up device nodes for every entity
in the media device, regardless of if the entity is present in the
orphans list. This causes unnecessary lookups (that may also fail as the
device node may not be ready yet at that time). Move the lookup at a
later time, when the device node is actually needed.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/libcamera/device_enumerator_udev.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp
index e0c646c997de..210f5c1f2870 100644
--- a/src/libcamera/device_enumerator_udev.cpp
+++ b/src/libcamera/device_enumerator_udev.cpp
@@ -180,10 +180,10 @@ int DeviceEnumeratorUdev::populateMediaDevice(const std::shared_ptr<MediaDevice>
 
 		dev_t devnum = makedev(entity->deviceMajor(),
 				       entity->deviceMinor());
-		std::string deviceNode = lookupDeviceNode(devnum);
 
 		/* Take device from orphan list first, if it is in the list. */
 		if (std::find(orphans_.begin(), orphans_.end(), devnum) != orphans_.end()) {
+			std::string deviceNode = lookupDeviceNode(devnum);
 			if (deviceNode.empty())
 				return -EINVAL;
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list