Merge branch 'next/dt' of git://git.linaro.org/people/arnd/arm-soc
[pandora-kernel.git] / drivers / gpu / drm / vmwgfx / vmwgfx_fb.c
index 5fb80b1..070797b 100644 (file)
@@ -158,10 +158,14 @@ static int vmw_fb_set_par(struct fb_info *info)
 {
        struct vmw_fb_par *par = info->par;
        struct vmw_private *vmw_priv = par->vmw_priv;
+       int ret;
+
+       ret = vmw_kms_write_svga(vmw_priv, info->var.xres, info->var.yres,
+                                info->fix.line_length,
+                                par->bpp, par->depth);
+       if (ret)
+               return ret;
 
-       vmw_kms_write_svga(vmw_priv, info->var.xres, info->var.yres,
-                          info->fix.line_length,
-                          par->bpp, par->depth);
        if (vmw_priv->capabilities & SVGA_CAP_DISPLAY_TOPOLOGY) {
                /* TODO check if pitch and offset changes */
                vmw_write(vmw_priv, SVGA_REG_NUM_GUEST_DISPLAYS, 1);
@@ -588,58 +592,6 @@ int vmw_fb_close(struct vmw_private *vmw_priv)
        return 0;
 }
 
-int vmw_dmabuf_from_vram(struct vmw_private *vmw_priv,
-                        struct vmw_dma_buffer *vmw_bo)
-{
-       struct ttm_buffer_object *bo = &vmw_bo->base;
-       int ret = 0;
-
-       ret = ttm_bo_reserve(bo, false, false, false, 0);
-       if (unlikely(ret != 0))
-               return ret;
-
-       ret = ttm_bo_validate(bo, &vmw_sys_placement, false, false, false);
-       ttm_bo_unreserve(bo);
-
-       return ret;
-}
-
-int vmw_dmabuf_to_start_of_vram(struct vmw_private *vmw_priv,
-                               struct vmw_dma_buffer *vmw_bo)
-{
-       struct ttm_buffer_object *bo = &vmw_bo->base;
-       struct ttm_placement ne_placement = vmw_vram_ne_placement;
-       int ret = 0;
-
-       ne_placement.lpfn = bo->num_pages;
-
-       /* interuptable? */
-       ret = ttm_write_lock(&vmw_priv->active_master->lock, false);
-       if (unlikely(ret != 0))
-               return ret;
-
-       ret = ttm_bo_reserve(bo, false, false, false, 0);
-       if (unlikely(ret != 0))
-               goto err_unlock;
-
-       if (bo->mem.mem_type == TTM_PL_VRAM &&
-           bo->mem.start < bo->num_pages &&
-           bo->mem.start > 0)
-               (void) ttm_bo_validate(bo, &vmw_sys_placement, false,
-                                      false, false);
-
-       ret = ttm_bo_validate(bo, &ne_placement, false, false, false);
-
-       /* Could probably bug on */
-       WARN_ON(bo->offset != 0);
-
-       ttm_bo_unreserve(bo);
-err_unlock:
-       ttm_write_unlock(&vmw_priv->active_master->lock);
-
-       return ret;
-}
-
 int vmw_fb_off(struct vmw_private *vmw_priv)
 {
        struct fb_info *info;
@@ -661,7 +613,7 @@ int vmw_fb_off(struct vmw_private *vmw_priv)
        par->bo_ptr = NULL;
        ttm_bo_kunmap(&par->map);
 
-       vmw_dmabuf_from_vram(vmw_priv, par->vmw_bo);
+       vmw_dmabuf_unpin(vmw_priv, par->vmw_bo, false);
 
        return 0;
 }
@@ -687,7 +639,7 @@ int vmw_fb_on(struct vmw_private *vmw_priv)
        /* Make sure that all overlays are stoped when we take over */
        vmw_overlay_stop_all(vmw_priv);
 
-       ret = vmw_dmabuf_to_start_of_vram(vmw_priv, par->vmw_bo);
+       ret = vmw_dmabuf_to_start_of_vram(vmw_priv, par->vmw_bo, true, false);
        if (unlikely(ret != 0)) {
                DRM_ERROR("could not move buffer to start of VRAM\n");
                goto err_no_buffer;