diff options
Diffstat (limited to 'drivers/gpu/drm/radeon')
-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 37db8adb2748..0f1fd9254e30 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); |