diff options
Diffstat (limited to 'drivers/staging/omapdrm/omap_gem.c')
-rw-r--r-- | drivers/staging/omapdrm/omap_gem.c | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/drivers/staging/omapdrm/omap_gem.c b/drivers/staging/omapdrm/omap_gem.c index 66e2c2f8a239..c38992b76fc9 100644 --- a/drivers/staging/omapdrm/omap_gem.c +++ b/drivers/staging/omapdrm/omap_gem.c @@ -25,7 +25,7 @@ #include "omap_dmm_tiler.h" /* remove these once drm core helpers are merged */ -struct page ** _drm_gem_get_pages(struct drm_gem_object *obj, gfp_t gfpmask); +struct page **_drm_gem_get_pages(struct drm_gem_object *obj, gfp_t gfpmask); void _drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages, bool dirty, bool accessed); int _drm_gem_create_mmap_offset_size(struct drm_gem_object *obj, size_t size); @@ -521,9 +521,8 @@ int omap_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) /* if a shmem backed object, make sure we have pages attached now */ ret = get_pages(obj, &pages); - if (ret) { + if (ret) goto fail; - } /* where should we do corresponding put_pages().. we are mapping * the original page, rather than thru a GART, so we can't rely @@ -953,7 +952,7 @@ int omap_gem_put_pages(struct drm_gem_object *obj) void *omap_gem_vaddr(struct drm_gem_object *obj) { struct omap_gem_object *omap_obj = to_omap_bo(obj); - WARN_ON(! mutex_is_locked(&obj->dev->struct_mutex)); + WARN_ON(!mutex_is_locked(&obj->dev->struct_mutex)); if (!omap_obj->vaddr) { struct page **pages; int ret = get_pages(obj, &pages); @@ -972,7 +971,7 @@ void omap_gem_describe(struct drm_gem_object *obj, struct seq_file *m) struct omap_gem_object *omap_obj = to_omap_bo(obj); uint64_t off = 0; - WARN_ON(! mutex_is_locked(&dev->struct_mutex)); + WARN_ON(!mutex_is_locked(&dev->struct_mutex)); if (obj->map_list.map) off = (uint64_t)obj->map_list.hash.key; @@ -1146,9 +1145,8 @@ int omap_gem_op_sync(struct drm_gem_object *obj, enum omap_gem_op op) struct omap_gem_sync_waiter *waiter = kzalloc(sizeof(*waiter), GFP_KERNEL); - if (!waiter) { + if (!waiter) return -ENOMEM; - } waiter->omap_obj = omap_obj; waiter->op = op; @@ -1177,9 +1175,8 @@ int omap_gem_op_sync(struct drm_gem_object *obj, enum omap_gem_op op) } spin_unlock(&sync_lock); - if (waiter) { + if (waiter) kfree(waiter); - } } return ret; } @@ -1201,9 +1198,8 @@ int omap_gem_op_async(struct drm_gem_object *obj, enum omap_gem_op op, struct omap_gem_sync_waiter *waiter = kzalloc(sizeof(*waiter), GFP_ATOMIC); - if (!waiter) { + if (!waiter) return -ENOMEM; - } waiter->omap_obj = omap_obj; waiter->op = op; @@ -1285,9 +1281,8 @@ void omap_gem_free_object(struct drm_gem_object *obj) list_del(&omap_obj->mm_list); - if (obj->map_list.map) { + if (obj->map_list.map) drm_gem_free_mmap_offset(obj); - } /* this means the object is still pinned.. which really should * not happen. I think.. @@ -1296,9 +1291,9 @@ void omap_gem_free_object(struct drm_gem_object *obj) /* don't free externally allocated backing memory */ if (!(omap_obj->flags & OMAP_BO_EXT_MEM)) { - if (omap_obj->pages) { + if (omap_obj->pages) omap_gem_detach_pages(obj); - } + if (!is_shmem(obj)) { dma_free_writecombine(dev->dev, obj->size, omap_obj->vaddr, omap_obj->paddr); @@ -1308,9 +1303,8 @@ void omap_gem_free_object(struct drm_gem_object *obj) } /* don't free externally allocated syncobj */ - if (!(omap_obj->flags & OMAP_BO_EXT_SYNC)) { + if (!(omap_obj->flags & OMAP_BO_EXT_SYNC)) kfree(omap_obj->sync); - } drm_gem_object_release(obj); @@ -1395,9 +1389,9 @@ struct drm_gem_object *omap_gem_new(struct drm_device *dev, */ omap_obj->vaddr = dma_alloc_writecombine(dev->dev, size, &omap_obj->paddr, GFP_KERNEL); - if (omap_obj->vaddr) { + if (omap_obj->vaddr) flags |= OMAP_BO_DMA; - } + } omap_obj->flags = flags; @@ -1407,22 +1401,20 @@ struct drm_gem_object *omap_gem_new(struct drm_device *dev, omap_obj->height = gsize.tiled.height; } - if (flags & (OMAP_BO_DMA|OMAP_BO_EXT_MEM)) { + if (flags & (OMAP_BO_DMA|OMAP_BO_EXT_MEM)) ret = drm_gem_private_object_init(dev, obj, size); - } else { + else ret = drm_gem_object_init(dev, obj, size); - } - if (ret) { + if (ret) goto fail; - } return obj; fail: - if (obj) { + if (obj) omap_gem_free_object(obj); - } + return NULL; } @@ -1435,7 +1427,7 @@ void omap_gem_init(struct drm_device *dev) }; int i, j; - if (!dmm_is_initialized()) { + if (!dmm_is_available()) { /* DMM only supported on OMAP4 and later, so this isn't fatal */ dev_warn(dev->dev, "DMM not available, disable DMM support\n"); return; |