]> err.no Git - linux-2.6/blobdiff - drivers/char/drm/via_map.c
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[linux-2.6] / drivers / char / drm / via_map.c
index c6a08e96285bf55c62a96480c7989ea0632a7419..7fb9d2a2cce2e6f5bb5edb863c89bfd31b07554e 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;
 
        DRM_DEBUG("%s\n", __FUNCTION__);
 
-       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;
@@ -68,7 +68,7 @@ static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init)
        return 0;
 }
 
-int via_do_cleanup_map(drm_device_t * dev)
+int via_do_cleanup_map(struct drm_device * dev)
 {
        via_dma_cleanup(dev);
 
@@ -95,9 +95,10 @@ 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)
@@ -105,16 +106,21 @@ int via_driver_load(drm_device_t *dev, unsigned long chipset)
 
        dev->dev_private = (void *)dev_priv;
 
-       if (chipset == VIA_PRO_GROUP_A)
-               dev_priv->pro_group_a = 1;
+       dev_priv->chipset = chipset;
 
-       return 0;
+       ret = drm_sman_init(&dev_priv->sman, 2, 12, 8);
+       if (ret) {
+               drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
+       }
+       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;
 
+       drm_sman_takedown(&dev_priv->sman);
+
        drm_free(dev_priv, sizeof(drm_via_private_t), DRM_MEM_DRIVER);
 
        return 0;