]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
[media] s5p-jpeg: Add m2m_ops field to the s5p_jpeg_variant structure
authorJacek Anaszewski <j.anaszewski@samsung.com>
Thu, 10 Apr 2014 07:32:13 +0000 (04:32 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 13 May 2014 23:19:28 +0000 (20:19 -0300)
Simplify the code by adding m2m_ops field to the
s5p_jpeg_variant structure which allows to avoid
"if" statement in the s5p_jpeg_probe function.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/platform/s5p-jpeg/jpeg-core.c
drivers/media/platform/s5p-jpeg/jpeg-core.h

index 5cf7835a64d2b78780c26548e3ba2114dcc8f379..4a981540f89915927705c576e669ff6319c34cdc 100644 (file)
@@ -1566,7 +1566,7 @@ static struct v4l2_m2m_ops s5p_jpeg_m2m_ops = {
        .job_abort      = s5p_jpeg_job_abort,
 }
 ;
-static struct v4l2_m2m_ops exynos_jpeg_m2m_ops = {
+static struct v4l2_m2m_ops exynos4_jpeg_m2m_ops = {
        .device_run     = exynos4_jpeg_device_run,
        .job_ready      = s5p_jpeg_job_ready,
        .job_abort      = s5p_jpeg_job_abort,
@@ -1850,7 +1850,6 @@ static int s5p_jpeg_probe(struct platform_device *pdev)
 {
        struct s5p_jpeg *jpeg;
        struct resource *res;
-       struct v4l2_m2m_ops *samsung_jpeg_m2m_ops;
        int ret;
 
        if (!pdev->dev.of_node)
@@ -1904,13 +1903,8 @@ static int s5p_jpeg_probe(struct platform_device *pdev)
                goto clk_get_rollback;
        }
 
-       if (jpeg->variant->version == SJPEG_S5P)
-               samsung_jpeg_m2m_ops = &s5p_jpeg_m2m_ops;
-       else
-               samsung_jpeg_m2m_ops = &exynos_jpeg_m2m_ops;
-
        /* mem2mem device */
-       jpeg->m2m_dev = v4l2_m2m_init(samsung_jpeg_m2m_ops);
+       jpeg->m2m_dev = v4l2_m2m_init(jpeg->variant->m2m_ops);
        if (IS_ERR(jpeg->m2m_dev)) {
                v4l2_err(&jpeg->v4l2_dev, "Failed to init mem2mem device\n");
                ret = PTR_ERR(jpeg->m2m_dev);
@@ -2099,12 +2093,14 @@ static const struct dev_pm_ops s5p_jpeg_pm_ops = {
 static struct s5p_jpeg_variant s5p_jpeg_drvdata = {
        .version        = SJPEG_S5P,
        .jpeg_irq       = s5p_jpeg_irq,
+       .m2m_ops        = &s5p_jpeg_m2m_ops,
        .fmt_ver_flag   = SJPEG_FMT_FLAG_S5P,
 };
 
 static struct s5p_jpeg_variant exynos4_jpeg_drvdata = {
        .version        = SJPEG_EXYNOS4,
        .jpeg_irq       = exynos4_jpeg_irq,
+       .m2m_ops        = &exynos4_jpeg_m2m_ops,
        .fmt_ver_flag   = SJPEG_FMT_FLAG_EXYNOS4,
 };
 
index c222436d4661a4a4805886c971131198e2ef94e7..3e4786329727087655a0121d52dd2bfd2831a0ca 100644 (file)
@@ -117,9 +117,10 @@ struct s5p_jpeg {
 };
 
 struct s5p_jpeg_variant {
-       unsigned int    version;
-       unsigned int    fmt_ver_flag;
-       irqreturn_t     (*jpeg_irq)(int irq, void *priv);
+       unsigned int            version;
+       unsigned int            fmt_ver_flag;
+       struct v4l2_m2m_ops     *m2m_ops;
+       irqreturn_t             (*jpeg_irq)(int irq, void *priv);
 };
 
 /**