udev_device_get_parent() may return NULL when the device doesn't have a
parent, as is the case with (for example) /sys/devices/virtual/drm/ttm.
Also, log an actual error message instead of "-12 displays connected".
* treat like this under the assumption that there is
* no modern drm driver available. */
n = manager_count_displays(m);
- if (n != 1) {
+ if (n < 0)
+ log_warning("Display counting failed: %s", strerror(-n));
+ else if (n != 1) {
log_debug("Ignoring lid switch request, %i displays connected.", n);
return 0;
}
p = udev_device_get_parent(d);
if (!p)
- return -ENOMEM;
+ continue;
/* If the parent shares the same subsystem as the
* device we are looking at then it is a connector,