summaryrefslogtreecommitdiff
path: root/linux-core
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-11-03 09:26:32 +1000
committerDave Airlie <airlied@redhat.com>2008-11-03 09:26:32 +1000
commita8f07db596532912e354bb7a2b3acdfc11a8d150 (patch)
tree24b65dc8d76b9d033e867a4f653d344809efe69d /linux-core
parentd275f99c9a7d915473034e6abd575f35bea5db9c (diff)
radeon: workaround failure to parse some rs48x edid
Diffstat (limited to 'linux-core')
-rw-r--r--linux-core/radeon_connectors.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/linux-core/radeon_connectors.c b/linux-core/radeon_connectors.c
index f217fe77..8de21997 100644
--- a/linux-core/radeon_connectors.c
+++ b/linux-core/radeon_connectors.c
@@ -87,19 +87,23 @@ static int radeon_lvds_get_modes(struct drm_connector *connector)
if (radeon_connector->ddc_bus) {
radeon_i2c_do_lock(radeon_connector, 1);
- edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
+ edid = drm_get_edid(connector, &radeon_connector->ddc_bus->adapter);
radeon_i2c_do_lock(radeon_connector, 0);
if (edid) {
drm_mode_connector_update_edid_property(&radeon_connector->base, edid);
ret = drm_add_edid_modes(&radeon_connector->base, edid);
kfree(edid);
+ if (ret == 0)
+ goto native;
return ret;
}
}
+native:
encoder = radeon_best_single_encoder(connector);
if (!encoder)
- return connector_status_disconnected;
+ return 0;
+
/* we have no EDID modes */
mode = radeon_fp_native_mode(encoder);
if (mode) {