diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-03-20 22:49:23 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-03-23 13:30:24 +0200 |
commit | 3f97be923c11df4324f20a94591dc5562a05c7ba (patch) | |
tree | 8e7874bbf545130c2e876d0e1333b7a934c15a01 /test/object.cpp | |
parent | d6f5621e1501d236e0e1762e5cd055eb3c8af25d (diff) |
libcamera: device_enumerator_udev: Don't add media device twice
Commit 68daa9302f90 ("libcamera: device_enumerator: Don't stop if one
device fails") introduced a bug in device enumeration. Previously, a
media device would only be added when all its dependencies were present,
as indicated by populateMediaDevice() returning 0. The commit changed
the logic to propagate the populateMediaDevice() return code up, but
mistakenly added the media device to the enumerator even when
dependencies were missing. This causes media devices enumerated with
missing dependencies to be added twice, once when enumerating the media
device itself, and a second time when all the dependencies are found.
Fix it by deferring addition of the media device when dependencies are
missing, and add debug messages to track this process.
Fixes: 68daa9302f90 ("libcamera: device_enumerator: Don't stop if one device fails")
Reported-by: Andrey Konovalov <andrey.konovalov@linaro.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'test/object.cpp')
0 files changed, 0 insertions, 0 deletions