diff options
author | Dave Airlie <airlied@redhat.com> | 2008-11-03 09:26:32 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-11-03 09:26:32 +1000 |
commit | a8f07db596532912e354bb7a2b3acdfc11a8d150 (patch) | |
tree | 24b65dc8d76b9d033e867a4f653d344809efe69d | |
parent | d275f99c9a7d915473034e6abd575f35bea5db9c (diff) |
radeon: workaround failure to parse some rs48x edid
-rw-r--r-- | linux-core/radeon_connectors.c | 8 |
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) { |