summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/i830_driver.c12
-rw-r--r--uxa/uxa.c11
-rw-r--r--uxa/uxa.h1
3 files changed, 15 insertions, 9 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index e5d6e69f..40ca89f6 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2682,11 +2682,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
xf86SetBlackWhitePixels(screen);
- miInitializeBackingStore(screen);
- xf86SetBackingStore(screen);
- xf86SetSilkenMouse(screen);
- miDCInitialize(screen, xf86GetPointerScreenFuncs());
-
if (!I830AccelInit(screen)) {
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
"Hardware acceleration initialization failed\n");
@@ -2701,6 +2696,11 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
} else
intel->batch_flush_notify = i830_batch_flush_notify;
+ miInitializeBackingStore(screen);
+ xf86SetBackingStore(screen);
+ xf86SetSilkenMouse(screen);
+ miDCInitialize(screen, xf86GetPointerScreenFuncs());
+
xf86DrvMsg(scrn->scrnIndex, X_INFO, "Initializing HW Cursor\n");
if (!I830CursorInit(screen))
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
@@ -2779,7 +2779,7 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
intel->closing = FALSE;
intel->suspended = FALSE;
- return TRUE;
+ return uxa_resources_init(screen);
}
static void i830AdjustFrame(int scrnIndex, int x, int y, int flags)
diff --git a/uxa/uxa.c b/uxa/uxa.c
index 19c6a2d1..a48c3e13 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -552,9 +552,6 @@ Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver)
ShmRegisterFuncs(screen, &uxa_shm_funcs);
#endif
- if (!uxa_glyphs_init(screen))
- return FALSE;
-
LogMessage(X_INFO,
"UXA(%d): Driver registered support for the following"
" operations:\n", screen->myNum);
@@ -575,6 +572,14 @@ Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver)
return TRUE;
}
+Bool uxa_resources_init(ScreenPtr screen)
+{
+ if (!uxa_glyphs_init(screen))
+ return FALSE;
+
+ return TRUE;
+}
+
/**
* uxa_driver_fini tears down UXA on a given screen.
*
diff --git a/uxa/uxa.h b/uxa/uxa.h
index 23f9465b..efadfdaa 100644
--- a/uxa/uxa.h
+++ b/uxa/uxa.h
@@ -558,6 +558,7 @@ typedef struct _UxaDriver {
uxa_driver_t *uxa_driver_alloc(void);
Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver);
+Bool uxa_resources_init(ScreenPtr screen);
void uxa_driver_fini(ScreenPtr pScreen);