mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
drm/nouveau/kms/nv50-: name aux channels after their connector
- removes use of VBIOS data for naming - preparation for GSP-RM Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Acked-by: Danilo Krummrich <me@dakr.org> Signed-off-by: Lyude Paul <lyude@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230919220442.202488-42-lyude@redhat.com
This commit is contained in:
parent
0880bf4c43
commit
9c3361de06
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user