/* qxl ttm */
 int qxl_ttm_init(struct qxl_device *qdev);
 void qxl_ttm_fini(struct qxl_device *qdev);
-int qxl_mmap(struct file *filp, struct vm_area_struct *vma);
 
 /* qxl image */
 
 
        .get_sg_table = qxl_gem_prime_get_sg_table,
        .vmap = qxl_gem_prime_vmap,
        .vunmap = qxl_gem_prime_vunmap,
+       .mmap = drm_gem_ttm_mmap,
        .print_info = drm_gem_ttm_print_info,
 };
 
 
        return qdev;
 }
 
-int qxl_mmap(struct file *filp, struct vm_area_struct *vma)
-{
-       struct drm_file *file_priv = filp->private_data;
-       struct qxl_device *qdev = file_priv->minor->dev->dev_private;
-
-       if (qdev == NULL) {
-               DRM_ERROR(
-                "filp->private_data->minor->dev->dev_private == NULL\n");
-               return -EINVAL;
-       }
-       DRM_DEBUG_DRIVER("filp->private_data = 0x%p, vma->vm_pgoff = %lx\n",
-                 filp->private_data, vma->vm_pgoff);
-
-       return ttm_bo_mmap(filp, vma, &qdev->mman.bdev);
-}
-
 static int qxl_invalidate_caches(struct ttm_bo_device *bdev, uint32_t flags)
 {
        return 0;