summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyu.z.wang@intel.com>2008-01-25 17:17:07 +0800
committerZhenyu Wang <zhenyu.z.wang@intel.com>2008-01-25 17:17:07 +0800
commitae833b82867a14c82ab8054cd0e4e4baaa908bc1 (patch)
treeb1ed144d4fa27051e30bcda285775f4e85b9cd71
parent8661ef9db6a01b3d604b8e55c0e494adc50cb503 (diff)
parent6bf53eb48f40ad0c8ea9679ee634447410821b4f (diff)
downloadxorg-driver-xf86-video-intel-ae833b82867a14c82ab8054cd0e4e4baaa908bc1.tar.gz
Merge branch 'master' into xf86-video-intel-2.2-branch
-rw-r--r--configure.ac4
-rw-r--r--src/i830_driver.c27
2 files changed, 19 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index 334a1f49..e707a1a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -117,7 +117,7 @@ CFLAGS="$save_CFLAGS"
if test x$XSERVER_LIBPCIACCESS = xyes; then
PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10.0])
else
- PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.5.0],
+ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10.0],
have_libpciaccess=yes,
have_libpciaccess=no)
fi
@@ -216,6 +216,8 @@ AC_SUBST([moduledir])
DRIVER_NAME=intel
AC_SUBST([DRIVER_NAME])
+m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.1.3)
XORG_MANPAGE_SECTIONS
XORG_RELEASE_VERSION
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 70774568..dffc6306 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2934,9 +2934,25 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pI830->directRenderingEnabled = I830DRIFinishScreenInit(pScreen);
#endif
+ /* Must force it before EnterVT, so we are in control of VT and
+ * later memory should be bound when allocating, e.g rotate_mem */
+ pScrn->vtSema = TRUE;
+
if (!I830EnterVT(scrnIndex, 0))
return FALSE;
+ pI830->BlockHandler = pScreen->BlockHandler;
+ pScreen->BlockHandler = I830BlockHandler;
+
+ pScreen->SaveScreen = xf86SaveScreen;
+ pI830->CloseScreen = pScreen->CloseScreen;
+ pScreen->CloseScreen = I830CloseScreen;
+ pI830->CreateScreenResources = pScreen->CreateScreenResources;
+ pScreen->CreateScreenResources = i830CreateScreenResources;
+
+ if (!xf86CrtcScreenInit (pScreen))
+ return FALSE;
+
DPRINTF(PFX, "assert( if(!miCreateDefColormap(pScreen)) )\n");
if (!miCreateDefColormap(pScreen))
return FALSE;
@@ -2973,18 +2989,7 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Not available\n");
#endif
- pI830->BlockHandler = pScreen->BlockHandler;
- pScreen->BlockHandler = I830BlockHandler;
- pScreen->SaveScreen = xf86SaveScreen;
- pI830->CloseScreen = pScreen->CloseScreen;
- pScreen->CloseScreen = I830CloseScreen;
- pI830->CreateScreenResources = pScreen->CreateScreenResources;
- pScreen->CreateScreenResources = i830CreateScreenResources;
-
- if (!xf86CrtcScreenInit (pScreen))
- return FALSE;
-
/* Wrap pointer motion to flip touch screen around */
pI830->PointerMoved = pScrn->PointerMoved;
pScrn->PointerMoved = I830PointerMoved;