Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49e893b5 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'vmwgfx-fixes-3.14-2014-03-02' of...

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
parents b0447888 6950e23e
Loading
Loading
Loading
Loading
+1 −6
Original line number Original line Diff line number Diff line
@@ -261,12 +261,7 @@ typedef enum SVGA3dSurfaceFormat {
   /* Planar video formats. */
   /* Planar video formats. */
   SVGA3D_YV12                         = 121,
   SVGA3D_YV12                         = 121,


   /* Shader constant formats. */
   SVGA3D_FORMAT_MAX                   = 122,
   SVGA3D_SURFACE_SHADERCONST_FLOAT    = 122,
   SVGA3D_SURFACE_SHADERCONST_INT      = 123,
   SVGA3D_SURFACE_SHADERCONST_BOOL     = 124,

   SVGA3D_FORMAT_MAX                   = 125,
} SVGA3dSurfaceFormat;
} SVGA3dSurfaceFormat;


typedef uint32 SVGA3dColor; /* a, r, g, b */
typedef uint32 SVGA3dColor; /* a, r, g, b */
+1 −1
Original line number Original line Diff line number Diff line
@@ -40,7 +40,7 @@
#include <drm/ttm/ttm_module.h>
#include <drm/ttm/ttm_module.h>
#include "vmwgfx_fence.h"
#include "vmwgfx_fence.h"


#define VMWGFX_DRIVER_DATE "20121114"
#define VMWGFX_DRIVER_DATE "20140228"
#define VMWGFX_DRIVER_MAJOR 2
#define VMWGFX_DRIVER_MAJOR 2
#define VMWGFX_DRIVER_MINOR 5
#define VMWGFX_DRIVER_MINOR 5
#define VMWGFX_DRIVER_PATCHLEVEL 0
#define VMWGFX_DRIVER_PATCHLEVEL 0
+19 −16
Original line number Original line Diff line number Diff line
@@ -188,9 +188,10 @@ static void vmw_takedown_otable_base(struct vmw_private *dev_priv,


	bo = otable->page_table->pt_bo;
	bo = otable->page_table->pt_bo;
	cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd));
	cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd));
	if (unlikely(cmd == NULL))
	if (unlikely(cmd == NULL)) {
		DRM_ERROR("Failed reserving FIFO space for OTable setup.\n");
		DRM_ERROR("Failed reserving FIFO space for OTable "

			  "takedown.\n");
	} else {
		memset(cmd, 0, sizeof(*cmd));
		memset(cmd, 0, sizeof(*cmd));
		cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE;
		cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE;
		cmd->header.size = sizeof(cmd->body);
		cmd->header.size = sizeof(cmd->body);
@@ -200,6 +201,7 @@ static void vmw_takedown_otable_base(struct vmw_private *dev_priv,
		cmd->body.validSizeInBytes = 0;
		cmd->body.validSizeInBytes = 0;
		cmd->body.ptDepth = SVGA3D_MOBFMT_INVALID;
		cmd->body.ptDepth = SVGA3D_MOBFMT_INVALID;
		vmw_fifo_commit(dev_priv, sizeof(*cmd));
		vmw_fifo_commit(dev_priv, sizeof(*cmd));
	}


	if (bo) {
	if (bo) {
		int ret;
		int ret;
@@ -562,11 +564,12 @@ void vmw_mob_unbind(struct vmw_private *dev_priv,
	if (unlikely(cmd == NULL)) {
	if (unlikely(cmd == NULL)) {
		DRM_ERROR("Failed reserving FIFO space for Memory "
		DRM_ERROR("Failed reserving FIFO space for Memory "
			  "Object unbinding.\n");
			  "Object unbinding.\n");
	}
	} else {
		cmd->header.id = SVGA_3D_CMD_DESTROY_GB_MOB;
		cmd->header.id = SVGA_3D_CMD_DESTROY_GB_MOB;
		cmd->header.size = sizeof(cmd->body);
		cmd->header.size = sizeof(cmd->body);
		cmd->body.mobid = mob->id;
		cmd->body.mobid = mob->id;
		vmw_fifo_commit(dev_priv, sizeof(*cmd));
		vmw_fifo_commit(dev_priv, sizeof(*cmd));
	}
	if (bo) {
	if (bo) {
		vmw_fence_single_bo(bo, NULL);
		vmw_fence_single_bo(bo, NULL);
		ttm_bo_unreserve(bo);
		ttm_bo_unreserve(bo);
+1 −2
Original line number Original line Diff line number Diff line
@@ -427,8 +427,7 @@ int vmw_dmabuf_init(struct vmw_private *dev_priv,
	INIT_LIST_HEAD(&vmw_bo->res_list);
	INIT_LIST_HEAD(&vmw_bo->res_list);


	ret = ttm_bo_init(bdev, &vmw_bo->base, size,
	ret = ttm_bo_init(bdev, &vmw_bo->base, size,
			  (user) ? ttm_bo_type_device :
			  ttm_bo_type_device, placement,
			  ttm_bo_type_kernel, placement,
			  0, interruptible,
			  0, interruptible,
			  NULL, acc_size, NULL, bo_free);
			  NULL, acc_size, NULL, bo_free);
	return ret;
	return ret;