From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 10 Jan 2012 19:04:36 +0000 (-0800)
Subject: Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=1a464cbb3d483f2f195b614cffa4aa1b910a0440;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git

Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux

* 'drm-core-next' of git://people.freedesktop.org/~airlied/linux: (307 commits)
  drm/nouveau/pm: fix build with HWMON off
  gma500: silence gcc warnings in mid_get_vbt_data()
  drm/ttm: fix condition (and vs or)
  drm/radeon: double lock typo in radeon_vm_bo_rmv()
  drm/radeon: use after free in radeon_vm_bo_add()
  drm/sis|via: don't return stack garbage from free_mem ioctl
  drm/radeon/kms: remove pointless CS flags priority struct
  drm/radeon/kms: check if vm is supported in VA ioctl
  drm: introduce drm_can_sleep and use in intel/radeon drivers. (v2)
  radeon: Fix disabling PCI bus mastering on big endian hosts.
  ttm: fix agp since ttm tt rework
  agp: Fix multi-line warning message whitespace
  drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and don't try to free freed pages.
  drm/ttm/dma: Only call set_pages_array_wb when the page is not in WB pool.
  drm/radeon/kms: sync across multiple rings when doing bo moves v3
  drm/radeon/kms: Add support for multi-ring sync in CS ioctl (v2)
  drm/radeon: GPU virtual memory support v22
  drm: make DRM_UNLOCKED ioctls with their own mutex
  drm: no need to hold global mutex for static data
  drm/radeon/benchmark: common modes sweep ignores 640x480@32
  ...

Fix up trivial conflicts in radeon/evergreen.c and vmwgfx/vmwgfx_kms.c
---

1a464cbb3d483f2f195b614cffa4aa1b910a0440
diff --cc drivers/gpu/drm/radeon/evergreen.c
index 92c9628c572,ccde2c9540e..636660fca8c
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@@ -3264,30 -3343,6 +3343,18 @@@ int evergreen_init(struct radeon_devic
  		evergreen_pcie_gart_fini(rdev);
  		rdev->accel_working = false;
  	}
- 	if (rdev->accel_working) {
- 		r = radeon_ib_pool_init(rdev);
- 		if (r) {
- 			DRM_ERROR("radeon: failed initializing IB pool (%d).\n", r);
- 			rdev->accel_working = false;
- 		}
- 		r = r600_ib_test(rdev);
- 		if (r) {
- 			DRM_ERROR("radeon: failed testing IB (%d).\n", r);
- 			rdev->accel_working = false;
- 		}
- 	}
 +
 +	/* Don't start up if the MC ucode is missing on BTC parts.
 +	 * The default clocks and voltages before the MC ucode
 +	 * is loaded are not suffient for advanced operations.
 +	 */
 +	if (ASIC_IS_DCE5(rdev)) {
 +		if (!rdev->mc_fw && !(rdev->flags & RADEON_IS_IGP)) {
 +			DRM_ERROR("radeon: MC ucode required for NI+.\n");
 +			return -EINVAL;
 +		}
 +	}
 +
  	return 0;
  }
  
diff --cc drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index f94b33ae221,c4bdef3062c..0af6ebdf205
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@@ -1093,17 -1093,25 +1093,25 @@@ static struct drm_framebuffer *vmw_kms_
  	struct vmw_surface *surface = NULL;
  	struct vmw_dma_buffer *bo = NULL;
  	struct ttm_base_object *user_obj;
+ 	struct drm_mode_fb_cmd mode_cmd;
 -	u64 required_size;
  	int ret;
  
+ 	mode_cmd.width = mode_cmd2->width;
+ 	mode_cmd.height = mode_cmd2->height;
+ 	mode_cmd.pitch = mode_cmd2->pitches[0];
+ 	mode_cmd.handle = mode_cmd2->handles[0];
+ 	drm_fb_get_bpp_depth(mode_cmd2->pixel_format, &mode_cmd.depth,
+ 				    &mode_cmd.bpp);
+ 
  	/**
  	 * This code should be conditioned on Screen Objects not being used.
  	 * If screen objects are used, we can allocate a GMR to hold the
  	 * requested framebuffer.
  	 */
  
 -	required_size = mode_cmd.pitch * mode_cmd.height;
 -	if (unlikely(required_size > (u64) dev_priv->vram_size)) {
 +	if (!vmw_kms_validate_mode_vram(dev_priv,
- 					mode_cmd->pitch,
- 					mode_cmd->height)) {
++					mode_cmd.pitch,
++					mode_cmd.height)) {
  		DRM_ERROR("VRAM size is too small for requested mode.\n");
  		return ERR_PTR(-ENOMEM);
  	}