summaryrefslogtreecommitdiff
path: root/drivers/video/savage
diff options
context:
space:
mode:
authorAntonino A. Daplas <adaplas@gmail.com>2007-03-16 13:38:18 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-16 19:25:04 -0700
commit5b600464f0514efd49d24182daf0e9d62cf8bb8f (patch)
tree964c80d8b8e27934b18ff6639753fcd0bfab88cf /drivers/video/savage
parente52e15d3c153b88c4536cf18214fac18481c888a (diff)
[PATCH] savagefb: Fix black screen on load in Savage IX
This is a hack that seems to kick start the 2D engine of the Savage IX in some Toshiba laptops. Without this, the laptop starts with a black screen and occasionally crashes X. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/savage')
-rw-r--r--drivers/video/savage/savagefb_driver.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/savage/savagefb_driver.c b/drivers/video/savage/savagefb_driver.c
index 4afa30522fdb..d952bf3199a6 100644
--- a/drivers/video/savage/savagefb_driver.c
+++ b/drivers/video/savage/savagefb_driver.c
@@ -384,6 +384,19 @@ SavageSetup2DEngine(struct savagefb_par *par)
BCI_SEND(0);
BCI_SEND(BCI_CMD_SETREG | (1 << 16) | BCI_GBD2);
BCI_SEND(GlobalBitmapDescriptor);
+
+ /*
+ * I don't know why, sending this twice fixes the intial black screen,
+ * prevents X from crashing at least in Toshiba laptops with SavageIX.
+ * --Tony
+ */
+ par->bci_ptr = 0;
+ par->SavageWaitFifo(par, 4);
+
+ BCI_SEND(BCI_CMD_SETREG | (1 << 16) | BCI_GBD1);
+ BCI_SEND(0);
+ BCI_SEND(BCI_CMD_SETREG | (1 << 16) | BCI_GBD2);
+ BCI_SEND(GlobalBitmapDescriptor);
}
static void savagefb_set_clip(struct fb_info *info)