aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil-cisco@xs4all.nl>2020-09-14 10:02:43 +0200
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2020-09-14 10:02:43 +0200
commit01e793859b7b356906d9ca3ba69fc6faa6975aaa (patch)
tree21a366fdcbe93ab06a645f36f9544da9df84b9ef
parentc0e41332af7a18db2b776ad1d7a84c59a44da41b (diff)
edid-decode: incorporate DisplayID E6 errata changesHEADmaster
The Maximum Vertical Refresh Rate in the Dynamic Video Timing Range Limits Data Block now goes up to 1023 Hz. Support this. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
-rw-r--r--parse-displayid-block.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/parse-displayid-block.cpp b/parse-displayid-block.cpp
index 77cc22a..df55e38 100644
--- a/parse-displayid-block.cpp
+++ b/parse-displayid-block.cpp
@@ -1165,7 +1165,7 @@ void edid_state::parse_displayid_type_9_timing(const unsigned char *x)
static void parse_displayid_dynamic_video_timings_range_limits(const unsigned char *x)
{
- check_displayid_datablock_revision(x);
+ check_displayid_datablock_revision(x, 0, (x[1] & 7) == 1);
if (!check_displayid_datablock_length(x, 9, 9))
return;
@@ -1175,7 +1175,10 @@ static void parse_displayid_dynamic_video_timings_range_limits(const unsigned ch
printf(" Maximum Pixel Clock: %u kHz\n",
1 + (x[6] | (x[7] << 8) | (x[8] << 16)));
printf(" Minimum Vertical Refresh Rate: %u Hz\n", x[9]);
- printf(" Maximum Vertical Refresh Rate: %u Hz\n", x[10]);
+ if (x[1] & 7)
+ printf(" Maximum Vertical Refresh Rate: %u Hz\n", x[10] + ((x[11] & 3) << 8));
+ else
+ printf(" Maximum Vertical Refresh Rate: %u Hz\n", x[10]);
printf(" Seamless Dynamic Video Timing Support: %s\n",
(x[11] & 0x80) ? "Yes" : "No");
}

Privacy Policy