drm/radeon/kms: fix shared ddc handling
authorAlex Deucher <alexdeucher@gmail.com>
Thu, 1 Jul 2010 14:34:56 +0000 (10:34 -0400)
committerDave Airlie <airlied@redhat.com>
Wed, 7 Jul 2010 04:21:38 +0000 (14:21 +1000)
Connectors with a shared ddc line can be connected to different
encoders.

Reported by Pasi Kärkkäinen <pasik@iki.fi> on dri-devel

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_connectors.c

index 0c7ccc6961a353758628d7a84ec9a843b837f7f1..f58f8bd8f77b0c7f2fc984130d83cfbb3a40c591 100644 (file)
@@ -785,7 +785,9 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect
                                        if (connector == list_connector)
                                                continue;
                                        list_radeon_connector = to_radeon_connector(list_connector);
-                                       if (radeon_connector->devices == list_radeon_connector->devices) {
+                                       if (list_radeon_connector->shared_ddc &&
+                                           (list_radeon_connector->ddc_bus->rec.i2c_id ==
+                                            radeon_connector->ddc_bus->rec.i2c_id)) {
                                                if (drm_detect_hdmi_monitor(radeon_connector->edid)) {
                                                        if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) {
                                                                kfree(radeon_connector->edid);