summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-12-06 20:47:47 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-12-07 19:09:38 +0200
commit1c88396a54f832e717b64c6bc27d75d1e357f0c5 (patch)
tree4835f7e674fae11e2218a121bd7a4d011e024e8f /src
parente7888073718aadd7c35a78f88792a73a4e3a8300 (diff)
libcamera: media_device: Skip all non-data links during enumeration
The MediaDevice::populateLinks() function iterates over data links by skipping interface links. This isn't very future-proof, it will break if the kernel adds new types of links. Fix it by only considering data links instead of blacklisting interface links. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src')
-rw-r--r--src/libcamera/media_device.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
index 4df0a27f..0b794018 100644
--- a/src/libcamera/media_device.cpp
+++ b/src/libcamera/media_device.cpp
@@ -695,12 +695,9 @@ bool MediaDevice::populateLinks(const struct media_v2_topology &topology)
(topology.ptr_links);
for (unsigned int i = 0; i < topology.num_links; ++i) {
- /*
- * Skip links between entities and interfaces: we only care
- * about pad-2-pad links here.
- */
- if ((mediaLinks[i].flags & MEDIA_LNK_FL_LINK_TYPE) ==
- MEDIA_LNK_FL_INTERFACE_LINK)
+ /* We only care about pad-2-pad links here. */
+ if ((mediaLinks[i].flags & MEDIA_LNK_FL_LINK_TYPE) !=
+ MEDIA_LNK_FL_DATA_LINK)
continue;
/* Store references to source and sink pads in the link. */