diff mbox

DRM: ignore invalid EDID extensions

Message ID 4C992B73.5040605@yahoo.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Sam Tygier Sept. 21, 2010, 10:02 p.m. UTC
None
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index f87bf10..5ade343 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -285,6 +285,15 @@  carp:
  	dev_warn(connector->dev->dev, "%s: EDID block %d invalid.\n",
  		 drm_get_connector_name(connector), j);
  
+	/* Invalid extension, so set block[0x7e] to zero, and return
+	 * the base block */
+	block[EDID_LENGTH-1] += block[0x7e];
+	block[0x7e] = 0;
+	new = krealloc(block, EDID_LENGTH, GFP_KERNEL);
+	if (!new)
+		goto out;
+	block = new;
+	return block;
  out:
  	kfree(block);
  	return NULL;