Fix black screen after resume from hibernate.
authorBob Long <blong@vmware.com>
Fri, 22 May 2009 22:48:55 +0000 (15:48 -0700)
committerPhilip Langdale <philipl@fido2.homeip.net>
Fri, 22 May 2009 22:48:55 +0000 (15:48 -0700)
commitd10841493c4707f23f928d7580bc5bddb51d22a6
treed614919c0b20f05cfa8f3c6e56c0e196d38dcbc5
parentb4ea3052f843c2d1c285252cbf1bed2f4857f96c
Fix black screen after resume from hibernate.

The root cause for the black screen and system lock up is
caused by not recovering the SVGA ID register after hibernation.
Incorrect ID register value will invalidate the FIFO memory start
register, and driver will not retrieve correct FIFO memory start
address and the busy read of svga FIFO sync register will lock up
the whole system.

Currently SVGA Xorg driver does not have a kernel module to handle
the power management event, but Xorg will call driver provided
LeaveVT before shutting down system and call EnterVT after resuming
system from hibernation, so these two callback functions are good
entry points to save and restore the ID register value. This patch
saves the ID register value in LeaveVT and restores the value to
SVGA ID register in EnterVT.
src/vmware.c
src/vmware.h