+ if (missing_mandatory) {
+ ERROR_LOG("Lease: %s, "
+ "mandatory connector %s not found\n",
+ config->lease_name, connector_name);
+ goto err;
+ } else if (missing_optional) {
+ WARN_LOG("Lease: %s, "
+ "unknown DRM connector: %s\n",
+ config->lease_name, connector_name);
+ continue;
+ }
+ } else {
+ cid = config->connector_ids[i];
+ }
+
+ drmModeConnectorPtr connector =
+ drmModeGetConnector(lm->drm_fd, cid);
+
+ if (connector == NULL) {
+ ERROR_LOG("Can't find connector id: %d\n", cid);
+ goto err;
+ }
+
+ int crtc_index = drm_get_crtc_index(lm, connector);
+
+ drmModeFreeConnector(connector);
+
+ if (crtc_index < 0) {
+ DEBUG_LOG("No crtc found for connector: %d, lease %s\n",
+ cid, lease->base.name);
+ goto err;
+ }
+
+ if (!lease_add_planes(lm, lease, crtc_index, con_config))
+ goto err;
+
+ uint32_t crtc_id = lm->drm_resource->crtcs[crtc_index];
+ lease->crtc_id = crtc_id;
+ lease->object_ids[lease->nobject_ids++] = crtc_id;
+ lease->object_ids[lease->nobject_ids++] = cid;
+ }