summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2011-08-03 16:26:04 +0300
committerAlon Levy <alevy@redhat.com>2011-08-03 17:52:04 +0300
commitd9eb3203bdae1e955ef9d444928f3d7b4ed4c86c (patch)
tree46d04e857d504b4b15e9c633712f71c4ad937a89
parent3969e0b891233c00839bdad592dd88f6ef160ff5 (diff)
miniport: fix broken support for revision 20.8.1
RHBZ: 727886 The io port range test was too large, requiring support for the new io ports introduced in revision 3. The purpose was just the opposite, to only require the revision 2 range, and use the revision 3 range only if the device claims revision 3. Fix by checking that either rev == 2 && io range contains 2 rev > 2 && io range contains 3
-rw-r--r--miniport/qxl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/miniport/qxl.c b/miniport/qxl.c
index 4271104..40e8379 100644
--- a/miniport/qxl.c
+++ b/miniport/qxl.c
@@ -180,7 +180,10 @@ VP_STATUS InitIO(QXLExtension *dev, PVIDEO_ACCESS_RANGE range)
PAGED_CODE();
DEBUG_PRINT((dev, 0, "%s\n", __FUNCTION__));
- if (range->RangeLength < QXL_IO_RANGE_SIZE
+ if ((dev->pci_revision == QXL_REVISION_STABLE_V06 &&
+ range->RangeLength < QXL_IO_DESTROY_ALL_SURFACES + 1)
+ || (dev->pci_revision > QXL_REVISION_STABLE_V06 &&
+ range->RangeLength < QXL_IO_FLUSH_RELEASE + 1)
|| !range->RangeInIoSpace) {
DEBUG_PRINT((dev, 0, "%s: bad io range\n", __FUNCTION__));
return ERROR_INVALID_DATA;