Bladeren bron

drm/radeon: fix LCD record parsing

If the LCD table contains an EDID record, properly account
for the edid size when walking through the records.

This should fix error messages about unknown LCD records.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Alex Deucher 12 jaren geleden
bovenliggende
commit
95663948ba
1 gewijzigde bestanden met toevoegingen van 3 en 1 verwijderingen
  1. 3 1
      drivers/gpu/drm/radeon/radeon_atombios.c

+ 3 - 1
drivers/gpu/drm/radeon/radeon_atombios.c

@@ -1681,7 +1681,9 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct
 								kfree(edid);
 								kfree(edid);
 						}
 						}
 					}
 					}
-					record += sizeof(ATOM_FAKE_EDID_PATCH_RECORD);
+					record += fake_edid_record->ucFakeEDIDLength ?
+						fake_edid_record->ucFakeEDIDLength + 2 :
+						sizeof(ATOM_FAKE_EDID_PATCH_RECORD);
 					break;
 					break;
 				case LCD_PANEL_RESOLUTION_RECORD_TYPE:
 				case LCD_PANEL_RESOLUTION_RECORD_TYPE:
 					panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record;
 					panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record;