diff options
author | Adam Jackson <ajax@redhat.com> | 2010-03-29 17:43:23 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-04-05 20:40:20 -0400 |
commit | 7466f4cc508878a8328dff1c328a2b4108888d2e (patch) | |
tree | a46b13cd8b1baa22f241d1e8c90809a73c333561 /drivers/gpu/drm/radeon/radeon_combios.c | |
parent | 2255be14cb82370a6af4054edb3b4cd170d80752 (diff) |
drm/edid: Remove arbitrary EDID extension limit
Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_combios.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_combios.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c index 2becdeda68a3..20f38b85c70a 100644 --- a/drivers/gpu/drm/radeon/radeon_combios.c +++ b/drivers/gpu/drm/radeon/radeon_combios.c | |||
@@ -450,17 +450,17 @@ bool radeon_combios_check_hardcoded_edid(struct radeon_device *rdev) | |||
450 | { | 450 | { |
451 | int edid_info; | 451 | int edid_info; |
452 | struct edid *edid; | 452 | struct edid *edid; |
453 | unsigned char *raw; | ||
453 | edid_info = combios_get_table_offset(rdev->ddev, COMBIOS_HARDCODED_EDID_TABLE); | 454 | edid_info = combios_get_table_offset(rdev->ddev, COMBIOS_HARDCODED_EDID_TABLE); |
454 | if (!edid_info) | 455 | if (!edid_info) |
455 | return false; | 456 | return false; |
456 | 457 | ||
457 | edid = kmalloc(EDID_LENGTH * (DRM_MAX_EDID_EXT_NUM + 1), | 458 | raw = rdev->bios + edid_info; |
458 | GFP_KERNEL); | 459 | edid = kmalloc(EDID_LENGTH * (raw[0x7e] + 1), GFP_KERNEL); |
459 | if (edid == NULL) | 460 | if (edid == NULL) |
460 | return false; | 461 | return false; |
461 | 462 | ||
462 | memcpy((unsigned char *)edid, | 463 | memcpy((unsigned char *)edid, raw, EDID_LENGTH * (raw[0x7e] + 1)); |
463 | (unsigned char *)(rdev->bios + edid_info), EDID_LENGTH); | ||
464 | 464 | ||
465 | if (!drm_edid_is_valid(edid)) { | 465 | if (!drm_edid_is_valid(edid)) { |
466 | kfree(edid); | 466 | kfree(edid); |