summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2008-08-29 09:23:35 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-08-29 09:23:35 -0700
commita1c802e4a0324386cf7370594a46354c89e3b646 (patch)
treea460684984ff5ca86d0e9cac2a83c774c95c8496
parent3733a1b54c95aa378f32577f9e996946e8e8e48c (diff)
parent808b72f81454061c815321e51a9b9f925c4bf786 (diff)
Merge branch 'master' of ssh://git.freedesktop.org/git/xorg/driver/xf86-video-intel
-rw-r--r--src/i830.h3
-rw-r--r--src/i830_display.c3
-rw-r--r--src/i830_driver.c7
-rw-r--r--src/i830_exa.c13
-rw-r--r--uxa/uxa-priv.h4
-rw-r--r--uxa/uxa.c4
6 files changed, 17 insertions, 17 deletions
diff --git a/src/i830.h b/src/i830.h
index 30b0bcff..f0efc4ed 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -934,7 +934,8 @@ i830_wait_ring_idle(ScrnInfoPtr pScrn)
{
I830Ptr pI830 = I830PTR(pScrn);
- I830WaitLpRing(pScrn, pI830->LpRing->mem->size - 8, 0);
+ if (pI830->accel != ACCEL_NONE)
+ I830WaitLpRing(pScrn, pI830->LpRing->mem->size - 8, 0);
}
static inline int i830_fb_compression_supported(I830Ptr pI830)
diff --git a/src/i830_display.c b/src/i830_display.c
index f81847b5..ed49fb0e 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -753,6 +753,9 @@ static void i830_modeset_ctl(xf86CrtcPtr crtc, int pre)
I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
struct drm_modeset_ctl modeset;
+ if (!pI830->directRenderingEnabled)
+ return;
+
modeset.crtc = intel_crtc->plane;
/*
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 2ce8942c..afce7188 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3786,9 +3786,6 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
I830LeaveVT(scrnIndex, 0);
}
- dri_bufmgr_destroy(pI830->bufmgr);
- pI830->bufmgr = NULL;
-
if (pI830->devicesTimer)
TimerCancel(pI830->devicesTimer);
pI830->devicesTimer = NULL;
@@ -3828,6 +3825,10 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
xf86_cursors_fini (pScreen);
i830_allocator_fini(pScrn);
+
+ dri_bufmgr_destroy(pI830->bufmgr);
+ pI830->bufmgr = NULL;
+
#ifdef XF86DRI
if (pI830->directRenderingOpen) {
#ifdef DAMAGE
diff --git a/src/i830_exa.c b/src/i830_exa.c
index e73bc36a..fd29df11 100644
--- a/src/i830_exa.c
+++ b/src/i830_exa.c
@@ -465,8 +465,6 @@ i830_transform_is_affine (PictTransformPtr t)
return t->matrix[2][0] == 0 && t->matrix[2][1] == 0;
}
-static DevPrivateKey exa_pixmap_key = &exa_pixmap_key;
-
#ifdef XF86DRM_MODE
static void *
@@ -618,9 +616,6 @@ I830EXAInit(ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
I830Ptr pI830 = I830PTR(pScrn);
- if (!dixRequestPrivate(exa_pixmap_key, 0))
- return FALSE;
-
pI830->EXADriverPtr = exaDriverAlloc();
if (pI830->EXADriverPtr == NULL) {
pI830->accel = ACCEL_NONE;
@@ -731,12 +726,12 @@ I830EXAInit(ScreenPtr pScreen)
return TRUE;
}
-static DevPrivateKey uxa_pixmap_key = &uxa_pixmap_key;
+static int uxa_pixmap_index;
static void
i830_uxa_set_pixmap_bo (PixmapPtr pixmap, dri_bo *bo)
{
- dixSetPrivate(&pixmap->devPrivates, uxa_pixmap_key, bo);
+ dixSetPrivate(&pixmap->devPrivates, &uxa_pixmap_index, bo);
}
dri_bo *
@@ -747,7 +742,7 @@ i830_get_pixmap_bo(PixmapPtr pixmap)
I830Ptr i830 = I830PTR(scrn);
if (i830->accel == ACCEL_UXA) {
- return dixLookupPrivate(&pixmap->devPrivates, uxa_pixmap_key);
+ return dixLookupPrivate(&pixmap->devPrivates, &uxa_pixmap_index);
} else if (i830->accel == ACCEL_EXA) {
struct i830_exa_pixmap_priv *driver_priv =
exaGetPixmapDriverPrivate(pixmap);
@@ -879,7 +874,7 @@ i830_uxa_init (ScreenPtr pScreen)
ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
I830Ptr i830 = I830PTR(scrn);
- if (!dixRequestPrivate(uxa_pixmap_key, 0))
+ if (!dixRequestPrivate(&uxa_pixmap_index, 0))
return FALSE;
i830->uxa_driver = uxa_driver_alloc();
diff --git a/uxa/uxa-priv.h b/uxa/uxa-priv.h
index c50ab3af..13535876 100644
--- a/uxa/uxa-priv.h
+++ b/uxa/uxa-priv.h
@@ -155,8 +155,8 @@ typedef struct {
(PixmapWidthPaddingInfo[d].padRoundUp+1)))
#endif
-extern DevPrivateKey uxa_screen_key;
-#define uxa_get_screen(s) ((uxa_screen_t *)dixLookupPrivate(&(s)->devPrivates, uxa_screen_key))
+extern int uxa_screen_index;
+#define uxa_get_screen(s) ((uxa_screen_t *)dixLookupPrivate(&(s)->devPrivates, &uxa_screen_index))
/** Align an offset to an arbitrary alignment */
#define UXA_ALIGN(offset, align) (((offset) + (align) - 1) - \
diff --git a/uxa/uxa.c b/uxa/uxa.c
index aac3d686..8658406a 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -39,7 +39,7 @@
#include "dixfontstr.h"
#include "uxa.h"
-DevPrivateKey uxa_screen_key = &uxa_screen_key;
+int uxa_screen_index;
/**
* uxa_get_drawable_pixmap() returns a backing pixmap for a given drawable.
@@ -422,7 +422,7 @@ uxa_driver_init(ScreenPtr screen, uxa_driver_t *uxa_driver)
uxa_screen->info = uxa_driver;
- dixSetPrivate(&screen->devPrivates, uxa_screen_key, uxa_screen);
+ dixSetPrivate(&screen->devPrivates, &uxa_screen_index, uxa_screen);
// exaDDXDriverInit(screen);