summaryrefslogtreecommitdiff
path: root/shared-core/via_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'shared-core/via_map.c')
-rw-r--r--shared-core/via_map.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/shared-core/via_map.c b/shared-core/via_map.c
index a37f5fd2..83324cfa 100644
--- a/shared-core/via_map.c
+++ b/shared-core/via_map.c
@@ -28,6 +28,7 @@
static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init)
{
drm_via_private_t *dev_priv = dev->dev_private;
+ int ret = 0;
DRM_DEBUG("%s\n", __FUNCTION__);
@@ -64,8 +65,22 @@ static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init)
#ifdef VIA_HAVE_DMABLIT
via_init_dmablit( dev );
#endif
+#ifdef VIA_HAVE_FENCE
+ dev_priv->emit_0_sequence = 0;
+ dev_priv->have_idlelock = 0;
+ spin_lock_init(&dev_priv->fence_lock);
+ init_timer(&dev_priv->fence_timer);
+ dev_priv->fence_timer.function = &via_fence_timer;
+ dev_priv->fence_timer.data = (unsigned long) dev;
+#endif /* VIA_HAVE_FENCE */
dev->dev_private = (void *)dev_priv;
- return 0;
+#ifdef VIA_HAVE_BUFFER
+ ret = drm_bo_driver_init(dev);
+ if (ret)
+ DRM_ERROR("Could not initialize buffer object driver.\n");
+#endif
+ return ret;
+
}
int via_do_cleanup_map(drm_device_t * dev)