diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index c44871c80aba110c429f001421a352118ff51029..04ecb11ebb8cb0b966aa6b435579dd5f7034611f 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -236,6 +236,10 @@ static int radeon_lvds_get_modes(struct drm_connector *connector)
 	if (radeon_connector->ddc_bus) {
 		ret = radeon_ddc_get_modes(radeon_connector);
 		if (ret > 0) {
+			encoder = radeon_best_single_encoder(connector);
+			if (encoder)
+				/* add scaled modes */
+				radeon_add_common_modes(encoder, connector);
 			return ret;
 		}
 	}
@@ -249,11 +253,10 @@ static int radeon_lvds_get_modes(struct drm_connector *connector)
 	if (mode) {
 		ret = 1;
 		drm_mode_probed_add(connector, mode);
+		/* add scaled modes */
+		radeon_add_common_modes(encoder, connector);
 	}
 
-	/* add scaled modes */
-	radeon_add_common_modes(encoder, connector);
-
 	return ret;
 }