On Wed, 2010-09-22 at 22:42 +0100, Sam Tygier wrote:
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;".
Yeah, I hate to just drop extension blocks, but it's better than the alternative. They're optional for a reason I suppose.
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?
Depends on what your driver is, I suspect. Did it ever work?
- ajax