This is an automatic generated email to let you know that the following patch 
were queued:

Subject: edid-decode: DisplayID: type 10: support alternate min vblank
Author:  Hans Verkuil <hverkuil-ci...@xs4all.nl>
Date:    Wed Jul 3 13:24:02 2024 +0200

Add support for CVT 2.1 Alternate Minimum VBlank.

Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 parse-displayid-block.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

---

diff --git a/parse-displayid-block.cpp b/parse-displayid-block.cpp
index f11dd8c5fef8..2f68a0ed76c5 100644
--- a/parse-displayid-block.cpp
+++ b/parse-displayid-block.cpp
@@ -1511,7 +1511,9 @@ void edid_state::parse_displayid_type_10_timing(const 
unsigned char *x,
 
        unsigned rb = t.rb;
        unsigned rb_h_blank = rb == RB_CVT_V3 ? 80 : 0;
-       unsigned rb_v_blank = 460;
+       bool alt_min_vblank = sz >= 8 ? (x[7] & 1) : 0;
+       unsigned rb_v_min_blank = alt_min_vblank ? 300 : 460;
+       unsigned rb_v_blank = rb_v_min_blank;
        bool early_vsync_rqd = false;
 
        if (x[0] & 0x10) {
@@ -1553,9 +1555,9 @@ void edid_state::parse_displayid_type_10_timing(const 
unsigned char *x,
                        if (delta_hblank)
                                s += ", delta-hblank=" + 
std::to_string(delta_hblank);
 
-                       rb_v_blank += ((x[6] >> 5) & 7) * 35;
-                       if (rb_v_blank > 460)
-                               s += ", add-vblank=" + 
std::to_string(rb_v_blank - 460);
+                       rb_v_blank += ((x[6] >> 5) & 7) * (alt_min_vblank ? 20 
: 35);
+                       if (rb_v_blank > rb_v_min_blank)
+                               s += ", add-vblank=" + 
std::to_string(rb_v_blank - rb_v_min_blank);
                } else {
                        if (x[6] & 0xe0)
                                fail("Additional_Vertical_Blank_Time must be 
0.\n");

Reply via email to