kms: fix problem with multiple displays

Previously, by trying to re-use the fb creation in _resize(), we'd end
up with a call back into _set_mode_major() with a bogus (all zero's)
mode.  Which results in trying to set mode 0x0@0 which results in
bad things.

The clocks react badly when trying to set them to 0Hz, so we need a bit
of protection in the kernel for this.  But we should get rid of the
bogus modeset in DDX as well (which this patch does).

Signed-off-by: Rob Clark <robdclark@gmail.com>
make sure scanout has a legit stride

The gpu wants pixmaps (including scanout) with width aligned to 32
pixels.  We calculate the correct pitch when allocating the scanout
buffer (so the buffer is the correct size), but nothing was updating
scanout pixmap's pitch, resulting in gpu trying to blit to the wrong
places.

Signed-off-by: Rob Clark <robdclark@gmail.com>