common: edid: check for digital display earlier
authorJernej Skrabec <jernej.skrabec@siol.net>
Thu, 22 Apr 2021 00:14:27 +0000 (01:14 +0100)
committerAnatolij Gustschin <agust@denx.de>
Sat, 24 Apr 2021 11:44:41 +0000 (13:44 +0200)
When searching for detailed timing in EDID, check for digital display
earlier. There is no point parsing other parameters if this flag is not
present.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
common/edid.c

index 553ab8f..1cb7177 100644 (file)
@@ -185,6 +185,11 @@ int edid_get_timing_validate(u8 *buf, int buf_size,
                return -EINVAL;
        }
 
+       if (!EDID1_INFO_VIDEO_INPUT_DIGITAL(*edid)) {
+               debug("%s: Not a digital display\n", __func__);
+               return -ENOSYS;
+       }
+
        if (!EDID1_INFO_FEATURE_PREFERRED_TIMING_MODE(*edid)) {
                debug("%s: No preferred timing\n", __func__);
                return -ENOENT;
@@ -211,10 +216,6 @@ int edid_get_timing_validate(u8 *buf, int buf_size,
        if (!timing_done)
                return -EINVAL;
 
-       if (!EDID1_INFO_VIDEO_INPUT_DIGITAL(*edid)) {
-               debug("%s: Not a digital display\n", __func__);
-               return -ENOSYS;
-       }
        if (edid->version != 1 || edid->revision < 4) {
                debug("%s: EDID version %d.%d does not have required info\n",
                      __func__, edid->version, edid->revision);