[Spice-devel] [PATCH qxl-wddm-dod v2 07/25] On power wake call the init functions before setting the vidpn to black. Otherwise, BSOD.

Frediano Ziglio fziglio at redhat.com
Tue Sep 6 13:18:45 UTC 2016


> Subject: [PATCH qxl-wddm-dod v2 07/25] On power wake call the init functions before setting the vidpn to black.
> Otherwise, BSOD.
> 

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

Frediano

> ---
>  qxldod/QxlDod.cpp | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
> index 1c6e477..fae5c92 100755
> --- a/qxldod/QxlDod.cpp
> +++ b/qxldod/QxlDod.cpp
> @@ -283,12 +283,16 @@ NTSTATUS QxlDod::SetPowerState(_In_  ULONG HardwareUid,
>                                 _In_  DEVICE_POWER_STATE DevicePowerState,
>                                 _In_  POWER_ACTION       ActionType)
>  {
> +    NTSTATUS Status(STATUS_SUCCESS);
>      PAGED_CODE();
>      DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s HardwareUid = 0x%x
>      ActionType = %s DevicePowerState = %s AdapterPowerState = %s\n",
>      __FUNCTION__, HardwareUid, DbgPowerActionString(ActionType),
>      DbgDevicePowerString(DevicePowerState),
>      DbgDevicePowerString(m_AdapterPowerState)));
>  
>      if (HardwareUid == DISPLAY_ADAPTER_HW_ID)
>      {
> -        if (DevicePowerState == PowerDeviceD0)
> +        // There is nothing to do to specifically power up/down the display
> adapter
> +        Status = m_pHWDevice->SetPowerState(DevicePowerState,
> &(m_CurrentModes[0].DispInfo));
> +
> +        if (NT_SUCCESS(Status) && DevicePowerState == PowerDeviceD0)
>          {
>  
>              // When returning from D3 the device visibility defined to be
>              off for all targets
> @@ -299,17 +303,13 @@ NTSTATUS QxlDod::SetPowerState(_In_  ULONG HardwareUid,
>                  Visibility.Visible = FALSE;
>                  SetVidPnSourceVisibility(&Visibility);
>              }
> +            // Store new adapter power state
> +            m_AdapterPowerState = DevicePowerState;
>          }
> -
> -        // Store new adapter power state
> -        m_AdapterPowerState = DevicePowerState;
> -
> -        // There is nothing to do to specifically power up/down the display
> adapter
> -        return m_pHWDevice->SetPowerState(DevicePowerState,
> &(m_CurrentModes[0].DispInfo));
>      }
>      // TODO: This is where the specified monitor should be powered up/down
>      
> -    return STATUS_SUCCESS;
> +    return Status;
>  }
>  
>  NTSTATUS QxlDod::QueryChildRelations(_Out_writes_bytes_(ChildRelationsSize)
>  DXGK_CHILD_DESCRIPTOR* pChildRelations,



More information about the Spice-devel mailing list