number of preallocated slots. We should really make this dynamic - but
I don't think this ever caused a problem so it's more or less academic.
A. Avoid that *SyncStart starts before *BlankStart. If *BlankStart >
*SyncStart it is made = *SyncStart and its width is made maximal but such
that the blank does not exceed *Total. Since the Sync width has the
same restrictions as the Blank width monitors should still be able to
clamp after the sync pulse. B. Over time mode validation has become
inconsistent when people started to add additional features to the mode
validation. One such feature is that the mode->Crtc* values have been
(ab)used to allow the driver ValidMode() function to pass driver
normalized timing values back to the validation function. The
introduction of these features made the code less readable and created
numerous possibly unintended side effects in the validation semantics.
I've attempted to consolidate these changes making the code more
consistent and eliminating a number of side effects. This should not
cause problems for the majority of drivers, still it should receive
testing - especially with ATi Mach64 and Radeon code. (Bugzilla #3325).