drm: Do not force 1024x768 modes on unknown connectors
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 5 Sep 2010 15:55:25 +0000 (16:55 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 6 Sep 2010 22:05:38 +0000 (08:05 +1000)
Only fallback to a set of default modes on a connector iff that
connector is known to be connected. The issue occurs that with limited
hardware which cannot probe a connector and so reports the
connector status as unknown will then attempt to retrieve the modes for
it during drm_helper_probe_single_connector_modes(). Should that fail,
the helper then generates a default set which fools the fb_helper and
causes havoc with the console and beyond.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_crtc_helper.c

index 06fc0bccaff71e399979b61ae35ee474631c9c69..d2ab01e90a96315fee72015f4a76f194211d4a81 100644 (file)
@@ -115,11 +115,10 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector,
        }
 
        count = (*connector_funcs->get_modes)(connector);
-       if (!count) {
+       if (count == 0 && connector->status == connector_status_connected)
                count = drm_add_modes_noedid(connector, 1024, 768);
-               if (!count)
-                       return 0;
-       }
+       if (count == 0)
+               goto prune;
 
        drm_mode_connector_list_update(connector);