diff options
author | Alon Levy <alevy@redhat.com> | 2011-08-03 16:26:04 +0300 |
---|---|---|
committer | Alon Levy <alevy@redhat.com> | 2011-08-03 17:52:04 +0300 |
commit | d9eb3203bdae1e955ef9d444928f3d7b4ed4c86c (patch) | |
tree | 46d04e857d504b4b15e9c633712f71c4ad937a89 | |
parent | 3969e0b891233c00839bdad592dd88f6ef160ff5 (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.c | 5 |
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; |