summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2013-07-29 15:23:50 +0300
committerAlon Levy <alevy@redhat.com>2013-07-30 16:29:59 +0300
commit06e3a524af721ba5fdc12bbf58c0b6749103319d (patch)
tree2f4bfa102ea04c501b636cef58f7accdea786689
parentdfa00f06737ddbdc0621eee17d043da976e4cb4f (diff)
miniport: use a limited interrupt mask
-rw-r--r--xddm/miniport/qxl.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/xddm/miniport/qxl.c b/xddm/miniport/qxl.c
index 33efac7..f5d6b48 100644
--- a/xddm/miniport/qxl.c
+++ b/xddm/miniport/qxl.c
@@ -26,6 +26,10 @@
#endif
#include "minimal_snprintf.h"
+#define WIN_QXL_INT_MASK ((QXL_INTERRUPT_DISPLAY) | \
+ (QXL_INTERRUPT_CURSOR) | \
+ (QXL_INTERRUPT_IO_CMD))
+
VP_STATUS FindAdapter(PVOID dev_extension,
PVOID reserved,
PWSTR arg_str,
@@ -828,7 +832,7 @@ void HWReset(QXLExtension *dev_ext);
* when returning from sleep we don't want to do a redundant QXL_IO_RESET */
static void ResetDeviceWithoutIO(QXLExtension *dev_ext)
{
- dev_ext->ram_header->int_mask = ~0;
+ dev_ext->ram_header->int_mask = WIN_QXL_INT_MASK;
CreateMemSlots(dev_ext);
}
@@ -1305,8 +1309,7 @@ VOID InterruptCallback(PVOID dev_extension, PVOID Context)
if (pending & QXL_INTERRUPT_IO_CMD) {
VideoPortSetEvent(dev_ext, dev_ext->io_cmd_event);
}
-
- dev_ext->ram_header->int_mask = ~0;
+ dev_ext->ram_header->int_mask = WIN_QXL_INT_MASK;
VideoPortWritePortUchar((PUCHAR)dev_ext->io_base + QXL_IO_UPDATE_IRQ, 0);
}
@@ -1322,7 +1325,7 @@ BOOLEAN Interrupt(PVOID dev_extension)
if (!VideoPortQueueDpc(dev_extension, InterruptCallback, NULL)) {
VideoPortLogError(dev_extension, NULL, E_UNEXPECTED, QXLERR_INT_DELIVERY);
- dev_ext->ram_header->int_mask = ~0;
+ dev_ext->ram_header->int_mask = WIN_QXL_INT_MASK;
VideoPortWritePortUchar((PUCHAR)dev_ext->io_base + QXL_IO_UPDATE_IRQ, 0);
}
return TRUE;