summaryrefslogtreecommitdiff
path: root/src/libcamera/media_device.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/media_device.cpp')
-rw-r--r--src/libcamera/media_device.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
index 449571fb..c3977516 100644
--- a/src/libcamera/media_device.cpp
+++ b/src/libcamera/media_device.cpp
@@ -221,6 +221,10 @@ int MediaDevice::populate()
clear();
+ ret = open();
+ if (ret)
+ return ret;
+
/*
* Keep calling G_TOPOLOGY until the version number stays stable.
*/
@@ -237,7 +241,7 @@ int MediaDevice::populate()
LOG(MediaDevice, Error)
<< "Failed to enumerate topology: "
<< strerror(-ret);
- return ret;
+ goto done;
}
if (version == topology.topology_version)
@@ -262,6 +266,10 @@ int MediaDevice::populate()
populateLinks(topology))
valid_ = true;
+ ret = 0;
+done:
+ close();
+
delete[] ents;
delete[] interfaces;
delete[] pads;
@@ -272,7 +280,7 @@ int MediaDevice::populate()
return -EINVAL;
}
- return 0;
+ return ret;
}
/**