libcamera: device_enumerator_udev: Delay device node lookup
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@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user