This is an automatic generated email to let you know that the following patch were queued:
Subject: edid-decode: add initial support for DisplayID 2.1 ARVR DBs Author: Hans Verkuil <hverkuil-ci...@xs4all.nl> Date: Wed Jul 3 09:43:47 2024 +0200 For some reason I missed that DisplayID 2.1 added two new Data Blocks. Add initial support for these, but they still need to be parsed. Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl> edid-decode.h | 2 ++ parse-displayid-block.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) --- diff --git a/edid-decode.h b/edid-decode.h index d2623910c9fe..126647cd8a5b 100644 --- a/edid-decode.h +++ b/edid-decode.h @@ -465,6 +465,8 @@ struct edid_state { void parse_displayid_dynamic_video_timings_range_limits(const unsigned char *x); void parse_displayid_ContainerID(const unsigned char *x); void parse_displayid_adaptive_sync(const unsigned char *x); + void parse_displayid_arvr_hmd(const unsigned char *x); + void parse_displayid_arvr_layer(const unsigned char *x); void parse_displayid_type_10_timing(const unsigned char *x, unsigned sz, bool is_cta = false); void preparse_displayid_block(unsigned char *x); diff --git a/parse-displayid-block.cpp b/parse-displayid-block.cpp index 59ff8b72cdf6..74b3287eb0af 100644 --- a/parse-displayid-block.cpp +++ b/parse-displayid-block.cpp @@ -1448,6 +1448,30 @@ void edid_state::parse_displayid_adaptive_sync(const unsigned char *x) } } +// tag 0x2c + +void edid_state::parse_displayid_arvr_hmd(const unsigned char *x) +{ + check_displayid_datablock_revision(x[1]); + + if (!check_displayid_datablock_length(x, 77, 77)) + return; + + // TODO: parse the DB +} + +// tag 0x2d + +void edid_state::parse_displayid_arvr_layer(const unsigned char *x) +{ + check_displayid_datablock_revision(x[1]); + + if (!check_displayid_datablock_length(x, 25, 25)) + return; + + // TODO: parse the DB +} + // tag 0x32 void edid_state::parse_displayid_type_10_timing(const unsigned char *x, @@ -1818,6 +1842,8 @@ unsigned edid_state::displayid_block(const unsigned version, const unsigned char case 0x28: data_block = "Tiled Display Topology Data Block (" + utohex(tag) + ")"; break; case 0x29: data_block = "ContainerID Data Block"; break; case 0x2b: data_block = "Adaptive Sync Data Block"; break; + case 0x2c: data_block = "ARVR_HMD Data Block"; break; + case 0x2d: data_block = "ARVR_Layer Data Block"; break; case 0x32: data_block = "Video Timing Modes Type 10 - Formula-based Timings Data Block"; break; // 0x2a .. 0x7d RESERVED for Additional VESA-defined Data Blocks case 0x7e: // DisplayID 2.0 @@ -1994,6 +2020,8 @@ unsigned edid_state::displayid_block(const unsigned version, const unsigned char case 0x28: parse_displayid_tiled_display_topology(x, true); break; case 0x29: parse_displayid_ContainerID(x); break; case 0x2b: parse_displayid_adaptive_sync(x); break; + case 0x2c: parse_displayid_arvr_hmd(x); break; + case 0x2d: parse_displayid_arvr_layer(x); break; case 0x32: { unsigned sz = 6 + ((x[1] & 0x70) >> 4);