summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Glisse <glisse@freedesktop.org>2007-11-09 17:28:56 +0100
committerJerome Glisse <glisse@freedesktop.org>2007-11-09 17:28:56 +0100
commite1bc147ac9aa8ac2ac271b0a21f4138b17875ce5 (patch)
treec99476b218d152363309c80d8e506cddab5a5cbc
parentffb89d4c3b6650551aaab06076896540a78faddf (diff)
drm: check edid data, so we deal well with broken driver.
-rw-r--r--linux-core/drm_edid.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/linux-core/drm_edid.c b/linux-core/drm_edid.c
index b8eee1a4..7068cef3 100644
--- a/linux-core/drm_edid.c
+++ b/linux-core/drm_edid.c
@@ -469,6 +469,14 @@ int drm_add_edid_modes(struct drm_output *output, struct edid *edid)
{
int num_modes = 0;
+ if (edid == NULL) {
+ return 0;
+ }
+ if (!edid_valid(edid)) {
+ dev_warn(&output->dev->pdev->dev, "%s: EDID invalid.\n",
+ output->name);
+ return 0;
+ }
num_modes += add_established_modes(output, edid);
num_modes += add_standard_modes(output, edid);
num_modes += add_detailed_info(output, edid);