[PORT FROM R2] atomisp: implement chroma enhancement
authorDaewoo Kim <daewoo.kim@intel.com>
Tue, 15 Nov 2011 02:24:23 +0000 (03:24 +0100)
committerbuildbot <buildbot@intel.com>
Mon, 19 Dec 2011 13:31:05 +0000 (05:31 -0800)
BZ: 17272

Implement chroma enhancement

Change-Id: If76501d47d1faf1787f9d69c26438ec3d3afbfc0
Orig-Change-Id: I7aaf6a71e90f342d2d6de7eafe9e90260475364f
Signed-off-by: Daewoo Kim <daewoo.kim@intel.com>
Reviewed-on: http://android.intel.com:8080/24078
Reviewed-by: Gupta, Lokesh <lokesh.gupta@intel.com>
Reviewed-by: Kruger, Jozef <jozef.kruger@intel.com>
Reviewed-by: Wang, Wen W <wen.w.wang@intel.com>
Reviewed-by: Cohen, David A <david.a.cohen@intel.com>
Tested-by: Koski, Anttu <anttu.koski@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
Reviewed-on: http://android.intel.com:8080/28009
Reviewed-by: Tuominen, TeemuX <teemux.tuominen@intel.com>
Reviewed-by: Koski, Anttu <anttu.koski@intel.com>
drivers/media/video/atomisp/atomisp_cmd.c
drivers/media/video/atomisp/include/atomisp/atomisp_internal.h
include/linux/atomisp.h

index 0fcaa53..09ca4b0 100644 (file)
@@ -2029,6 +2029,8 @@ int atomisp_param(struct atomisp_device *isp, int flag,
                goto INVALID_PARM;
        if (sizeof(arg->de_config) != sizeof(isp->params.de_config))
                goto INVALID_PARM;
+       if (sizeof(arg->ce_config) != sizeof(isp->params.ce_config))
+               goto INVALID_PARM;
        if (sizeof(arg->dp_config) != sizeof(isp->params.dp_config))
                goto INVALID_PARM;
        if (sizeof(arg->nr_config) != sizeof(isp->params.nr_config))
@@ -2046,6 +2048,8 @@ int atomisp_param(struct atomisp_device *isp, int flag,
               sizeof(struct sh_css_dp_config));
        memcpy(&isp->params.de_config, &arg->de_config,
               sizeof(struct sh_css_de_config));
+       memcpy(&isp->params.ce_config, &arg->ce_config,
+              sizeof(struct sh_css_ce_config));
        memcpy(&isp->params.nr_config, &arg->nr_config,
               sizeof(struct sh_css_nr_config));
        memcpy(&isp->params.ee_config, &arg->ee_config,
@@ -2072,6 +2076,7 @@ int atomisp_param(struct atomisp_device *isp, int flag,
        sh_css_set_wb_config(&isp->params.wb_config);
        sh_css_set_ob_config(&isp->params.ob_config);
        sh_css_set_de_config(&isp->params.de_config);
+       sh_css_set_ce_config(&isp->params.ce_config);
        sh_css_set_dp_config(&isp->params.dp_config);
        sh_css_set_nr_config(&isp->params.nr_config);
        sh_css_set_ee_config(&isp->params.ee_config);
index 0494914..b4671d8 100644 (file)
@@ -164,6 +164,7 @@ struct atomisp_css_params {
        const struct sh_css_ee_config   *default_ee_config;
        const struct sh_css_ob_config   *default_ob_config;
        const struct sh_css_de_config   *default_de_config;
+       const struct sh_css_ce_config   *default_ce_config;
        const struct sh_css_gc_config   *default_gc_config;
        const struct sh_css_tnr_config  *default_tnr_config;
        const struct sh_css_3a_config   *default_3a_config;
@@ -179,6 +180,7 @@ struct atomisp_css_params {
        struct sh_css_ee_config   ee_config;
        struct sh_css_ob_config   ob_config;
        struct sh_css_de_config   de_config;
+       struct sh_css_ce_config   ce_config;
        struct sh_css_gc_config   gc_config;
        struct sh_css_tnr_config  tnr_config;
        struct sh_css_3a_config   s3a_config;
index cba346b..6ed4775 100644 (file)
@@ -184,6 +184,12 @@ struct atomisp_de_config {
        unsigned int c2_coring_threshold;
 };
 
+/* Chroma enhancement */
+struct atomisp_ce_config {
+       unsigned int uv_level_min;
+       unsigned int uv_level_max;
+};
+
 /* Defect pixel correction configuration */
 struct atomisp_dp_config {
        /* [intensity] The threshold of defect Pixel Correction, representing
@@ -204,6 +210,7 @@ struct atomisp_parm {
        struct atomisp_cc_config cc_config;
        struct atomisp_ob_config ob_config;
        struct atomisp_de_config de_config;
+       struct atomisp_ce_config ce_config;
        struct atomisp_dp_config dp_config;
        struct atomisp_nr_config nr_config;
        struct atomisp_ee_config ee_config;