backend/drm: add wlr_drm_backend_monitor

This helper is responsible for listening for new DRM devices and
create new child DRM backends as necessary.
This commit is contained in:
Chris Chamberlain 2021-12-10 21:14:57 +01:00 committed by Simon Ser
parent f6d3efbf4b
commit d8ca494558
6 changed files with 128 additions and 3 deletions

View file

@ -370,7 +370,7 @@ bool wlr_session_change_vt(struct wlr_session *session, unsigned vt) {
/* Tests if 'path' is KMS compatible by trying to open it. Returns the opened
* device on success. */
static struct wlr_device *open_if_kms(struct wlr_session *restrict session,
struct wlr_device *session_open_if_kms(struct wlr_session *restrict session,
const char *restrict path) {
if (!path) {
return NULL;
@ -406,7 +406,7 @@ static ssize_t explicit_find_gpus(struct wlr_session *session,
break;
}
ret[i] = open_if_kms(session, ptr);
ret[i] = session_open_if_kms(session, ptr);
if (!ret[i]) {
wlr_log(WLR_ERROR, "Unable to open %s as DRM device", ptr);
} else {
@ -542,7 +542,7 @@ ssize_t wlr_session_find_gpus(struct wlr_session *session,
}
struct wlr_device *wlr_dev =
open_if_kms(session, udev_device_get_devnode(dev));
session_open_if_kms(session, udev_device_get_devnode(dev));
if (!wlr_dev) {
udev_device_unref(dev);
continue;