diff options
| author | Dave Airlie <airlied@gmail.com> | 2014-03-02 05:54:31 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@gmail.com> | 2014-03-02 05:54:31 -0500 |
| commit | 49e893b5975102e30be1bf79e002a754f3bf6da8 (patch) | |
| tree | 47bc913f53068c5f33a867fce9a0251544766aad | |
| parent | b0447888dc29f4fb91c3b3b02e3f1f0bfc6e1222 (diff) | |
| parent | 6950e23e54b1c94abf8c60c1ddfac79133d41de2 (diff) | |
Merge tag 'vmwgfx-fixes-3.14-2014-03-02' of git://people.freedesktop.org/~thomash/linux into drm-fixes
A couple of minor fixes.
Pull request of 2014-03-02
* tag 'vmwgfx-fixes-3.14-2014-03-02' of git://people.freedesktop.org/~thomash/linux:
drm/vmwgfx: avoid null pointer dereference at failure paths
drm/vmwgfx: Make sure backing mobs are cleared when allocated. Update driver date.
drm/vmwgfx: Remove some unused surface formats
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/svga3d_reg.h | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 35 | ||||
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 3 |
4 files changed, 22 insertions, 25 deletions
diff --git a/drivers/gpu/drm/vmwgfx/svga3d_reg.h b/drivers/gpu/drm/vmwgfx/svga3d_reg.h index bb594c11605e..f58dc7dd15c5 100644 --- a/drivers/gpu/drm/vmwgfx/svga3d_reg.h +++ b/drivers/gpu/drm/vmwgfx/svga3d_reg.h | |||
| @@ -261,12 +261,7 @@ typedef enum SVGA3dSurfaceFormat { | |||
| 261 | /* Planar video formats. */ | 261 | /* Planar video formats. */ |
| 262 | SVGA3D_YV12 = 121, | 262 | SVGA3D_YV12 = 121, |
| 263 | 263 | ||
| 264 | /* Shader constant formats. */ | 264 | SVGA3D_FORMAT_MAX = 122, |
| 265 | SVGA3D_SURFACE_SHADERCONST_FLOAT = 122, | ||
| 266 | SVGA3D_SURFACE_SHADERCONST_INT = 123, | ||
| 267 | SVGA3D_SURFACE_SHADERCONST_BOOL = 124, | ||
| 268 | |||
| 269 | SVGA3D_FORMAT_MAX = 125, | ||
| 270 | } SVGA3dSurfaceFormat; | 265 | } SVGA3dSurfaceFormat; |
| 271 | 266 | ||
| 272 | typedef uint32 SVGA3dColor; /* a, r, g, b */ | 267 | typedef uint32 SVGA3dColor; /* a, r, g, b */ |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h index 9e4be1725985..07831554dad7 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | #include <drm/ttm/ttm_module.h> | 40 | #include <drm/ttm/ttm_module.h> |
| 41 | #include "vmwgfx_fence.h" | 41 | #include "vmwgfx_fence.h" |
| 42 | 42 | ||
| 43 | #define VMWGFX_DRIVER_DATE "20121114" | 43 | #define VMWGFX_DRIVER_DATE "20140228" |
| 44 | #define VMWGFX_DRIVER_MAJOR 2 | 44 | #define VMWGFX_DRIVER_MAJOR 2 |
| 45 | #define VMWGFX_DRIVER_MINOR 5 | 45 | #define VMWGFX_DRIVER_MINOR 5 |
| 46 | #define VMWGFX_DRIVER_PATCHLEVEL 0 | 46 | #define VMWGFX_DRIVER_PATCHLEVEL 0 |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c index d4a5a19cb8c3..04a64b8cd3cd 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | |||
| @@ -188,18 +188,20 @@ static void vmw_takedown_otable_base(struct vmw_private *dev_priv, | |||
| 188 | 188 | ||
| 189 | bo = otable->page_table->pt_bo; | 189 | bo = otable->page_table->pt_bo; |
| 190 | cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); | 190 | cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); |
| 191 | if (unlikely(cmd == NULL)) | 191 | if (unlikely(cmd == NULL)) { |
| 192 | DRM_ERROR("Failed reserving FIFO space for OTable setup.\n"); | 192 | DRM_ERROR("Failed reserving FIFO space for OTable " |
| 193 | 193 | "takedown.\n"); | |
| 194 | memset(cmd, 0, sizeof(*cmd)); | 194 | } else { |
| 195 | cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE; | 195 | memset(cmd, 0, sizeof(*cmd)); |
| 196 | cmd->header.size = sizeof(cmd->body); | 196 | cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE; |
| 197 | cmd->body.type = type; | 197 | cmd->header.size = sizeof(cmd->body); |
| 198 | cmd->body.baseAddress = 0; | 198 | cmd->body.type = type; |
| 199 | cmd->body.sizeInBytes = 0; | 199 | cmd->body.baseAddress = 0; |
| 200 | cmd->body.validSizeInBytes = 0; | 200 | cmd->body.sizeInBytes = 0; |
| 201 | cmd->body.ptDepth = SVGA3D_MOBFMT_INVALID; | 201 | cmd->body.validSizeInBytes = 0; |
| 202 | vmw_fifo_commit(dev_priv, sizeof(*cmd)); | 202 | cmd->body.ptDepth = SVGA3D_MOBFMT_INVALID; |
| 203 | vmw_fifo_commit(dev_priv, sizeof(*cmd)); | ||
| 204 | } | ||
| 203 | 205 | ||
| 204 | if (bo) { | 206 | if (bo) { |
| 205 | int ret; | 207 | int ret; |
| @@ -562,11 +564,12 @@ void vmw_mob_unbind(struct vmw_private *dev_priv, | |||
| 562 | if (unlikely(cmd == NULL)) { | 564 | if (unlikely(cmd == NULL)) { |
| 563 | DRM_ERROR("Failed reserving FIFO space for Memory " | 565 | DRM_ERROR("Failed reserving FIFO space for Memory " |
| 564 | "Object unbinding.\n"); | 566 | "Object unbinding.\n"); |
| 567 | } else { | ||
| 568 | cmd->header.id = SVGA_3D_CMD_DESTROY_GB_MOB; | ||
| 569 | cmd->header.size = sizeof(cmd->body); | ||
| 570 | cmd->body.mobid = mob->id; | ||
| 571 | vmw_fifo_commit(dev_priv, sizeof(*cmd)); | ||
| 565 | } | 572 | } |
| 566 | cmd->header.id = SVGA_3D_CMD_DESTROY_GB_MOB; | ||
| 567 | cmd->header.size = sizeof(cmd->body); | ||
| 568 | cmd->body.mobid = mob->id; | ||
| 569 | vmw_fifo_commit(dev_priv, sizeof(*cmd)); | ||
| 570 | if (bo) { | 573 | if (bo) { |
| 571 | vmw_fence_single_bo(bo, NULL); | 574 | vmw_fence_single_bo(bo, NULL); |
| 572 | ttm_bo_unreserve(bo); | 575 | ttm_bo_unreserve(bo); |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c index 2aa4bc6a4d60..9757b57f8388 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | |||
| @@ -427,8 +427,7 @@ int vmw_dmabuf_init(struct vmw_private *dev_priv, | |||
| 427 | INIT_LIST_HEAD(&vmw_bo->res_list); | 427 | INIT_LIST_HEAD(&vmw_bo->res_list); |
| 428 | 428 | ||
| 429 | ret = ttm_bo_init(bdev, &vmw_bo->base, size, | 429 | ret = ttm_bo_init(bdev, &vmw_bo->base, size, |
| 430 | (user) ? ttm_bo_type_device : | 430 | ttm_bo_type_device, placement, |
| 431 | ttm_bo_type_kernel, placement, | ||
| 432 | 0, interruptible, | 431 | 0, interruptible, |
| 433 | NULL, acc_size, NULL, bo_free); | 432 | NULL, acc_size, NULL, bo_free); |
| 434 | return ret; | 433 | return ret; |
