[Spice-devel] [PATCH qxl-wddm-dod v2 09/25] Fix interrupt mask
Sameeh Jubran
sameeh at daynix.com
Mon Sep 5 08:34:06 UTC 2016
Signed-off-by: Sameeh Jubran <sameeh at daynix.com>
---
qxldod/QxlDod.cpp | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index 15037b3..d990359 100755
--- a/qxldod/QxlDod.cpp
+++ b/qxldod/QxlDod.cpp
@@ -4,6 +4,11 @@
#pragma code_seg(push)
#pragma code_seg()
+
+#define WIN_QXL_INT_MASK ((QXL_INTERRUPT_DISPLAY) | \
+ (QXL_INTERRUPT_CURSOR) | \
+ (QXL_INTERRUPT_IO_CMD))
+
// BEGIN: Non-Paged Code
// Bit is 1 from Idx to end of byte, with bit count starting at high order
@@ -3347,7 +3352,7 @@ NTSTATUS QxlDevice::QxlInit(DXGK_DISPLAY_INFORMATION* pDispInfo)
WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_RESET), 0);
CreateRings();
- m_RamHdr->int_mask = ~0;
+ m_RamHdr->int_mask = WIN_QXL_INT_MASK;
CreateMemSlots();
InitDeviceMemoryResources();
return Status;
@@ -4551,10 +4556,11 @@ BOOLEAN QxlDevice::InterruptRoutine(_In_ PDXGKRNL_INTERFACE pDxgkInterface, _In_
pDxgkInterface->DxgkCbNotifyInterrupt(pDxgkInterface->DeviceHandle,¬ifyInt);
if (!pDxgkInterface->DxgkCbQueueDpc(pDxgkInterface->DeviceHandle)) {
- m_RamHdr->int_mask = ~0;
+ m_RamHdr->int_mask = WIN_QXL_INT_MASK;
WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 0);
DbgPrint(TRACE_LEVEL_FATAL, ("---> %s DxgkCbQueueDpc failed\n", __FUNCTION__));
}
+ DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
return TRUE;
}
@@ -4586,7 +4592,7 @@ VOID QxlDevice::DpcRoutine(PVOID ptr)
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s m_IoCmdEvent\n", __FUNCTION__));
KeSetEvent (&m_IoCmdEvent, IO_NO_INCREMENT, FALSE);
}
- m_RamHdr->int_mask = ~0;
+ m_RamHdr->int_mask = WIN_QXL_INT_MASK;
WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 0);
DbgPrint(TRACE_LEVEL_INFORMATION, ("<--- %s\n", __FUNCTION__));
--
2.7.0.windows.1
More information about the Spice-devel
mailing list