drm/nouveau/kms/nv50: use drm core i2c-over-aux algorithm
authorBen Skeggs <bskeggs@redhat.com>
Tue, 28 Feb 2017 23:42:04 +0000 (09:42 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 7 Mar 2017 07:05:17 +0000 (17:05 +1000)
I'm not entirely sure NVKM needs to support this now, but I haven't
removed it as of yet just in case it's needed from DEVINIT scripts
where DRM isn't available.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nv50_display.c

index 0b4440ffbeae21a3d33e67ed1c727e00cf3884b3..b4a99aba4d65b46dce7f301dc8f3aa69455f8a00 100644 (file)
@@ -3691,7 +3691,7 @@ nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe)
                struct nvkm_i2c_aux *aux =
                        nvkm_i2c_aux_find(i2c, dcbe->i2c_index);
                if (aux) {
-                       nv_encoder->i2c = &aux->i2c;
+                       nv_encoder->i2c = &nv_connector->aux.ddc;
                        nv_encoder->aux = aux;
                }
 
@@ -3841,6 +3841,7 @@ nv50_pior_func = {
 static int
 nv50_pior_create(struct drm_connector *connector, struct dcb_output *dcbe)
 {
+       struct nouveau_connector *nv_connector = nouveau_connector(connector);
        struct nouveau_drm *drm = nouveau_drm(connector->dev);
        struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
        struct nvkm_i2c_bus *bus = NULL;
@@ -3858,7 +3859,7 @@ nv50_pior_create(struct drm_connector *connector, struct dcb_output *dcbe)
                break;
        case DCB_OUTPUT_DP:
                aux  = nvkm_i2c_aux_find(i2c, NVKM_I2C_AUX_EXT(dcbe->extdev));
-               ddc  = aux ? &aux->i2c : NULL;
+               ddc  = aux ? &nv_connector->aux.ddc : NULL;
                type = DRM_MODE_ENCODER_TMDS;
                break;
        default: