R300+: fixup pixcache flush
[platform/upstream/libdrm.git] / shared-core / via_map.c
index 83324cf..5493436 100644 (file)
 #include "via_drm.h"
 #include "via_drv.h"
 
-static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init)
+static int via_do_init_map(struct drm_device * dev, drm_via_init_t * init)
 {
        drm_via_private_t *dev_priv = dev->dev_private;
        int ret = 0;
 
-       DRM_DEBUG("%s\n", __FUNCTION__);
+       DRM_DEBUG("\n");
 
-       DRM_GETSAREA();
+       dev_priv->sarea = drm_getsarea(dev);
        if (!dev_priv->sarea) {
                DRM_ERROR("could not find sarea!\n");
                dev->dev_private = (void *)dev_priv;
@@ -69,9 +69,6 @@ static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init)
        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;
 #ifdef VIA_HAVE_BUFFER
@@ -83,7 +80,7 @@ static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init)
 
 }
 
-int via_do_cleanup_map(drm_device_t * dev)
+int via_do_cleanup_map(struct drm_device * dev)
 {
        via_dma_cleanup(dev);
 
@@ -91,19 +88,15 @@ int via_do_cleanup_map(drm_device_t * dev)
 }
 
 
-int via_map_init(DRM_IOCTL_ARGS)
+int via_map_init(struct drm_device *dev, void *data, struct drm_file *file_priv)
 {
-       DRM_DEVICE;
-       drm_via_init_t init;
+       drm_via_init_t *init = data;
 
-       DRM_DEBUG("%s\n", __FUNCTION__);
+       DRM_DEBUG("\n");
 
-       DRM_COPY_FROM_USER_IOCTL(init, (drm_via_init_t __user *) data,
-                                sizeof(init));
-
-       switch (init.func) {
+       switch (init->func) {
        case VIA_INIT_MAP:
-               return via_do_init_map(dev, &init);
+               return via_do_init_map(dev, init);
        case VIA_CLEANUP_MAP:
                return via_do_cleanup_map(dev);
        }
@@ -111,14 +104,14 @@ int via_map_init(DRM_IOCTL_ARGS)
        return -EINVAL;
 }
 
-int via_driver_load(drm_device_t *dev, unsigned long chipset)
+int via_driver_load(struct drm_device *dev, unsigned long chipset)
 {
        drm_via_private_t *dev_priv;
        int ret = 0;
 
        dev_priv = drm_calloc(1, sizeof(drm_via_private_t), DRM_MEM_DRIVER);
        if (dev_priv == NULL)
-               return DRM_ERR(ENOMEM);
+               return -ENOMEM;
 
        dev->dev_private = (void *)dev_priv;
 
@@ -133,7 +126,7 @@ int via_driver_load(drm_device_t *dev, unsigned long chipset)
        return ret;
 }
 
-int via_driver_unload(drm_device_t *dev)
+int via_driver_unload(struct drm_device *dev)
 {
        drm_via_private_t *dev_priv = dev->dev_private;
 
@@ -144,4 +137,3 @@ int via_driver_unload(drm_device_t *dev)
 
        return 0;
 }
-