diff options
author | Andrzej Hajda <a.hajda@samsung.com> | 2014-07-03 09:10:36 -0400 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2014-08-03 03:52:19 -0400 |
commit | 12ff54d25d0900a5a3d2f01a02280f15176ef4a3 (patch) | |
tree | e4161cc111b94a0ce4d9ac287b737f273ae9e932 | |
parent | 57ace3358450f4701159521c23b379884300c8d0 (diff) |
drm/exynos/ipp: simplify ipp_create_id
There is no gain in passing id by pointer to be filled.
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_ipp.c | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c index 0552f62295a2..ae75a1d9aaba 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c | |||
@@ -145,20 +145,15 @@ int exynos_drm_ippdrv_unregister(struct exynos_drm_ippdrv *ippdrv) | |||
145 | return 0; | 145 | return 0; |
146 | } | 146 | } |
147 | 147 | ||
148 | static int ipp_create_id(struct idr *id_idr, struct mutex *lock, void *obj, | 148 | static int ipp_create_id(struct idr *id_idr, struct mutex *lock, void *obj) |
149 | u32 *idp) | ||
150 | { | 149 | { |
151 | int ret; | 150 | int ret; |
152 | 151 | ||
153 | /* do the allocation under our mutexlock */ | ||
154 | mutex_lock(lock); | 152 | mutex_lock(lock); |
155 | ret = idr_alloc(id_idr, obj, 1, 0, GFP_KERNEL); | 153 | ret = idr_alloc(id_idr, obj, 1, 0, GFP_KERNEL); |
156 | mutex_unlock(lock); | 154 | mutex_unlock(lock); |
157 | if (ret < 0) | ||
158 | return ret; | ||
159 | 155 | ||
160 | *idp = ret; | 156 | return ret; |
161 | return 0; | ||
162 | } | 157 | } |
163 | 158 | ||
164 | static void ipp_remove_id(struct idr *id_idr, struct mutex *lock, u32 id) | 159 | static void ipp_remove_id(struct idr *id_idr, struct mutex *lock, u32 id) |
@@ -471,13 +466,12 @@ int exynos_drm_ipp_set_property(struct drm_device *drm_dev, void *data, | |||
471 | if (!c_node) | 466 | if (!c_node) |
472 | return -ENOMEM; | 467 | return -ENOMEM; |
473 | 468 | ||
474 | /* create property id */ | 469 | ret = ipp_create_id(&ctx->prop_idr, &ctx->prop_lock, c_node); |
475 | ret = ipp_create_id(&ctx->prop_idr, &ctx->prop_lock, c_node, | 470 | if (ret < 0) { |
476 | &property->prop_id); | ||
477 | if (ret) { | ||
478 | DRM_ERROR("failed to create id.\n"); | 471 | DRM_ERROR("failed to create id.\n"); |
479 | goto err_clear; | 472 | goto err_clear; |
480 | } | 473 | } |
474 | property->prop_id = ret; | ||
481 | 475 | ||
482 | DRM_DEBUG_KMS("created prop_id[%d]cmd[%d]ippdrv[0x%x]\n", | 476 | DRM_DEBUG_KMS("created prop_id[%d]cmd[%d]ippdrv[0x%x]\n", |
483 | property->prop_id, property->cmd, (int)ippdrv); | 477 | property->prop_id, property->cmd, (int)ippdrv); |
@@ -1636,21 +1630,17 @@ static int ipp_subdrv_probe(struct drm_device *drm_dev, struct device *dev) | |||
1636 | 1630 | ||
1637 | /* get ipp driver entry */ | 1631 | /* get ipp driver entry */ |
1638 | list_for_each_entry(ippdrv, &exynos_drm_ippdrv_list, drv_list) { | 1632 | list_for_each_entry(ippdrv, &exynos_drm_ippdrv_list, drv_list) { |
1639 | u32 ipp_id; | ||
1640 | |||
1641 | ippdrv->drm_dev = drm_dev; | 1633 | ippdrv->drm_dev = drm_dev; |
1642 | 1634 | ||
1643 | ret = ipp_create_id(&ctx->ipp_idr, &ctx->ipp_lock, ippdrv, | 1635 | ret = ipp_create_id(&ctx->ipp_idr, &ctx->ipp_lock, ippdrv); |
1644 | &ipp_id); | 1636 | if (ret < 0) { |
1645 | if (ret || ipp_id == 0) { | ||
1646 | DRM_ERROR("failed to create id.\n"); | 1637 | DRM_ERROR("failed to create id.\n"); |
1647 | goto err; | 1638 | goto err; |
1648 | } | 1639 | } |
1640 | ippdrv->prop_list.ipp_id = ret; | ||
1649 | 1641 | ||
1650 | DRM_DEBUG_KMS("count[%d]ippdrv[0x%x]ipp_id[%d]\n", | 1642 | DRM_DEBUG_KMS("count[%d]ippdrv[0x%x]ipp_id[%d]\n", |
1651 | count++, (int)ippdrv, ipp_id); | 1643 | count++, (int)ippdrv, ret); |
1652 | |||
1653 | ippdrv->prop_list.ipp_id = ipp_id; | ||
1654 | 1644 | ||
1655 | /* store parent device for node */ | 1645 | /* store parent device for node */ |
1656 | ippdrv->parent_dev = dev; | 1646 | ippdrv->parent_dev = dev; |