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>
This is a bit messy because the values depend on various misc flags
defined earlier in the spec, and the meaning changes between EDID 1.3
and 1.4. On top of that edid-decode prints something confusing in the
EDID 1.3 case.
Signed-off-by: Simon Ser <contact@emersion.fr>
The analog/digital flags are left for a future patch.
A join_str() function is introduced in di-edid-decode: upstream
edid-decode uses a comma-separated list with a handful of other
flags.
Signed-off-by: Simon Ser <contact@emersion.fr>
According to table 3.21 note 17, these fields should be set to zero
for some sinks, e.g. front projectors.
edid-decode hides the size from its output if both fields are zero.
Signed-off-by: Simon Ser <contact@emersion.fr>
The motivation is two-fold:
- These were added back when we exposed values outside of the enum
entries. We no longer do that, so these can't be hit.
- The compiler now warns when we are missing an entry from the switch.
Signed-off-by: Simon Ser <contact@emersion.fr>
The first fread call fills our 32 KiB buffer, and then we enter a busy
loop calling fread with zero.
Found via fuzzing with AFL.
Signed-off-by: Simon Ser <contact@emersion.fr>
Upstream edid-decode hides the serial number in this case.
The spec says that it's optional, and set to zero when unused.
Signed-off-by: Simon Ser <contact@emersion.fr>
While this isn't particularly interesting to print, this reduces
the diff between di-edid-decode and edid-decode.
This is not exposed via the low-level EDID library because callers
wouldn't have a use for it.
Signed-off-by: Simon Ser <contact@emersion.fr>
This utility displays low-level EDID information. It uses the same
format as the official edid-decode CLI tool from linuxtv.org. It
will be helpful for testing.
Signed-off-by: Simon Ser <contact@emersion.fr>