[PORT FROM R2] atomisp: CSS/FW release from 20111115_0600 baseline
authorLokesh Gupta <lokesh.gupta@intel.com>
Tue, 15 Nov 2011 20:33:48 +0000 (21:33 +0100)
committerbuildbot <buildbot@intel.com>
Mon, 19 Dec 2011 13:30:11 +0000 (05:30 -0800)
BZ: 17272

A white line on the right side of frame when double click the
screen to zoom 16x. This release fixes this issue.

Change-Id: I77b8ea0ac7e20c558ead3cfd3010e4377cd03c13
Orig-Change-Id: I5cdb439a14c0cc3b6f6cc8425019169453a2be60
Signed-off-by: Lokesh Gupta <lokesh.gupta@intel.com>
Reviewed-on: http://android.intel.com:8080/24138
Reviewed-by: Kruger, Jozef <jozef.kruger@intel.com>
Reviewed-by: Wang, Wen W <wen.w.wang@intel.com>
Reviewed-by: Koski, Anttu <anttu.koski@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/28004
Reviewed-by: Tuominen, TeemuX <teemux.tuominen@intel.com>
drivers/media/video/atomisp/css/hrt/sp.map.h
drivers/media/video/atomisp/css/sh_css_internal.h
drivers/media/video/atomisp/css/sh_css_params.c
drivers/media/video/atomisp/css/sh_css_params.h
drivers/media/video/atomisp/css/sh_css_types.h

index d88c531..dad0254 100644 (file)
 #define HIVE_MEM_histogram_args  scalar_processor_dmem
 #define HIVE_ADDR_histogram_args 0x2810
 #define HIVE_SIZE_histogram_args 4
-#define HIVE_ADDR_capture_pp_dynamic_entry 0x32F7
+#define HIVE_ADDR_capture_pp_dynamic_entry 0x3311
 #define HIVE_MEM_isp_sdis_horiproj_num  scalar_processor_dmem
 #define HIVE_ADDR_isp_sdis_horiproj_num 0x1464
 #define HIVE_SIZE_isp_sdis_horiproj_num 4
index 1e18ce0..c0e3cef 100644 (file)
@@ -133,6 +133,10 @@ struct sh_css_isp_params {
 
        /* ANR (Advance Noise Reduction) */
        int anr_threshold;
+
+       /* CE (Chroma Enhancement) */
+       int ce_uv_level_min;
+       int ce_uv_level_max;
 };
 
 /* xmem address map allocation */
index f8344e2..71d5609 100644 (file)
@@ -95,6 +95,7 @@ static const struct sh_css_ee_config     *ee_config;
 static const struct sh_css_de_config     *de_config;
 static const struct sh_css_gc_config     *gc_config;
 static const struct sh_css_anr_config    *anr_config;
+static const struct sh_css_ce_config     *ce_config;
 static bool isp_params_changed,
            fpn_table_changed,
            dis_coef_table_changed,
@@ -113,7 +114,8 @@ static bool isp_params_changed,
            ee_config_changed,
            de_config_changed,
            gc_config_changed,
-           anr_config_changed;
+           anr_config_changed,
+           ce_config_changed;
 
 static size_t fpn_tbl_size,
              sc_tbl_size,
@@ -616,6 +618,11 @@ static const struct sh_css_anr_config default_anr_config = {
        .threshold   = 5,
 };
 
+static const struct sh_css_ce_config default_ce_config = {
+       .uv_level_min = 0,
+       .uv_level_max = 255
+};
+
 int
 sh_css_get_gdc_coord_one(void)
 {
@@ -1208,6 +1215,15 @@ sh_css_process_anr(void)
        anr_config_changed = false;
 }
 
+static void
+sh_css_process_ce(void)
+{
+       isp_parameters.ce_uv_level_min = ce_config->uv_level_min;
+       isp_parameters.ce_uv_level_max = ce_config->uv_level_max;
+       isp_params_changed = true;
+       ce_config_changed = false;
+}
+
 void
 sh_css_set_gamma_table(const struct sh_css_gamma_table *table)
 {
@@ -1542,6 +1558,22 @@ sh_css_get_anr_config(const struct sh_css_anr_config **config)
        *config = anr_config;
 }
 
+void
+sh_css_set_ce_config(const struct sh_css_ce_config *config)
+{
+       if (config)
+               ce_config = config;
+       else
+               ce_config = &default_ce_config;
+       ce_config_changed = true;
+}
+
+void
+sh_css_get_ce_config(const struct sh_css_ce_config **config)
+{
+       *config = ce_config;
+}
+
 static bool
 alloc(void **ptr, unsigned int bytes)
 {
@@ -1733,6 +1765,7 @@ sh_css_params_init(void)
        sh_css_set_de_config(&default_de_config);
        sh_css_set_gc_config(&default_gc_config);
        sh_css_set_anr_config(&default_anr_config);
+       sh_css_set_ce_config(&default_ce_config);
        sh_css_set_macc_table(&default_macc_table);
        sh_css_set_gamma_table(&default_gamma_table);
        sh_css_set_ctc_table(&default_ctc_table);
@@ -1906,6 +1939,8 @@ sh_css_params_write_to_ddr(const struct sh_css_binary *binary)
                sh_css_process_gc();
        if (anr_config && anr_config_changed)
                sh_css_process_anr();
+       if (ce_config && ce_config_changed)
+               sh_css_process_ce();
 
        if (isp_params_changed) {
                if (SH_CSS_PREVENT_UNINIT_READS) {
index cbf505b..d47a115 100644 (file)
@@ -131,6 +131,13 @@ sh_css_set_de_config(const struct sh_css_de_config *de_config);
 void
 sh_css_get_de_config(const struct sh_css_de_config **de_config);
 
+/* Color Enhancement */
+void
+sh_css_set_ce_config(const struct sh_css_ce_config *ce_config);
+
+void
+sh_css_get_ce_config(const struct sh_css_ce_config **ce_config);
+
 /* Gamma Correction */
 void
 sh_css_set_gc_config(const struct sh_css_gc_config *gc_config);
index 6a497ef..5c1a108 100644 (file)
@@ -628,6 +628,11 @@ struct sh_css_anr_config {
        int threshold;
 };
 
+struct sh_css_ce_config {
+       u0_16 uv_level_min;
+       u0_16 uv_level_max;
+};
+
 struct sh_css_3a_config {
        u0_16 ae_y_coef_r;      /* [gain] Weight of R for Y */
        u0_16 ae_y_coef_g;      /* [gain] Weight of G for Y */