Commit 9c3361de authored by Ben Skeggs's avatar Ben Skeggs Committed by Lyude Paul
Browse files

drm/nouveau/kms/nv50-: name aux channels after their connector



- removes use of VBIOS data for naming
- preparation for GSP-RM

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
Acked-by: default avatarDanilo Krummrich <me@dakr.org>
Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230919220442.202488-42-lyude@redhat.com
parent 0880bf4c
Loading
Loading
Loading
Loading
+9 −16
Original line number Diff line number Diff line
@@ -400,10 +400,8 @@ nouveau_connector_destroy(struct drm_connector *connector)
	kfree(nv_connector->edid);
	drm_connector_unregister(connector);
	drm_connector_cleanup(connector);
	if (nv_connector->aux.transfer) {
	if (nv_connector->aux.transfer)
		drm_dp_cec_unregister_connector(&nv_connector->aux);
		kfree(nv_connector->aux.name);
	}
	nvif_conn_dtor(&nv_connector->conn);
	kfree(connector);
}
@@ -1280,13 +1278,11 @@ struct drm_connector *
nouveau_connector_create(struct drm_device *dev,
			 const struct dcb_output *dcbe)
{
	const struct drm_connector_funcs *funcs = &nouveau_connector_funcs;
	struct nouveau_drm *drm = nouveau_drm(dev);
	struct nouveau_display *disp = nouveau_display(dev);
	struct nouveau_connector *nv_connector = NULL;
	struct drm_connector *connector;
	struct drm_connector_list_iter conn_iter;
	char aux_name[48] = {0};
	int index = dcbe->connector;
	int type, ret = 0;
	bool dummy;
@@ -1376,7 +1372,13 @@ nouveau_connector_create(struct drm_device *dev,
		}
	}

	switch ((type = drm_conntype_from_dcb(nv_connector->type))) {
	type = drm_conntype_from_dcb(nv_connector->type);
	if (type == DRM_MODE_CONNECTOR_LVDS)
		drm_connector_init(dev, connector, &nouveau_connector_funcs_lvds, type);
	else
		drm_connector_init(dev, connector, &nouveau_connector_funcs, type);

	switch (type) {
	case DRM_MODE_CONNECTOR_LVDS:
		ret = nouveau_bios_parse_lvds_table(dev, 0, &dummy, &dummy);
		if (ret) {
@@ -1385,24 +1387,16 @@ nouveau_connector_create(struct drm_device *dev,
			return ERR_PTR(ret);
		}

		funcs = &nouveau_connector_funcs_lvds;
		break;
	case DRM_MODE_CONNECTOR_DisplayPort:
	case DRM_MODE_CONNECTOR_eDP:
		nv_connector->aux.dev = connector->kdev;
		nv_connector->aux.drm_dev = dev;
		nv_connector->aux.transfer = nouveau_connector_aux_xfer;
		snprintf(aux_name, sizeof(aux_name), "sor-%04x-%04x",
			 dcbe->hasht, dcbe->hashm);
		nv_connector->aux.name = kstrdup(aux_name, GFP_KERNEL);
		if (!nv_connector->aux.name) {
			kfree(nv_connector);
			return ERR_PTR(-ENOMEM);
		}
		nv_connector->aux.name = connector->name;
		drm_dp_aux_init(&nv_connector->aux);
		break;
	default:
		funcs = &nouveau_connector_funcs;
		break;
	}

@@ -1417,7 +1411,6 @@ nouveau_connector_create(struct drm_device *dev,
	connector->interlace_allowed = false;
	connector->doublescan_allowed = false;

	drm_connector_init(dev, connector, funcs, type);
	drm_connector_helper_add(connector, &nouveau_connector_helper_funcs);
	connector->polled = DRM_CONNECTOR_POLL_CONNECT;