On 22/09/10 21:59, Adam Jackson wrote: > On Tue, 2010-09-21 at 23:02 +0100, Sam Tygier wrote: >> Currently an invalid EDID extension will cause the whole EDID to be >> considered invalid. Instead just drop the extension, and return the >> valid base block. The base block is modified to not claim to have >> extensions, and update the checksum. > > This does not appear to be what your patch does. I mean, yes, if > there's only one extension block, that's what it does, but if there's > more than one...
I could modify it to skip the only invalid extension blocks. As my monitor only claims to have 1 extension block, i could not test this properly. I also spotted that I should make sure that my fix is not run when the base block fails the checksum 4 times. May it should be put within the for loop, replacing "goto carp;". >> For my EIZO S2242W the base block is fine, but the extension block is >> all zeros. Without this patch I get no X and no VTs. > > I suspect what's actually happening there is that we're failing to get > the extension block, not that it's being returned as zeros. Could this be fixed? Anything I could try? > Also, we shouldn't be converting "checksum failure" to "display > disconnected". That's the real bug here. In my case it would still need to return base block, as that correctly contains all the modes and stuff. Thanks Sam