On Wed, May 29, 2024 at 4:16 PM Hans Verkuil <hverkuil-cisco@xxxxxxxxx> wrote: > > Hi Sebastian, > > On 29/05/2024 12:02, Sebastian Wick wrote: > > When `Max Stream Count` is zero, the sink does not support multistream > > and thus cannot support NonMixed MS. > > > > An EDID with Max Stream Count = 0 and Non Mixed MS = 1 can be found in > > linuxhw/EDID ./Digital/TCL/TCL5655/1723FF2DC6D1 at commit cff7fe4d44. > > > > Signed-off-by: Sebastian Wick <sebastian.wick@xxxxxxxxxx> > > --- > > parse-cta-block.cpp | 7 ++++--- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > diff --git ./parse-cta-block.cpp ../parse-cta-block.cpp > > index 4d2afc6..7cd7a3a 100644 > > --- ./parse-cta-block.cpp > > +++ ../parse-cta-block.cpp > > @@ -2498,10 +2498,11 @@ static void cta_hdmi_audio_block(const unsigned char *x, unsigned length) > > fail("Empty Data Block with length %u.\n", length); > > return; > > } > > - if (x[0] & 3) > > + if (x[0] & 3) { > > printf(" Max Stream Count: %u\n", (x[0] & 3) + 1); > > - if (x[0] & 4) > > - printf(" Supports MS NonMixed\n"); > > + if (x[0] & 4) > > + printf(" Supports MS NonMixed\n"); > > + } > > I would actually leave this as-is, but instead add a fail() message > if MS NonMixed is set, but Max Stream Count == 0. > > It's really an EDID conformity failure, and it should be reported as such. I'm all for adding a fail() message but I'm afraid our implementation which tries to be compatible with the output here won't have access to the MS NonMixed bit when Max Stream Count == 0. Would this work for you? if (x[0] & 3) { printf(" Max Stream Count: %u\n", (x[0] & 3) + 1); if (x[0] & 4) printf(" Supports MS NonMixed\n"); else fail("NonMixed MS support indicated but MS is unsupported\n"); } > > Regards, > > Hans > > > > > num_descs = x[1] & 7; > > if (num_descs == 0) >