From: Ben Skeggs <bske...@redhat.com>

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

Signed-off-by: Ben Skeggs <bske...@redhat.com>
Reviewed-by: Lyude Paul <ly...@redhat.com>
---
 drivers/gpu/drm/nouveau/nouveau_connector.c | 25 ++++++++-------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c 
b/drivers/gpu/drm/nouveau/nouveau_connector.c
index c2929ad64b60..34f5ad0fdfd6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -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;
 
-- 
2.41.0

Reply via email to