miniport/qxl.c: fail a custom mode that would not fit memory (RHBZ#863488)

Signed-off-by: Alon Levy <alevy@redhat.com>
display: apply the fix in fc314927bc48835e to Alpha Bitmaps

rhbz#968050

In contrast to Microsoft Msdn documentation, the iUniq of a SURFOBJ doesn't
always change when the surface changes. However, it seems that the
iUniq of the associated color_trans (XLATEOBJ) changes, while its
flXlate=XO_TRIVIAL. Since we tried to retrieve the alpha bitmap key
only by the surface iUniq, we fetched the wrong bitmap, and it looked
like parts of the screen haven't been rendered.

The patch modifies QXLGetAlphaBitmap so that it will use GetCacheImage
instead of duplicating its code. GetCacheImage was already fixed in
fc314927bc48835e to combine the iUniq of the surace and the
color_trans.
miniport: disable surfaces by default

Change the registry checking logic we already have, instead of enabling
surfaces by default we now disable surfaces by default. They can be
enabled without driver change by creating a registry key name
"SurfacesEnabled" of type DWORD with any value under the adapter key.

To find the adapter key, one way is looking for the key under which
there is a value of name "QxlDeviceID" after a successfull startup of
the qxl driver.

RHBZ: 985408
xddm/miniport/qxl.inf: bump version and touch date

We haven't done this for most any change. Perhaps we should do this? No
idea what the x.y.z.w convention is, so I made the most minor change
right now. But the date is the important bit.
display: add punting where it is missing
display/driver: DrvDeleteDeviceBitmap: log if pdev disabled

Alternative is to leak, and this happens regularely. Perhaps we should
be keeping track and destroying these surfaces later (in case no reset
happens in the middle, which destroys all off screen surfaces anyway).
miniport: use a limited interrupt mask
miniport: halve QXL_IO_UPDATE_IRQ calls

QXL_IO_UPDATE_IRQ causes the device to check int_mask and int_pending
and issue an interrupt if that is required. Since we just zeroed
int_mask, no interrupt will ever be issued. Since we issue another
QXL_IO_UPDATE_IRQ in the interrupt routine DPC right after resetting
int_mask any pending interrupt will be raised then.

RHBZ: 856246
Revert "miniport: halve QXL_IO_UPDATE_IRQ calls"

This reverts commit 49feefa95d3595f04355c4aed53ec5bf26551046.
The patch causes the display to get stuck. Till we understand exactly
why, I'm reverting it.