aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/drm_edid.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index cf24ecab6a4a..9aa65b289d01 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1328,31 +1328,20 @@ static int add_detailed_info_eedid(struct drm_connector *connector,
1328 int start_offset, end_offset; 1328 int start_offset, end_offset;
1329 int timing_level; 1329 int timing_level;
1330 1330
1331 if (edid->version == 1 && edid->revision < 3) { 1331 if (edid->version == 1 && edid->revision < 3)
1332 /* If the EDID version is less than 1.3, there is no
1333 * extension EDID.
1334 */
1335 return 0; 1332 return 0;
1336 } 1333 if (!edid->extensions)
1337 if (!edid->extensions) {
1338 /* if there is no extension EDID, it is unnecessary to
1339 * parse the E-EDID to get detailed info
1340 */
1341 return 0; 1334 return 0;
1342 }
1343 1335
1344 /* Find CEA extension */ 1336 /* Find CEA extension */
1345 for (i = 0; i < edid->extensions; i++) { 1337 for (i = 0; i < edid->extensions; i++) {
1346 edid_ext = (char *)edid + EDID_LENGTH * (i + 1); 1338 edid_ext = (char *)edid + EDID_LENGTH * (i + 1);
1347 /* This block is CEA extension */
1348 if (edid_ext[0] == 0x02) 1339 if (edid_ext[0] == 0x02)
1349 break; 1340 break;
1350 } 1341 }
1351 1342
1352 if (i == edid->extensions) { 1343 if (i == edid->extensions)
1353 /* if there is no additional timing EDID block, return */
1354 return 0; 1344 return 0;
1355 }
1356 1345
1357 /* Get the start offset of detailed timing block */ 1346 /* Get the start offset of detailed timing block */
1358 start_offset = edid_ext[2]; 1347 start_offset = edid_ext[2];