drm: Allow override_edid to override the firmware EDID
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 10 Dec 2015 21:13:56 +0000 (23:13 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 11 Dec 2015 08:35:12 +0000 (09:35 +0100)
IMO the override_edid should override any default EDID for the
connector, whether that came in via the connector helper ->get_modes()
vfunc or via the firmware EDID mechanism.

Cc: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1449782037-19722-2-git-send-email-ville.syrjala@linux.intel.com
drivers/gpu/drm/drm_probe_helper.c

index 483010f680d55950c6519f780d51b6c744025c6c..13d178e6981b6df05ffe8d690caff0f3f1811dc3 100644 (file)
@@ -233,17 +233,16 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector,
                goto prune;
        }
 
+       if (connector->override_edid) {
+               struct edid *edid = (struct edid *) connector->edid_blob_ptr->data;
+
+               count = drm_add_edid_modes(connector, edid);
+               drm_edid_to_eld(connector, edid);
+       } else {
 #ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE
-       count = drm_load_edid_firmware(connector);
-       if (count == 0)
+               count = drm_load_edid_firmware(connector);
+               if (count == 0)
 #endif
-       {
-               if (connector->override_edid) {
-                       struct edid *edid = (struct edid *) connector->edid_blob_ptr->data;
-
-                       count = drm_add_edid_modes(connector, edid);
-                       drm_edid_to_eld(connector, edid);
-               } else
                        count = (*connector_funcs->get_modes)(connector);
        }