diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-17 13:40:25 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-17 13:40:25 -0800 | 
| commit | 984065055e6e39f8dd812529e11922374bd39352 (patch) | |
| tree | a8f1bcbd81e0fadce0cef39ab5ce09ab84b261fe /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
| parent | 12768c1e2c83b05ea1658470045789a14b6edf4c (diff) | |
| parent | 1df59b8497f47495e873c23abd6d3d290c730505 (diff) | |
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
 "This is the main drm pull request for 4.5.  I don't think I've missed
  anything too major, I'm mostly back at work now but I'll probably get
  some sleep in 5 years time.
  Summary:
  New drivers:
   - etnaviv:
     GPU driver for the 3D core on the Vivante core used in numerous
     ARM boards.
  Highlights:
  Core:
   - Atomic suspend/resume helpers
   - Move the headers to using userspace friendlier types.
   - Documentation updates
   - Lots of struct_mutex removal.
   - Bunch of DP MST fixes from AMD.
  Panel:
   - More DSI helpers
   - Support for some new basic panels
  i915:
   - Basic Kabylake support
   - DP link training and detect code refactoring
   - fbc/psr fixes
   - FIFO underrun fixes
   - SDE interrupt handling fixes
   - dma-buf/fence support in pageflip path.
   - GPU side for MST audio support
  radeon/amdgpu:
   - Drop UMS support
   - GPUVM/Scheduler optimisations
   - Initial Powerplay support for Tonga/Fiji/CZ/ST
   - ACP audio prerequisites
  nouveau:
   - GK20a instmem improvements
   - PCIE link speed change support
  msm:
   - DSI support for msm8960/apq8064
  tegra:
   - Host1X support for Tegra210 SoC
  vc4:
   - 3D acceleration support
  armada:
   - Get rid of struct mutex
  tda998x:
   - Atomic modesetting support
   - TMDS clock limitations
  omapdrm:
   - Atomic modesetting support
   - improved TILER performance
  rockchip:
   - RK3036 VOP support
   - Atomic modesetting support
   - Synopsys DW MIPI DSI support
  exynos:
   - Runtime PM support
   - of_graph binding for DP panels
   - Cleanup of IPP code
   - Configurable plane support
   - Kernel panic fixes at release time"
* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (711 commits)
  drm/fb_cma_helper: Remove implicit call to disable_unused_functions
  drm/amdgpu: add missing irq.h include
  drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates
  drm/vmwgfx: Fix an incorrect lock check
  drm: nouveau: fix nouveau_debugfs_init prototype
  drm/nouveau/pci: fix check in nvkm_pcie_set_link
  drm/amdgpu: validate duplicates first
  drm/amdgpu: move VM page tables to the LRU end on CS v2
  drm/ttm: add ttm_bo_move_to_lru_tail function v2
  drm/ttm: fix adding foreign BOs to the swap LRU
  drm/ttm: fix adding foreign BOs to the LRU during init v2
  drm/radeon: use kobj_to_dev()
  drm/amdgpu: use kobj_to_dev()
  drm/amdgpu/cz: force vce clocks when sclks are forced
  drm/amdgpu/cz: force uvd clocks when sclks are forced
  drm/amdgpu/cz: add code to enable forcing VCE clocks
  drm/amdgpu/cz: add code to enable forcing UVD clocks
  drm/amdgpu: fix lost sync_to if scheduler is enabled.
  drm/amd/powerplay: fix static checker warning for return meaningless value.
  drm/sysfs: use kobj_to_dev()
  ...
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 13 | 
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 9c253c535d26..7380f782cd14 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c @@ -448,7 +448,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,  				    struct amdgpu_bo_va *bo_va, uint32_t operation)  {  	struct ttm_validate_buffer tv, *entry; -	struct amdgpu_bo_list_entry *vm_bos; +	struct amdgpu_bo_list_entry vm_pd;  	struct ww_acquire_ctx ticket;  	struct list_head list, duplicates;  	unsigned domain; @@ -461,15 +461,14 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,  	tv.shared = true;  	list_add(&tv.head, &list); -	vm_bos = amdgpu_vm_get_bos(adev, bo_va->vm, &list); -	if (!vm_bos) -		return; +	amdgpu_vm_get_pd_bo(bo_va->vm, &list, &vm_pd);  	/* Provide duplicates to avoid -EALREADY */  	r = ttm_eu_reserve_buffers(&ticket, &list, true, &duplicates);  	if (r) -		goto error_free; +		goto error_print; +	amdgpu_vm_get_pt_bos(bo_va->vm, &duplicates);  	list_for_each_entry(entry, &list, head) {  		domain = amdgpu_mem_type_to_domain(entry->bo->mem.mem_type);  		/* if anything is swapped out don't swap it in here, @@ -499,9 +498,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,  error_unreserve:  	ttm_eu_backoff_reservation(&ticket, &list); -error_free: -	drm_free_large(vm_bos); - +error_print:  	if (r && r != -ERESTARTSYS)  		DRM_ERROR("Couldn't update BO_VA (%d)\n", r);  }  | 
