summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandy Stutsman <sstutsma@redhat.com>2015-11-02 14:45:19 -0500
committerSandy Stutsman <sstutsma@redhat.com>2015-11-25 11:48:21 -0500
commitfc8e43fb0cb0207d26bf0ff3f2d46e9f52316c47 (patch)
tree3538f7d88fe21284a7e4fabe8aa398fd2d01a07d
parente334f6c2758b4f8f2ca1016a4d6db1bd89252552 (diff)
Remove unused notify present display only interrupt and fix interrupt mask
This interrupt is used for asynchronous present calls. Fixed the interrupt mask to reflect currently used interrupts.
-rwxr-xr-xqxldod/QxlDod.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index 7b60e0c..0ee45a9 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
@@ -3320,7 +3325,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;
@@ -4514,17 +4519,12 @@ BOOLEAN QxlDevice::HWInterruptRoutine(_In_ PDXGKRNL_INTERFACE pDxgkInterface, _I
WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 0);
m_Pending |= m_RamHdr->int_pending;
m_RamHdr->int_pending = 0;
-
- DXGKARGCB_NOTIFY_INTERRUPT_DATA notifyInt;
- notifyInt.InterruptType = DXGK_INTERRUPT_DISPLAYONLY_PRESENT_PROGRESS;
- notifyInt.DisplayOnlyPresentProgress.VidPnSourceId = 0;
-
- pDxgkInterface->DxgkCbNotifyInterrupt(pDxgkInterface->DeviceHandle,&notifyInt);
if (!pDxgkInterface->DxgkCbQueueDpc(pDxgkInterface->DeviceHandle)) {
- m_RamHdr->int_mask = ~0;
- WRITE_PORT_UCHAR((PUCHAR)(m_IoBase + QXL_IO_UPDATE_IRQ), 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;
}
@@ -4554,7 +4554,7 @@ VOID QxlDevice::HWDpcRoutine(PDXGKRNL_INTERFACE pDxgkInterface)
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__));
@@ -4563,7 +4563,7 @@ VOID QxlDevice::HWDpcRoutine(PDXGKRNL_INTERFACE pDxgkInterface)
void QxlDevice::HWResetDevice(void)
{
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
- m_RamHdr->int_mask = ~0;
+ m_RamHdr->int_mask = WIN_QXL_INT_MASK;
WRITE_PORT_UCHAR(m_IoBase + QXL_IO_MEMSLOT_ADD, 0);
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
}