summaryrefslogtreecommitdiff
path: root/shared-core
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2007-03-27 18:01:31 +1000
committerDave Airlie <airlied@linux.ie>2007-03-27 18:01:31 +1000
commit81b811da376fed5363f25e82e5285455df3e8157 (patch)
treecc4122d0ce5c8998fc994c62acb133411baa0172 /shared-core
parent72a1190f6d9acea5fb789bec706c842604954049 (diff)
drm/i915: set the bo up at firstopen time not after DMA init
This is required to use TTM to allocate the ring buffer.
Diffstat (limited to 'shared-core')
-rw-r--r--shared-core/i915_dma.c11
-rw-r--r--shared-core/i915_drv.h2
2 files changed, 9 insertions, 4 deletions
diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c
index c8b7e588..9053f544 100644
--- a/shared-core/i915_dma.c
+++ b/shared-core/i915_dma.c
@@ -195,9 +195,6 @@ static int i915_initialize(drm_device_t * dev,
I915_WRITE(0x02080, dev_priv->dma_status_page);
DRM_DEBUG("Enabled hardware status page\n");
dev->dev_private = (void *)dev_priv;
-#ifdef I915_HAVE_BUFFER
- drm_bo_driver_init(dev);
-#endif
return 0;
}
@@ -949,3 +946,11 @@ int i915_driver_device_is_agp(drm_device_t * dev)
{
return 1;
}
+
+int i915_driver_firstopen(struct drm_device *dev)
+{
+#ifdef I915_HAVE_BUFFER
+ drm_bo_driver_init(dev);
+#endif
+ return 0;
+}
diff --git a/shared-core/i915_drv.h b/shared-core/i915_drv.h
index 662ffad6..e8a7be29 100644
--- a/shared-core/i915_drv.h
+++ b/shared-core/i915_drv.h
@@ -153,7 +153,7 @@ extern long i915_compat_ioctl(struct file *filp, unsigned int cmd,
extern void i915_emit_breadcrumb(drm_device_t *dev);
extern void i915_dispatch_flip(drm_device_t * dev, int pipes, int sync);
extern int i915_emit_mi_flush(drm_device_t *dev, uint32_t flush);
-
+extern int i915_driver_firstopen(struct drm_device *dev);
/* i915_irq.c */
extern int i915_irq_emit(DRM_IOCTL_ARGS);