amvecm: detect out of range signal [1/1]
authorXihai Zhu <xihai.zhu@amlogic.com>
Thu, 12 Sep 2019 10:05:13 +0000 (06:05 -0400)
committerXihai Zhu <xihai.zhu@amlogic.com>
Thu, 12 Sep 2019 11:11:28 +0000 (07:11 -0400)
PD#SWPL-14102

Problem:
need to detect out of range signal
correctly

Solution:
refine the checking

Verify:
tl1

Change-Id: Ia2e47ca3a427e4f66a5464997aeb8dd766b4f7ff
Signed-off-by: Xihai Zhu <xihai.zhu@amlogic.com>
drivers/amlogic/media/enhancement/amvecm/amvecm.c
drivers/amlogic/media/enhancement/amvecm/local_contrast.c
drivers/amlogic/media/enhancement/amvecm/local_contrast.h

index c7c4785..5d1b530 100644 (file)
@@ -6545,10 +6545,15 @@ static ssize_t amvecm_lc_store(struct class *cls,
        } else if (!strcmp(parm[0], "detect_signal_range_threshold")) {
                if (kstrtoul(parm[1], 10, &val) < 0)
                        goto free_buf;
+               detect_signal_range_threshold_black = val;
+               if (kstrtoul(parm[2], 10, &val) < 0)
+                       goto free_buf;
+               detect_signal_range_threshold_white = val;
                amlc_debug = 0xe;
-               detect_signal_range_threshold = val;
-               pr_info("detect_signal_range_threshold = %d\n",
-                               detect_signal_range_threshold);
+               pr_info(
+                       "detect_signal_range_threshold = %d %d\n",
+                       detect_signal_range_threshold_black,
+                       detect_signal_range_threshold_white);
        } else
                pr_info("unsupprt cmd!\n");
 
index 2191a65..fda0c14 100644 (file)
@@ -126,7 +126,8 @@ static unsigned int lc_satur_off[63] = {
 
 int tune_curve_en = 2;
 int detect_signal_range_en = 2;
-int detect_signal_range_threshold = 1200;
+int detect_signal_range_threshold_black = 1200;
+int detect_signal_range_threshold_white = 3200;
 
 /*local contrast begin*/
 static void lc_mtx_set(enum lc_mtx_sel_e mtx_sel,
@@ -636,8 +637,9 @@ static int signal_detect(unsigned short *hist)
                amlc_debug = 0x0;
        }
 
-       if (((bin0 + bin1) > detect_signal_range_threshold) ||
-            ((bin62 + bin63) > detect_signal_range_threshold))
+       if (
+               ((bin0 + bin1) > detect_signal_range_threshold_black) ||
+               ((bin62 + bin63) > detect_signal_range_threshold_white))
                return 1;
 
        return 0;
index 600b3ec..9e79c7e 100644 (file)
@@ -67,7 +67,8 @@ extern int amlc_debug;
 extern int lc_reg_lmtrat_sigbin;
 extern int tune_curve_en;
 extern int detect_signal_range_en;
-extern int detect_signal_range_threshold;
+extern int detect_signal_range_threshold_black;
+extern int detect_signal_range_threshold_white;
 extern int lc_en;
 extern int lc_demo_mode;
 extern unsigned int lc_hist_vs;