drm/vmwgfx: Replace vmw_dma_buffer with vmw_buffer_object
Initially vmware buffer objects were only used as DMA buffers, so the name DMA buffer was a natural one. However, currently they are used also as dumb buffers and MOBs backing guest backed objects so renaming them to buffer objects is logical. Particularly since there is a dmabuf subsystem in the kernel where a dma buffer means something completely different. This also renames user-space api structures and IOCTL names correspondingly, but the old names remain defined for now and the ABI hasn't changed. There are a couple of minor style changes to make checkpatch happy. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com> Reviewed-by: Deepak Rawat <drawat@vmware.com>
This commit is contained in:
@@ -44,7 +44,7 @@
|
||||
enum stdu_content_type {
|
||||
SAME_AS_DISPLAY = 0,
|
||||
SEPARATE_SURFACE,
|
||||
SEPARATE_DMA
|
||||
SEPARATE_BO
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -58,7 +58,7 @@ enum stdu_content_type {
|
||||
* @bottom: Bottom side of bounding box.
|
||||
* @fb_left: Left side of the framebuffer/content bounding box
|
||||
* @fb_top: Top of the framebuffer/content bounding box
|
||||
* @buf: DMA buffer when DMA-ing between buffer and screen targets.
|
||||
* @buf: buffer object when DMA-ing between buffer and screen targets.
|
||||
* @sid: Surface ID when copying between surface and screen targets.
|
||||
*/
|
||||
struct vmw_stdu_dirty {
|
||||
@@ -68,7 +68,7 @@ struct vmw_stdu_dirty {
|
||||
s32 fb_left, fb_top;
|
||||
u32 pitch;
|
||||
union {
|
||||
struct vmw_dma_buffer *buf;
|
||||
struct vmw_buffer_object *buf;
|
||||
u32 sid;
|
||||
};
|
||||
};
|
||||
@@ -508,14 +508,14 @@ static int vmw_stdu_crtc_page_flip(struct drm_crtc *crtc,
|
||||
|
||||
|
||||
/**
|
||||
* vmw_stdu_dmabuf_clip - Callback to encode a suface DMA command cliprect
|
||||
* vmw_stdu_bo_clip - Callback to encode a suface DMA command cliprect
|
||||
*
|
||||
* @dirty: The closure structure.
|
||||
*
|
||||
* Encodes a surface DMA command cliprect and updates the bounding box
|
||||
* for the DMA.
|
||||
*/
|
||||
static void vmw_stdu_dmabuf_clip(struct vmw_kms_dirty *dirty)
|
||||
static void vmw_stdu_bo_clip(struct vmw_kms_dirty *dirty)
|
||||
{
|
||||
struct vmw_stdu_dirty *ddirty =
|
||||
container_of(dirty, struct vmw_stdu_dirty, base);
|
||||
@@ -543,14 +543,14 @@ static void vmw_stdu_dmabuf_clip(struct vmw_kms_dirty *dirty)
|
||||
}
|
||||
|
||||
/**
|
||||
* vmw_stdu_dmabuf_fifo_commit - Callback to fill in and submit a DMA command.
|
||||
* vmw_stdu_bo_fifo_commit - Callback to fill in and submit a DMA command.
|
||||
*
|
||||
* @dirty: The closure structure.
|
||||
*
|
||||
* Fills in the missing fields in a DMA command, and optionally encodes
|
||||
* a screen target update command, depending on transfer direction.
|
||||
*/
|
||||
static void vmw_stdu_dmabuf_fifo_commit(struct vmw_kms_dirty *dirty)
|
||||
static void vmw_stdu_bo_fifo_commit(struct vmw_kms_dirty *dirty)
|
||||
{
|
||||
struct vmw_stdu_dirty *ddirty =
|
||||
container_of(dirty, struct vmw_stdu_dirty, base);
|
||||
@@ -594,13 +594,13 @@ static void vmw_stdu_dmabuf_fifo_commit(struct vmw_kms_dirty *dirty)
|
||||
|
||||
|
||||
/**
|
||||
* vmw_stdu_dmabuf_cpu_clip - Callback to encode a CPU blit
|
||||
* vmw_stdu_bo_cpu_clip - Callback to encode a CPU blit
|
||||
*
|
||||
* @dirty: The closure structure.
|
||||
*
|
||||
* This function calculates the bounding box for all the incoming clips.
|
||||
*/
|
||||
static void vmw_stdu_dmabuf_cpu_clip(struct vmw_kms_dirty *dirty)
|
||||
static void vmw_stdu_bo_cpu_clip(struct vmw_kms_dirty *dirty)
|
||||
{
|
||||
struct vmw_stdu_dirty *ddirty =
|
||||
container_of(dirty, struct vmw_stdu_dirty, base);
|
||||
@@ -624,14 +624,14 @@ static void vmw_stdu_dmabuf_cpu_clip(struct vmw_kms_dirty *dirty)
|
||||
|
||||
|
||||
/**
|
||||
* vmw_stdu_dmabuf_cpu_commit - Callback to do a CPU blit from DMAbuf
|
||||
* vmw_stdu_bo_cpu_commit - Callback to do a CPU blit from buffer object
|
||||
*
|
||||
* @dirty: The closure structure.
|
||||
*
|
||||
* For the special case when we cannot create a proxy surface in a
|
||||
* 2D VM, we have to do a CPU blit ourselves.
|
||||
*/
|
||||
static void vmw_stdu_dmabuf_cpu_commit(struct vmw_kms_dirty *dirty)
|
||||
static void vmw_stdu_bo_cpu_commit(struct vmw_kms_dirty *dirty)
|
||||
{
|
||||
struct vmw_stdu_dirty *ddirty =
|
||||
container_of(dirty, struct vmw_stdu_dirty, base);
|
||||
@@ -652,7 +652,7 @@ static void vmw_stdu_dmabuf_cpu_commit(struct vmw_kms_dirty *dirty)
|
||||
if (width == 0 || height == 0)
|
||||
return;
|
||||
|
||||
/* Assume we are blitting from Guest (dmabuf) to Host (display_srf) */
|
||||
/* Assume we are blitting from Guest (bo) to Host (display_srf) */
|
||||
dst_pitch = stdu->display_srf->base_size.width * stdu->cpp;
|
||||
dst_bo = &stdu->display_srf->res.backup->base;
|
||||
dst_offset = ddirty->top * dst_pitch + ddirty->left * stdu->cpp;
|
||||
@@ -712,13 +712,13 @@ out_cleanup:
|
||||
}
|
||||
|
||||
/**
|
||||
* vmw_kms_stdu_dma - Perform a DMA transfer between a dma-buffer backed
|
||||
* vmw_kms_stdu_dma - Perform a DMA transfer between a buffer-object backed
|
||||
* framebuffer and the screen target system.
|
||||
*
|
||||
* @dev_priv: Pointer to the device private structure.
|
||||
* @file_priv: Pointer to a struct drm-file identifying the caller. May be
|
||||
* set to NULL, but then @user_fence_rep must also be set to NULL.
|
||||
* @vfb: Pointer to the dma-buffer backed framebuffer.
|
||||
* @vfb: Pointer to the buffer-object backed framebuffer.
|
||||
* @clips: Array of clip rects. Either @clips or @vclips must be NULL.
|
||||
* @vclips: Alternate array of clip rects. Either @clips or @vclips must
|
||||
* be NULL.
|
||||
@@ -747,8 +747,8 @@ int vmw_kms_stdu_dma(struct vmw_private *dev_priv,
|
||||
bool interruptible,
|
||||
struct drm_crtc *crtc)
|
||||
{
|
||||
struct vmw_dma_buffer *buf =
|
||||
container_of(vfb, struct vmw_framebuffer_dmabuf, base)->buffer;
|
||||
struct vmw_buffer_object *buf =
|
||||
container_of(vfb, struct vmw_framebuffer_bo, base)->buffer;
|
||||
struct vmw_stdu_dirty ddirty;
|
||||
int ret;
|
||||
bool cpu_blit = !(dev_priv->capabilities & SVGA_CAP_3D);
|
||||
@@ -770,8 +770,8 @@ int vmw_kms_stdu_dma(struct vmw_private *dev_priv,
|
||||
ddirty.fb_left = ddirty.fb_top = S32_MAX;
|
||||
ddirty.pitch = vfb->base.pitches[0];
|
||||
ddirty.buf = buf;
|
||||
ddirty.base.fifo_commit = vmw_stdu_dmabuf_fifo_commit;
|
||||
ddirty.base.clip = vmw_stdu_dmabuf_clip;
|
||||
ddirty.base.fifo_commit = vmw_stdu_bo_fifo_commit;
|
||||
ddirty.base.clip = vmw_stdu_bo_clip;
|
||||
ddirty.base.fifo_reserve_size = sizeof(struct vmw_stdu_dma) +
|
||||
num_clips * sizeof(SVGA3dCopyBox) +
|
||||
sizeof(SVGA3dCmdSurfaceDMASuffix);
|
||||
@@ -780,8 +780,8 @@ int vmw_kms_stdu_dma(struct vmw_private *dev_priv,
|
||||
|
||||
|
||||
if (cpu_blit) {
|
||||
ddirty.base.fifo_commit = vmw_stdu_dmabuf_cpu_commit;
|
||||
ddirty.base.clip = vmw_stdu_dmabuf_cpu_clip;
|
||||
ddirty.base.fifo_commit = vmw_stdu_bo_cpu_commit;
|
||||
ddirty.base.clip = vmw_stdu_bo_cpu_clip;
|
||||
ddirty.base.fifo_reserve_size = 0;
|
||||
}
|
||||
|
||||
@@ -927,7 +927,7 @@ int vmw_kms_stdu_surface_dirty(struct vmw_private *dev_priv,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (vfbs->is_dmabuf_proxy) {
|
||||
if (vfbs->is_bo_proxy) {
|
||||
ret = vmw_kms_update_proxy(srf, clips, num_clips, inc);
|
||||
if (ret)
|
||||
goto out_finish;
|
||||
@@ -1075,7 +1075,7 @@ vmw_stdu_primary_plane_cleanup_fb(struct drm_plane *plane,
|
||||
* @new_state: info on the new plane state, including the FB
|
||||
*
|
||||
* This function allocates a new display surface if the content is
|
||||
* backed by a DMA. The display surface is pinned here, and it'll
|
||||
* backed by a buffer object. The display surface is pinned here, and it'll
|
||||
* be unpinned in .cleanup_fb()
|
||||
*
|
||||
* Returns 0 on success
|
||||
@@ -1105,13 +1105,13 @@ vmw_stdu_primary_plane_prepare_fb(struct drm_plane *plane,
|
||||
}
|
||||
|
||||
vfb = vmw_framebuffer_to_vfb(new_fb);
|
||||
new_vfbs = (vfb->dmabuf) ? NULL : vmw_framebuffer_to_vfbs(new_fb);
|
||||
new_vfbs = (vfb->bo) ? NULL : vmw_framebuffer_to_vfbs(new_fb);
|
||||
|
||||
if (new_vfbs && new_vfbs->surface->base_size.width == hdisplay &&
|
||||
new_vfbs->surface->base_size.height == vdisplay)
|
||||
new_content_type = SAME_AS_DISPLAY;
|
||||
else if (vfb->dmabuf)
|
||||
new_content_type = SEPARATE_DMA;
|
||||
else if (vfb->bo)
|
||||
new_content_type = SEPARATE_BO;
|
||||
else
|
||||
new_content_type = SEPARATE_SURFACE;
|
||||
|
||||
@@ -1124,10 +1124,10 @@ vmw_stdu_primary_plane_prepare_fb(struct drm_plane *plane,
|
||||
display_base_size.depth = 1;
|
||||
|
||||
/*
|
||||
* If content buffer is a DMA buf, then we have to construct
|
||||
* surface info
|
||||
* If content buffer is a buffer object, then we have to
|
||||
* construct surface info
|
||||
*/
|
||||
if (new_content_type == SEPARATE_DMA) {
|
||||
if (new_content_type == SEPARATE_BO) {
|
||||
|
||||
switch (new_fb->format->cpp[0]*8) {
|
||||
case 32:
|
||||
@@ -1212,12 +1212,12 @@ vmw_stdu_primary_plane_prepare_fb(struct drm_plane *plane,
|
||||
vps->content_fb_type = new_content_type;
|
||||
|
||||
/*
|
||||
* This should only happen if the DMA buf is too large to create a
|
||||
* This should only happen if the buffer object is too large to create a
|
||||
* proxy surface for.
|
||||
* If we are a 2D VM with a DMA buffer then we have to use CPU blit
|
||||
* If we are a 2D VM with a buffer object then we have to use CPU blit
|
||||
* so cache these mappings
|
||||
*/
|
||||
if (vps->content_fb_type == SEPARATE_DMA &&
|
||||
if (vps->content_fb_type == SEPARATE_BO &&
|
||||
!(dev_priv->capabilities & SVGA_CAP_3D))
|
||||
vps->cpp = new_fb->pitches[0] / new_fb->width;
|
||||
|
||||
@@ -1276,7 +1276,7 @@ vmw_stdu_primary_plane_atomic_update(struct drm_plane *plane,
|
||||
if (ret)
|
||||
DRM_ERROR("Failed to bind surface to STDU.\n");
|
||||
|
||||
if (vfb->dmabuf)
|
||||
if (vfb->bo)
|
||||
ret = vmw_kms_stdu_dma(dev_priv, NULL, vfb, NULL, NULL,
|
||||
&vclips, 1, 1, true, false,
|
||||
crtc);
|
||||
|
Reference in New Issue
Block a user