Commit 3c7fc252 authored by Lyude Paul's avatar Lyude Paul Committed by Ben Skeggs

drm/nouveau/drm/nouveau: Don't forget to label dp_aux devices

This makes debugging with DP tracing a lot harder to interpret, so name
each i2c based off the name of the encoder that it's for
Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
Reviewed-by: default avatarKarol Herbst <karolherbst@gmail.com>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent b89fdf7a
...@@ -67,7 +67,7 @@ nv04_display_create(struct drm_device *dev) ...@@ -67,7 +67,7 @@ nv04_display_create(struct drm_device *dev)
for (i = 0; i < dcb->entries; i++) { for (i = 0; i < dcb->entries; i++) {
struct dcb_output *dcbent = &dcb->entry[i]; struct dcb_output *dcbent = &dcb->entry[i];
connector = nouveau_connector_create(dev, dcbent->connector); connector = nouveau_connector_create(dev, dcbent);
if (IS_ERR(connector)) if (IS_ERR(connector))
continue; continue;
......
...@@ -2301,7 +2301,7 @@ nv50_display_create(struct drm_device *dev) ...@@ -2301,7 +2301,7 @@ nv50_display_create(struct drm_device *dev)
/* create encoder/connector objects based on VBIOS DCB table */ /* create encoder/connector objects based on VBIOS DCB table */
for (i = 0, dcbe = &dcb->entry[0]; i < dcb->entries; i++, dcbe++) { for (i = 0, dcbe = &dcb->entry[0]; i < dcb->entries; i++, dcbe++) {
connector = nouveau_connector_create(dev, dcbe->connector); connector = nouveau_connector_create(dev, dcbe);
if (IS_ERR(connector)) if (IS_ERR(connector))
continue; continue;
......
...@@ -403,6 +403,7 @@ nouveau_connector_destroy(struct drm_connector *connector) ...@@ -403,6 +403,7 @@ nouveau_connector_destroy(struct drm_connector *connector)
if (nv_connector->aux.transfer) { if (nv_connector->aux.transfer) {
drm_dp_cec_unregister_connector(&nv_connector->aux); drm_dp_cec_unregister_connector(&nv_connector->aux);
drm_dp_aux_unregister(&nv_connector->aux); drm_dp_aux_unregister(&nv_connector->aux);
kfree(nv_connector->aux.name);
} }
kfree(connector); kfree(connector);
} }
...@@ -1232,7 +1233,8 @@ drm_conntype_from_dcb(enum dcb_connector_type dcb) ...@@ -1232,7 +1233,8 @@ drm_conntype_from_dcb(enum dcb_connector_type dcb)
} }
struct drm_connector * struct drm_connector *
nouveau_connector_create(struct drm_device *dev, int index) nouveau_connector_create(struct drm_device *dev,
const struct dcb_output *dcbe)
{ {
const struct drm_connector_funcs *funcs = &nouveau_connector_funcs; const struct drm_connector_funcs *funcs = &nouveau_connector_funcs;
struct nouveau_drm *drm = nouveau_drm(dev); struct nouveau_drm *drm = nouveau_drm(dev);
...@@ -1240,6 +1242,8 @@ nouveau_connector_create(struct drm_device *dev, int index) ...@@ -1240,6 +1242,8 @@ nouveau_connector_create(struct drm_device *dev, int index)
struct nouveau_connector *nv_connector = NULL; struct nouveau_connector *nv_connector = NULL;
struct drm_connector *connector; struct drm_connector *connector;
struct drm_connector_list_iter conn_iter; struct drm_connector_list_iter conn_iter;
char aux_name[48] = {0};
int index = dcbe->connector;
int type, ret = 0; int type, ret = 0;
bool dummy; bool dummy;
...@@ -1342,6 +1346,9 @@ nouveau_connector_create(struct drm_device *dev, int index) ...@@ -1342,6 +1346,9 @@ nouveau_connector_create(struct drm_device *dev, int index)
case DRM_MODE_CONNECTOR_eDP: case DRM_MODE_CONNECTOR_eDP:
nv_connector->aux.dev = dev->dev; nv_connector->aux.dev = dev->dev;
nv_connector->aux.transfer = nouveau_connector_aux_xfer; 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);
ret = drm_dp_aux_register(&nv_connector->aux); ret = drm_dp_aux_register(&nv_connector->aux);
if (ret) { if (ret) {
NV_ERROR(drm, "failed to register aux channel\n"); NV_ERROR(drm, "failed to register aux channel\n");
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include "nouveau_encoder.h" #include "nouveau_encoder.h"
struct nvkm_i2c_port; struct nvkm_i2c_port;
struct dcb_output;
#ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
struct nouveau_backlight; struct nouveau_backlight;
...@@ -113,7 +114,7 @@ nouveau_crtc_connector_get(struct nouveau_crtc *nv_crtc) ...@@ -113,7 +114,7 @@ nouveau_crtc_connector_get(struct nouveau_crtc *nv_crtc)
} }
struct drm_connector * struct drm_connector *
nouveau_connector_create(struct drm_device *, int index); nouveau_connector_create(struct drm_device *, const struct dcb_output *);
extern int nouveau_tv_disable; extern int nouveau_tv_disable;
extern int nouveau_ignorelid; extern int nouveau_ignorelid;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment