drm/edid: Only print the bad edid when aborting
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 24 Oct 2016 11:38:21 +0000 (12:38 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 25 Oct 2016 06:32:16 +0000 (08:32 +0200)
commit14544d0937bf0160018a47ba74fff7fd61c22731
treebae2d2965f80801f75d53b03c2a720f6c60c0fdb
parentc170a14e20299f600f5d5949933cf3b300fee375
drm/edid: Only print the bad edid when aborting

Currently, if drm.debug is enabled, we get a DRM_ERROR message on the
intermediate edid reads. This causes transient failures in CI which
flags up the sporadic EDID read failures, which are recovered by
rereading the EDID automatically. This patch combines the reporting done
by drm_do_get_edid() itself with the bad block printing from
get_edid_block(), into a single warning associated with the connector
once all attempts to retrieve the EDID fail.

v2: Print the whole EDID, marking up the bad/zero blocks. This requires
recording the whole of the raw edid, then a second pass to reduce it to
the valid extensions.
v3: Fix invalid/valid extension fumble.

References: https://bugs.freedesktop.org/show_bug.cgi?id=98228
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20161024113821.26263-1-chris@chris-wilson.co.uk
drivers/gpu/drm/drm_edid.c