diff --git a/backend/drm/drm.c b/backend/drm/drm.c index 005bff11..10485a8a 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -1379,6 +1379,11 @@ static struct wlr_drm_connector *create_drm_connector(struct wlr_drm_backend *dr wlr_conn->status = DRM_MODE_DISCONNECTED; wlr_conn->id = drm_conn->connector_id; + if (!get_drm_connector_props(drm->fd, wlr_conn->id, &wlr_conn->props)) { + free(wlr_conn); + return false; + } + const char *conn_name = drmModeGetConnectorTypeName(drm_conn->connector_type); if (conn_name == NULL) { @@ -1511,10 +1516,6 @@ static bool connect_drm_connector(struct wlr_drm_connector *wlr_conn, wlr_log(WLR_ERROR, "Unknown subpixel value: %d", (int)drm_conn->subpixel); } - if (!get_drm_connector_props(drm->fd, wlr_conn->id, &wlr_conn->props)) { - return false; - } - uint64_t non_desktop; if (get_drm_prop(drm->fd, wlr_conn->id, wlr_conn->props.non_desktop, &non_desktop)) {