drm/exynos/ipp: simplify property list allocation
authorAndrzej Hajda <a.hajda@samsung.com>
Mon, 19 May 2014 10:54:05 +0000 (12:54 +0200)
committerInki Dae <daeinki@gmail.com>
Sun, 1 Jun 2014 17:07:11 +0000 (02:07 +0900)
prop_list is always allocated, so instead of allocating it dynamically
the pointer can be replaced by the structure itself.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_fimc.c
drivers/gpu/drm/exynos/exynos_drm_gsc.c
drivers/gpu/drm/exynos/exynos_drm_ipp.c
drivers/gpu/drm/exynos/exynos_drm_ipp.h
drivers/gpu/drm/exynos/exynos_drm_rotator.c

index 30d76b2ff9c26a8e2f3329dff66d8e301d04b11f..5060f8a04c6199dc4b35a27248b014c2f314a877 100644 (file)
@@ -1342,11 +1342,7 @@ static irqreturn_t fimc_irq_handler(int irq, void *dev_id)
 
 static int fimc_init_prop_list(struct exynos_drm_ippdrv *ippdrv)
 {
-       struct drm_exynos_ipp_prop_list *prop_list;
-
-       prop_list = devm_kzalloc(ippdrv->dev, sizeof(*prop_list), GFP_KERNEL);
-       if (!prop_list)
-               return -ENOMEM;
+       struct drm_exynos_ipp_prop_list *prop_list = &ippdrv->prop_list;
 
        prop_list->version = 1;
        prop_list->writeback = 1;
@@ -1371,8 +1367,6 @@ static int fimc_init_prop_list(struct exynos_drm_ippdrv *ippdrv)
        prop_list->scale_min.hsize = FIMC_SCALE_MIN;
        prop_list->scale_min.vsize = FIMC_SCALE_MIN;
 
-       ippdrv->prop_list = prop_list;
-
        return 0;
 }
 
@@ -1395,7 +1389,7 @@ static int fimc_ippdrv_check_property(struct device *dev,
 {
        struct fimc_context *ctx = get_fimc_context(dev);
        struct exynos_drm_ippdrv *ippdrv = &ctx->ippdrv;
-       struct drm_exynos_ipp_prop_list *pp = ippdrv->prop_list;
+       struct drm_exynos_ipp_prop_list *pp = &ippdrv->prop_list;
        struct drm_exynos_ipp_config *config;
        struct drm_exynos_pos *pos;
        struct drm_exynos_sz *sz;
index fa75059a61047e7c51fc17adad52275f59177589..9e3ff1672965d3e17044d0e59fa524193404ff02 100644 (file)
@@ -1335,11 +1335,7 @@ static irqreturn_t gsc_irq_handler(int irq, void *dev_id)
 
 static int gsc_init_prop_list(struct exynos_drm_ippdrv *ippdrv)
 {
-       struct drm_exynos_ipp_prop_list *prop_list;
-
-       prop_list = devm_kzalloc(ippdrv->dev, sizeof(*prop_list), GFP_KERNEL);
-       if (!prop_list)
-               return -ENOMEM;
+       struct drm_exynos_ipp_prop_list *prop_list = &ippdrv->prop_list;
 
        prop_list->version = 1;
        prop_list->writeback = 1;
@@ -1363,8 +1359,6 @@ static int gsc_init_prop_list(struct exynos_drm_ippdrv *ippdrv)
        prop_list->scale_min.hsize = GSC_SCALE_MIN;
        prop_list->scale_min.vsize = GSC_SCALE_MIN;
 
-       ippdrv->prop_list = prop_list;
-
        return 0;
 }
 
@@ -1387,7 +1381,7 @@ static int gsc_ippdrv_check_property(struct device *dev,
 {
        struct gsc_context *ctx = get_gsc_context(dev);
        struct exynos_drm_ippdrv *ippdrv = &ctx->ippdrv;
-       struct drm_exynos_ipp_prop_list *pp = ippdrv->prop_list;
+       struct drm_exynos_ipp_prop_list *pp = &ippdrv->prop_list;
        struct drm_exynos_ipp_config *config;
        struct drm_exynos_pos *pos;
        struct drm_exynos_sz *sz;
index e6ef4159878904419f0bf3bfcc839bb7690ae4f4..bf71d978863d09775f9fd2d3a513f7726af18dde 100644 (file)
@@ -346,7 +346,7 @@ int exynos_drm_ipp_get_property(struct drm_device *drm_dev, void *data,
                        return PTR_ERR(ippdrv);
                }
 
-               *prop_list = *ippdrv->prop_list;
+               *prop_list = ippdrv->prop_list;
        }
 
        return 0;
@@ -1713,7 +1713,7 @@ static int ipp_subdrv_probe(struct drm_device *drm_dev, struct device *dev)
                DRM_DEBUG_KMS("count[%d]ippdrv[0x%x]ipp_id[%d]\n",
                        count++, (int)ippdrv, ipp_id);
 
-               ippdrv->prop_list->ipp_id = ipp_id;
+               ippdrv->prop_list.ipp_id = ipp_id;
 
                /* store parent device for node */
                ippdrv->parent_dev = dev;
index 4aa71b21657a31e9fc3d0eee45feaefadb73c6e2..eea4db3c94580f276bfc5685ece7b6fdd61e68ef 100644 (file)
@@ -165,7 +165,7 @@ struct exynos_drm_ippdrv {
        struct workqueue_struct *event_workq;
        struct drm_exynos_ipp_cmd_node *c_node;
        struct list_head        cmd_list;
-       struct drm_exynos_ipp_prop_list *prop_list;
+       struct drm_exynos_ipp_prop_list prop_list;
 
        int (*check_property)(struct device *dev,
                struct drm_exynos_ipp_property *property);
index c67542750b6a28b71fbd4baa29e17ae85e87147a..f01fbb6dc1f06249f7c3947f14a378a7a8651f95 100644 (file)
@@ -470,11 +470,7 @@ static struct exynos_drm_ipp_ops rot_dst_ops = {
 
 static int rotator_init_prop_list(struct exynos_drm_ippdrv *ippdrv)
 {
-       struct drm_exynos_ipp_prop_list *prop_list;
-
-       prop_list = devm_kzalloc(ippdrv->dev, sizeof(*prop_list), GFP_KERNEL);
-       if (!prop_list)
-               return -ENOMEM;
+       struct drm_exynos_ipp_prop_list *prop_list = &ippdrv->prop_list;
 
        prop_list->version = 1;
        prop_list->flip = (1 << EXYNOS_DRM_FLIP_VERTICAL) |
@@ -487,8 +483,6 @@ static int rotator_init_prop_list(struct exynos_drm_ippdrv *ippdrv)
        prop_list->crop = 0;
        prop_list->scale = 0;
 
-       ippdrv->prop_list = prop_list;
-
        return 0;
 }