drm/amd/display: Treat bad EDID as no EDID
authorEric Yang <Eric.Yang2@amd.com>
Thu, 8 Feb 2018 19:05:14 +0000 (14:05 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 19 Feb 2018 19:20:13 +0000 (14:20 -0500)
We have an mst dock firmware that will emulate an EDID with bad
checksum.

v2: Tread -> Treat

Signed-off-by: Eric Yang <Eric.Yang2@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c

index f4ffbf2..8583d9e 100644 (file)
@@ -1637,12 +1637,17 @@ struct dc_sink *dc_link_add_remote_sink(
                        &dc_sink->dc_edid,
                        &dc_sink->edid_caps);
 
-       if (edid_status != EDID_OK)
-               goto fail;
+       /*
+        * Treat device as no EDID device if EDID
+        * parsing fails
+        */
+       if (edid_status != EDID_OK) {
+               dc_sink->dc_edid.length = 0;
+               dm_error("Bad EDID, status%d!\n", edid_status);
+       }
 
        return dc_sink;
-fail:
-       dc_link_remove_remote_sink(link, dc_sink);
+
 fail_add_sink:
        dc_sink_release(dc_sink);
        return NULL;