xf86-video-intel: 2 commits - src/intel_driver.c src/intel.h
Chris Wilson
ickle at kemper.freedesktop.org
Tue Jul 13 02:51:45 PDT 2010
src/intel.h | 3 +++
src/intel_driver.c | 39 ++++++++++++++++++---------------------
2 files changed, 21 insertions(+), 21 deletions(-)
New commits:
commit 2267e5928bd90a6997970584462bd97df447e819
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Jul 13 10:36:34 2010 +0100
Workaround a broken container_of define in list.h
diff --git a/src/intel.h b/src/intel.h
index 26cb96a..01291a0 100644
--- a/src/intel.h
+++ b/src/intel.h
@@ -130,6 +130,9 @@ list_is_empty(struct list *head)
}
#endif
+/* XXX work around a broken define in list.h currently [ickle 20100713] */
+#undef container_of
+
#ifndef container_of
#define container_of(ptr, type, member) \
((type *)((char *)(ptr) - (char *) &((type *)0)->member))
commit 798c3a5fc6e3d44c9b94e6bc4e72385a10939f52
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Jul 13 10:30:33 2010 +0100
Teardown the bufmgr on shutdown as well.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_driver.c b/src/intel_driver.c
index c02b004..7761ccf 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -445,43 +445,32 @@ static void intel_close_drm_master(intel_screen_private *intel)
}
}
-static void intel_init_bufmgr(ScrnInfoPtr scrn)
+static int intel_init_bufmgr(intel_screen_private *intel)
{
- intel_screen_private *intel = intel_get_screen_private(scrn);
int batch_size;
- if (intel->bufmgr)
- return;
-
batch_size = 4096 * 4;
-
- /* The 865 has issues with larger-than-page-sized batch buffers. */
if (IS_I865G(intel))
+ /* The 865 has issues with larger-than-page-sized batch buffers. */
batch_size = 4096;
intel->bufmgr = drm_intel_bufmgr_gem_init(intel->drmSubFD, batch_size);
+ if (!intel->bufmgr)
+ return FALSE;
+
drm_intel_bufmgr_gem_enable_reuse(intel->bufmgr);
drm_intel_bufmgr_gem_enable_fenced_relocs(intel->bufmgr);
list_init(&intel->batch_pixmaps);
list_init(&intel->flush_pixmaps);
list_init(&intel->in_flight);
+
+ return TRUE;
}
-static Bool I830DrmModeInit(ScrnInfoPtr scrn)
+static void intel_bufmgr_fini(intel_screen_private *intel)
{
- intel_screen_private *intel = intel_get_screen_private(scrn);
-
- intel_init_bufmgr(scrn);
-
- if (drmmode_pre_init(scrn, intel->drmSubFD, intel->cpp) == FALSE) {
- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
- "Kernel modesetting setup failed\n");
- PreInitCleanup(scrn);
- return FALSE;
- }
-
- return TRUE;
+ drm_intel_bufmgr_destroy(intel->bufmgr);
}
static void I830XvInit(ScrnInfoPtr scrn)
@@ -605,8 +594,15 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
I830XvInit(scrn);
- if (!I830DrmModeInit(scrn))
+ if (!intel_init_bufmgr(intel)) {
+ PreInitCleanup(scrn);
return FALSE;
+ }
+
+ if (!drmmode_pre_init(scrn, intel->drmSubFD, intel->cpp)) {
+ PreInitCleanup(scrn);
+ return FALSE;
+ }
if (!xf86SetGamma(scrn, zeros)) {
PreInitCleanup(scrn);
@@ -1035,6 +1031,7 @@ static void I830FreeScreen(int scrnIndex, int flags)
if (intel) {
drmmode_fini(intel);
intel_close_drm_master(intel);
+ intel_bufmgr_fini(intel);
free(intel);
scrn->driverPrivate = NULL;
More information about the xorg-commit
mailing list