This allows callers to access the detailed DMT data.
di-edid-decode is updated to print the missing fields.
Signed-off-by: Simon Ser <contact@emersion.fr>
Make sure we didn't mess up the array size. Abort instead of
corrupting memory.
Found the array insert operations via:
git grep '++]'
Signed-off-by: Simon Ser <contact@emersion.fr>
Report the SVDs inside the video data block.
We'll need to add additional APIs to get detailed SVD mode info
in the future (with a SVD table).
Signed-off-by: Simon Ser <contact@emersion.fr>
Nested structs makes it impossible to extend the nested struct after
extending the base struct. The union acts as a single struct in this
case but the nesting is still an issue. Use pointers to those structs instead
to keep all of them extensible. Only the struct which is applicable for the
signal type is not a null pointer to make sure only valid data is accessed.
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
This makes it easier to perform an operation on all EDID files at
once, e.g. "test/edid-decode-diff.sh test/data/*.edid" to update all
diffs at once.
Signed-off-by: Simon Ser <contact@emersion.fr>
Call rm with the -f flag to ignore non-existing .diff files.
The .diff file doesn't exist if there is no difference in the
edid-decode output.
Signed-off-by: Simon Ser <contact@emersion.fr>
To parse standard timing descriptors, we'll need to re-use that
function and store the result elsewhere.
Signed-off-by: Simon Ser <contact@emersion.fr>
Upstream edid-decode uses a global variable to store the current
EDID section name and prefix failure messages.
Signed-off-by: Simon Ser <contact@emersion.fr>
This is a private function which parses DTDs. This will be useful
in the next commit to parse DTDs from the CTA extension.
Signed-off-by: Simon Ser <contact@emersion.fr>
EDID 1.2- allow the first byte descriptor to contain a display
descriptor. EDID 1.3+ require the first byte descriptor to contain
a detailed timing definition describing the display's preferred
(ie, optimal) mode.
Signed-off-by: Simon Ser <contact@emersion.fr>
EDID 1.4 forbids years < 2006, but EDID 1.3 allows them.
Error out when an EDID uses a reserved value. Correctly parse the
year on older EDID revisions.
Signed-off-by: Simon Ser <contact@emersion.fr>
These functions now only return false on fatal failures
(e.g. out of memory). They no longer return false for unsupported
block types.
Signed-off-by: Simon Ser <contact@emersion.fr>
Mirror upstream edid-decode.
samsung-s27a950d-dp and hp-5dq99aa-hdmi are missing some failures
about features we haven't implemented yet. panasonic-mei96a2-dp
has a bogus "Missing Display Product Name" failure, see [1].
[1]: https://lore.kernel.org/linux-media/20220802093219.30599-1-contact@emersion.fr/T/#u
Signed-off-by: Simon Ser <contact@emersion.fr>