Commit graph

150 commits

Author SHA1 Message Date
Simon Ser
bf347f4d77 ci: add link to coverage report in build logs
Makes coverage info a bit easier to access and discover.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-12 10:36:38 +02:00
Simon Ser
619fc30c7b ci: update edid-decode
Contains a fix for DsiplayID tiled display topology and for CVT
RBv3.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-11 11:48:29 +00:00
Simon Ser
41d3278807 readme: link to latest code coverage report
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-07 07:20:18 +02:00
Simon Ser
97a8f16d1f di-edid-decode: split into multiple files
di-edid-decode.c is getting bit and messy.

Use one file per spec.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-07 05:05:27 +00:00
Simon Ser
f2d6819f04 displayid: add missing includes in public header
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-07 05:05:27 +00:00
Simon Ser
2ec42b3bd2 readme: add link to website
The website hosts the documentation.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-05 10:47:44 +00:00
Simon Ser
ec2521e4e0 Generate HTML documentation
Leverages gyosu [1] to generate HTML documentation from the header
files.

[1]: https://sr.ht/~emersion/gyosu/

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-04 16:21:46 +00:00
Simon Ser
eea7215002 di-edid-decode: print preferred flag for type I timing
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-03 14:14:45 +02:00
Simon Ser
cad7de92c7 displayid: add support for display parameters data block
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-03 08:56:03 +02:00
Simon Ser
d7144ad9b9 displayid: parse type I timings
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-03 06:32:38 +00:00
Simon Ser
87e264f7fb Introduce di_gtf_compute()
This is a function to compute a timing according to GTF.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-29 11:50:09 +00:00
Sebastian Wick
11f48480d8 cta: add support for VESA Display Transfer Characteristic data block
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
2022-09-28 23:56:46 +02:00
Sebastian Wick
78b4f0eb68 edid: use the correct definition for maximum standard timings
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
2022-09-28 02:44:35 +02:00
Simon Ser
40d8018a7e displayid: parse data blocks
Just parse the tag for now.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-27 07:56:09 +00:00
Simon Ser
3b8816ba3f displayid: add logging helpers
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-27 07:56:09 +00:00
Simon Ser
186e78c128 displayid: validate checksum
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-27 07:56:09 +00:00
Simon Ser
ceabc884fd displayid: parse product type
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-27 07:56:09 +00:00
Simon Ser
106947ac1f displayid: parse section size
The section size might be smaller than the provided buffer size,
because the buffer might have padding at the end.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-27 07:56:09 +00:00
Sebastian Wick
ef67125056 edid: add support for Color Management Data descriptors
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
2022-09-26 21:51:58 +02:00
Simon Ser
28beee232c edid: parse established timings III
This display descriptor contains a bitfield indicating support for
DMT timings.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-26 09:18:59 +02:00
Simon Ser
b89910ef4e test/data: add goldstar-ite6604-hdmi
It contains established timings III.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-17 09:09:59 +02:00
Simon Ser
df676bef3a di-edid-decode: fix inverted text for analog video setup
The texts and cases are inverted here.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-17 09:07:20 +02:00
Simon Ser
29dd7c1e17 test/data: add acer-p1276
We don't have any analog display EDID in our tests. Increase our
test coverage by including one.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-17 09:07:05 +02:00
Simon Ser
047e8bb305 edid: expose struct di_dmt_timing
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>
2022-09-17 06:53:39 +00:00
Simon Ser
ad4c9b467c dmt: add public header
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-17 06:53:39 +00:00
Simon Ser
4ead11c64b dmt: add more timing info
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-17 06:53:39 +00:00
Sebastian Wick
cc7597d9cc edid: add support for color point descriptors
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
2022-09-15 16:26:03 +02:00
Simon Ser
a382b96645 cta: add missing <stdint.h> include in public header
cta.h:246 uses uint8_t but we never include <stdint.h>.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-14 12:03:36 +00:00
Simon Ser
6f7dc0bcf7 Add safety assertions when inserting into array
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>
2022-09-12 06:21:12 +00:00
Simon Ser
fbec9839fa cta: add EDID_CTA_MAX_DATA_BLOCKS
Use a constant for the max number of data blocks, with a comment
explaining the reasoning.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-12 06:21:12 +00:00
Simon Ser
2fc4aedee7 ci: simplify ci-templates include
Turns out we can include multiple files with an array instead of
repeating ourselves.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-08 12:19:50 +02:00
Simon Ser
c637a9daf8 edid: parse timing data from CVT range limit descriptor
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-06 09:27:32 +02:00
Simon Ser
7c8bcb09eb edid: parse timing data from secondary GTF range limit descriptor
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-06 09:26:32 +02:00
Simon Ser
df9e7eedaa edid: check padding in range limits descriptor
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-06 09:26:00 +02:00
Simon Ser
7e0b8c1af9 test/data: add viewsonic-vp2768-dp
It contains a CVT range limits descriptor.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-06 09:25:57 +02:00
Simon Ser
da89d95268 test/data: add msi-mag321curv-dp
It contains a GTF secondary range limit descriptor.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-06 09:25:12 +02:00
Simon Ser
407b309904 cta: add support for video capability data block
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-05 18:11:56 +00:00
Simon Ser
edb952756d cta: rename di_edid_cta_flags.underscan to it_underscan
Make it clear this is only about IT video formats.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-05 18:11:56 +00:00
Simon Ser
7a6d694b1a Add basic support for DisplayID in EDID extension blocks
Establish the new headers and structs, and just parse the
version/revision for now.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-02 06:42:06 +00:00
Simon Ser
789a927569 test/data: add apple-xdr-dp
Contains DisplayID extension blocks.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-09-02 06:42:06 +00:00
Simon Ser
0c8673af02 cta: add support for video data blocks
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>
2022-08-31 13:18:34 +00:00
Sebastian Wick
9806eb214e cta: make HDR eotfs and descriptors directly accessible from the block
Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
2022-08-30 15:17:57 +02:00
Sebastian Wick
44e1810f2b edid: split the detailed timing signal union into separate structs
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>
2022-08-30 12:24:46 +02:00
Simon Ser
4e5df43659 test: rename EDID files with .edid filename extension
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>
2022-08-29 15:23:41 +02:00
Simon Ser
37a6186445 test/edid-decode-diff: do not fail if .diff doesn't exist
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>
2022-08-29 13:59:52 +02:00
Simon Ser
93b0fd18de edid: add support for standard timings descriptor
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-08-29 11:54:48 +00:00
Simon Ser
1911c0be81 edid: refactor parse_standard_timing() with an output param
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>
2022-08-29 11:54:48 +00:00
Simon Ser
355a3aca80 cta: parse HDR static metadata blocks
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-08-29 13:52:50 +02:00
Simon Ser
f5f8371965 edid: add prefix to range limits failure messages
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>
2022-08-29 10:19:48 +00:00
Andrea Pappacoda
2d889cead4
build: stop using meson's implicit setup command
It will be deprecated in the next release, 0.64.0. See
https://github.com/mesonbuild/meson/pull/10701

Signed-off-by: Andrea Pappacoda <andrea@pappacoda.it>
2022-08-23 23:14:31 +02:00