summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/msm/msm_gem.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-04-27 09:06:22 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2018-04-27 09:06:22 -0700
commit0f940fac655d5a728bc5ef6204d2ec4c3b3ea6c3 (patch)
tree130a6b85702842dcb06c494076b4733141fb11e8 /drivers/gpu/drm/msm/msm_gem.c
parent0644f186fc9d77bb5bd198369e59fb28927a3692 (diff)
parent24d9092c8b7de0a0f630adbe3504bef8d3a618af (diff)
Merge tag 'drm-fixes-for-v4.17-rc3' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie: "Pretty run of the mill for this stage in the cycle: msm, i915, amdgpu, qxl, virtio-gpu, sun4i fixes. i915: - Black screen fixes - Display w/a fix - HDA codec interop fix sun4i: - tbsa711 tablet regression fix qxl: - Regression fixes due to changes in TTM virtio: - Fix wait event condition msm: - DSI display fixes amdgpu: - fix hang on Carrizo - DP MST hang fixes - irq handling deadlock in DC. amdkfd: - Fix Kconfig issue - Clock retrieval fix - Sparse fixes" * tag 'drm-fixes-for-v4.17-rc3' of git://people.freedesktop.org/~airlied/linux: (27 commits) drm/edid: Reset more of the display info drm/virtio: fix vq wait_event condition qxl: keep separate release_bo pointer qxl: fix qxl_release_{map,unmap} Revert "drm/sun4i: add lvds mode_valid function" drm/amd/display: Check dc_sink every time in MST hotplug drm/amd/display: Update MST edid property every time drm/amd/display: Don't read EDID in atomic_check drm/amd/display: Disallow enabling CRTC without primary plane with FB drm/amd/display: Fix deadlock when flushing irq drm/i915/fbdev: Enable late fbdev initial configuration drm/i915: Use ktime on wait_for drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders drm/amdkfd: fix build, select MMU_NOTIFIER drm/amdkfd: fix clock counter retrieval for node without GPU drm/amdkfd: Fix the error return code in kfd_ioctl_unmap_memory_from_gpu() drm/amdkfd: kfd_dev_is_large_bar() can be static drm/i915: Enable display WA#1183 from its correct spot drm/i915/audio: set minimum CD clock to twice the BCLK drm/msm: don't deref error pointer in the msm_fbdev_create error path ...
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.c')
-rw-r--r--drivers/gpu/drm/msm/msm_gem.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index 95196479f651..f583bb4222f9 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -132,17 +132,19 @@ static void put_pages(struct drm_gem_object *obj)
struct msm_gem_object *msm_obj = to_msm_bo(obj);
if (msm_obj->pages) {
- /* For non-cached buffers, ensure the new pages are clean
- * because display controller, GPU, etc. are not coherent:
- */
- if (msm_obj->flags & (MSM_BO_WC|MSM_BO_UNCACHED))
- dma_unmap_sg(obj->dev->dev, msm_obj->sgt->sgl,
- msm_obj->sgt->nents, DMA_BIDIRECTIONAL);
+ if (msm_obj->sgt) {
+ /* For non-cached buffers, ensure the new
+ * pages are clean because display controller,
+ * GPU, etc. are not coherent:
+ */
+ if (msm_obj->flags & (MSM_BO_WC|MSM_BO_UNCACHED))
+ dma_unmap_sg(obj->dev->dev, msm_obj->sgt->sgl,
+ msm_obj->sgt->nents,
+ DMA_BIDIRECTIONAL);
- if (msm_obj->sgt)
sg_free_table(msm_obj->sgt);
-
- kfree(msm_obj->sgt);
+ kfree(msm_obj->sgt);
+ }
if (use_pages(obj))
drm_gem_put_pages(obj, msm_obj->pages, true, false);