diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2015-07-29 18:13:24 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-07-29 18:13:24 -0400 |
commit | 4b979e4c611ce750d32b51737f837b485f43c69b (patch) | |
tree | 3bc56f2a22d2cf29bc183b67e74e1e8c0733efc0 /drivers/gpu/drm/omapdrm/omap_gem.c | |
parent | 1559f3b8d0527e24219149c95b3de5e7b2924828 (diff) | |
parent | cbfe8fa6cd672011c755c3cd85c9ffd4e2d10a6f (diff) |
Merge branch 'linus' into irq/core
Pull in upstream fixes before applying conflicting changes
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_gem.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_gem.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c index 2ab77801cf5f..7ed08fdc4c42 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem.c +++ b/drivers/gpu/drm/omapdrm/omap_gem.c | |||
@@ -808,10 +808,10 @@ fail: | |||
808 | /* Release physical address, when DMA is no longer being performed.. this | 808 | /* Release physical address, when DMA is no longer being performed.. this |
809 | * could potentially unpin and unmap buffers from TILER | 809 | * could potentially unpin and unmap buffers from TILER |
810 | */ | 810 | */ |
811 | int omap_gem_put_paddr(struct drm_gem_object *obj) | 811 | void omap_gem_put_paddr(struct drm_gem_object *obj) |
812 | { | 812 | { |
813 | struct omap_gem_object *omap_obj = to_omap_bo(obj); | 813 | struct omap_gem_object *omap_obj = to_omap_bo(obj); |
814 | int ret = 0; | 814 | int ret; |
815 | 815 | ||
816 | mutex_lock(&obj->dev->struct_mutex); | 816 | mutex_lock(&obj->dev->struct_mutex); |
817 | if (omap_obj->paddr_cnt > 0) { | 817 | if (omap_obj->paddr_cnt > 0) { |
@@ -821,7 +821,6 @@ int omap_gem_put_paddr(struct drm_gem_object *obj) | |||
821 | if (ret) { | 821 | if (ret) { |
822 | dev_err(obj->dev->dev, | 822 | dev_err(obj->dev->dev, |
823 | "could not unpin pages: %d\n", ret); | 823 | "could not unpin pages: %d\n", ret); |
824 | goto fail; | ||
825 | } | 824 | } |
826 | ret = tiler_release(omap_obj->block); | 825 | ret = tiler_release(omap_obj->block); |
827 | if (ret) { | 826 | if (ret) { |
@@ -832,9 +831,8 @@ int omap_gem_put_paddr(struct drm_gem_object *obj) | |||
832 | omap_obj->block = NULL; | 831 | omap_obj->block = NULL; |
833 | } | 832 | } |
834 | } | 833 | } |
835 | fail: | 834 | |
836 | mutex_unlock(&obj->dev->struct_mutex); | 835 | mutex_unlock(&obj->dev->struct_mutex); |
837 | return ret; | ||
838 | } | 836 | } |
839 | 837 | ||
840 | /* Get rotated scanout address (only valid if already pinned), at the | 838 | /* Get rotated scanout address (only valid if already pinned), at the |
@@ -1378,11 +1376,7 @@ struct drm_gem_object *omap_gem_new(struct drm_device *dev, | |||
1378 | 1376 | ||
1379 | omap_obj = kzalloc(sizeof(*omap_obj), GFP_KERNEL); | 1377 | omap_obj = kzalloc(sizeof(*omap_obj), GFP_KERNEL); |
1380 | if (!omap_obj) | 1378 | if (!omap_obj) |
1381 | goto fail; | 1379 | return NULL; |
1382 | |||
1383 | spin_lock(&priv->list_lock); | ||
1384 | list_add(&omap_obj->mm_list, &priv->obj_list); | ||
1385 | spin_unlock(&priv->list_lock); | ||
1386 | 1380 | ||
1387 | obj = &omap_obj->base; | 1381 | obj = &omap_obj->base; |
1388 | 1382 | ||
@@ -1392,11 +1386,19 @@ struct drm_gem_object *omap_gem_new(struct drm_device *dev, | |||
1392 | */ | 1386 | */ |
1393 | omap_obj->vaddr = dma_alloc_writecombine(dev->dev, size, | 1387 | omap_obj->vaddr = dma_alloc_writecombine(dev->dev, size, |
1394 | &omap_obj->paddr, GFP_KERNEL); | 1388 | &omap_obj->paddr, GFP_KERNEL); |
1395 | if (omap_obj->vaddr) | 1389 | if (!omap_obj->vaddr) { |
1396 | flags |= OMAP_BO_DMA; | 1390 | kfree(omap_obj); |
1391 | |||
1392 | return NULL; | ||
1393 | } | ||
1397 | 1394 | ||
1395 | flags |= OMAP_BO_DMA; | ||
1398 | } | 1396 | } |
1399 | 1397 | ||
1398 | spin_lock(&priv->list_lock); | ||
1399 | list_add(&omap_obj->mm_list, &priv->obj_list); | ||
1400 | spin_unlock(&priv->list_lock); | ||
1401 | |||
1400 | omap_obj->flags = flags; | 1402 | omap_obj->flags = flags; |
1401 | 1403 | ||
1402 | if (flags & OMAP_BO_TILED) { | 1404 | if (flags & OMAP_BO_TILED) { |