From 5479e809250334e5c508f584a227355428d0cb15 Mon Sep 17 00:00:00 2001 From: Xihai Zhu Date: Thu, 12 Sep 2019 06:05:13 -0400 Subject: [PATCH] amvecm: detect out of range signal [1/1] 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 --- drivers/amlogic/media/enhancement/amvecm/amvecm.c | 11 ++++++++--- drivers/amlogic/media/enhancement/amvecm/local_contrast.c | 8 +++++--- drivers/amlogic/media/enhancement/amvecm/local_contrast.h | 3 ++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/amlogic/media/enhancement/amvecm/amvecm.c b/drivers/amlogic/media/enhancement/amvecm/amvecm.c index c7c4785..5d1b530 100644 --- a/drivers/amlogic/media/enhancement/amvecm/amvecm.c +++ b/drivers/amlogic/media/enhancement/amvecm/amvecm.c @@ -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"); diff --git a/drivers/amlogic/media/enhancement/amvecm/local_contrast.c b/drivers/amlogic/media/enhancement/amvecm/local_contrast.c index 2191a65..fda0c14 100644 --- a/drivers/amlogic/media/enhancement/amvecm/local_contrast.c +++ b/drivers/amlogic/media/enhancement/amvecm/local_contrast.c @@ -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; diff --git a/drivers/amlogic/media/enhancement/amvecm/local_contrast.h b/drivers/amlogic/media/enhancement/amvecm/local_contrast.h index 600b3ec..9e79c7e 100644 --- a/drivers/amlogic/media/enhancement/amvecm/local_contrast.h +++ b/drivers/amlogic/media/enhancement/amvecm/local_contrast.h @@ -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; -- 2.7.4