Browse Source

drm/vmwgfx: Properly flush cursor updates and page-flips

With the introduction of the new command buffer mechanism,
proper care wasn't taken to flush cursor image updates and
event-less screen-target page-flips.

Fix this by introducing explicit flush points.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Thomas Hellstrom 9 years ago
parent
commit
4e0858a682
2 changed files with 3 additions and 1 deletions
  1. 1 1
      drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
  2. 2 0
      drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c

+ 1 - 1
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c

@@ -78,7 +78,7 @@ int vmw_cursor_update_image(struct vmw_private *dev_priv,
 	cmd->cursor.hotspotX = hotspotX;
 	cmd->cursor.hotspotY = hotspotY;
 
-	vmw_fifo_commit(dev_priv, cmd_size);
+	vmw_fifo_commit_flush(dev_priv, cmd_size);
 
 	return 0;
 }

+ 2 - 0
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c

@@ -717,6 +717,8 @@ static int vmw_stdu_crtc_page_flip(struct drm_crtc *crtc,
 						   &event->event.tv_usec,
 						   true);
 		vmw_fence_obj_unreference(&fence);
+	} else {
+		vmw_fifo_flush(dev_priv, false);
 	}
 
 	return ret;