[Spice-devel] [PATCH qxl-wddm-dod v2 09/25] Fix interrupt mask

Frediano Ziglio fziglio at redhat.com
Tue Sep 6 13:19:40 UTC 2016


> 
> Signed-off-by: Sameeh Jubran <sameeh at daynix.com>

Acked-by: Frediano Ziglio <fziglio at redhat.com>

Frediano

> ---
>  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,&notifyInt);
>      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__));



More information about the Spice-devel mailing list