mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
tvafe: fix identify as PAL-DK when the input signal is SCAM DK [1/1]
PD#TV-7779 Problem: identify as PAL-DK when the input signal is SECAM DK Solution: increase atv try_fmt max cnt to recognize SECAM Verify: x301 Change-Id: I306f2337b6b2c3d0b4ec2fc85e45f9f5993b754b Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
/* ************************************************* */
|
||||
/* *** macro definitions ********************************************* */
|
||||
/* *********************************************************** */
|
||||
#define TVAFE_VER "Ref.2019/07/02"
|
||||
#define TVAFE_VER "Ref.2019/07/15"
|
||||
|
||||
/* used to set the flag of tvafe_dev_s */
|
||||
#define TVAFE_FLAG_DEV_OPENED 0x00000010
|
||||
|
||||
@@ -90,7 +90,6 @@
|
||||
#define SYNC_SENSITIVITY true
|
||||
#define NOISE_JUDGE false
|
||||
#define PGA_DEFAULT_VAL 0x20
|
||||
#define TRY_FORMAT_MAX 5
|
||||
|
||||
/*0:NORMAL 1:a little sharper 2:sharper 3:even sharper*/
|
||||
#define CVD2_FILTER_CONFIG_LEVEL 0
|
||||
@@ -141,6 +140,9 @@ module_param(config_force_fmt, uint, 0664);
|
||||
MODULE_PARM_DESC(config_force_fmt,
|
||||
"after try TRY_FORMAT_MAX times ,we will force one fmt");
|
||||
|
||||
unsigned int try_fmt_max_atv = 24; /* 5->24 for SECAM identify to PAL */
|
||||
unsigned int try_fmt_max_av = 5;
|
||||
|
||||
/*0:normal nonstandard configure every loop*/
|
||||
/*1:force nonstandard configure every loop*/
|
||||
/*2:nonstandard configure once*/
|
||||
@@ -1555,6 +1557,13 @@ static void tvafe_cvd2_search_video_mode(struct tvafe_cvd2_s *cvd2,
|
||||
struct tvafe_cvd2_mem_s *mem)
|
||||
{
|
||||
unsigned int shift_cnt = 0;
|
||||
unsigned int try_format_max;
|
||||
|
||||
if ((cvd2->vd_port == TVIN_PORT_CVBS3) ||
|
||||
(cvd2->vd_port == TVIN_PORT_CVBS0))
|
||||
try_format_max = try_fmt_max_atv;
|
||||
else
|
||||
try_format_max = try_fmt_max_av;
|
||||
|
||||
/* execute manual mode */
|
||||
if ((cvd2->manual_fmt) && (cvd2->config_fmt != cvd2->manual_fmt) &&
|
||||
@@ -1611,10 +1620,10 @@ static void tvafe_cvd2_search_video_mode(struct tvafe_cvd2_s *cvd2,
|
||||
cvd2->hw_data[cvd2->hw_data_cur].secam_detected);
|
||||
/* force mode:due to some*/
|
||||
/*signal is hard to check out */
|
||||
if (++try_format_cnt == TRY_FORMAT_MAX) {
|
||||
if (++try_format_cnt == try_format_max) {
|
||||
cvd_force_config_fmt(cvd2, mem, config_force_fmt);
|
||||
return;
|
||||
} else if (try_format_cnt > TRY_FORMAT_MAX) {
|
||||
} else if (try_format_cnt > try_format_max) {
|
||||
cvd2->info.state = TVAFE_CVD2_STATE_FIND;
|
||||
force_fmt_flag = 1;
|
||||
return;
|
||||
@@ -1822,7 +1831,7 @@ static void tvafe_cvd2_search_video_mode(struct tvafe_cvd2_s *cvd2,
|
||||
cvd_force_config_fmt(cvd2, mem,
|
||||
config_force_fmt);
|
||||
try_format_cnt =
|
||||
TRY_FORMAT_MAX+1;
|
||||
try_format_max+1;
|
||||
} else
|
||||
tvafe_cvd2_try_format(cvd2, mem,
|
||||
TVIN_SIG_FMT_CVBS_PAL_I);
|
||||
|
||||
@@ -223,5 +223,8 @@ extern void tvafe_cvd2_non_std_config(struct tvafe_cvd2_s *cvd2);
|
||||
|
||||
extern bool tvafe_snow_function_flag;
|
||||
|
||||
extern unsigned int try_fmt_max_atv;
|
||||
extern unsigned int try_fmt_max_av;
|
||||
|
||||
#endif /* _TVAFE_CVD_H */
|
||||
|
||||
|
||||
@@ -199,6 +199,8 @@ static void tvafe_state(struct tvafe_dev_s *devp)
|
||||
tvafe_pr_info("force_vs_th_flag:0x%x\n", user_param->force_vs_th_flag);
|
||||
tvafe_pr_info("nostd_stable_cnt:0x%x\n", user_param->nostd_stable_cnt);
|
||||
tvafe_pr_info("skip_vf_num:0x%x\n", user_param->skip_vf_num);
|
||||
tvafe_pr_info("try_fmt_max_atv:%d\n", try_fmt_max_atv);
|
||||
tvafe_pr_info("try_fmt_max_av:%d\n", try_fmt_max_av);
|
||||
tvafe_pr_info("tvafe version : %s\n", TVAFE_VER);
|
||||
}
|
||||
|
||||
@@ -398,6 +400,18 @@ static ssize_t tvafe_store(struct device *dev,
|
||||
}
|
||||
pr_info("[tvafe..]%s: skip_vf_num = %d\n",
|
||||
__func__, user_param->skip_vf_num);
|
||||
} else if (!strncmp(buff, "try_fmt_max_atv",
|
||||
strlen("try_fmt_max_atv"))) {
|
||||
if (kstrtouint(parm[1], 10, &try_fmt_max_atv) < 0)
|
||||
goto tvafe_store_err;
|
||||
pr_info("[tvafe..]%s: set try_fmt_max_atv = %d\n",
|
||||
__func__, try_fmt_max_atv);
|
||||
} else if (!strncmp(buff, "try_fmt_max_av",
|
||||
strlen("try_fmt_max_av"))) {
|
||||
if (kstrtouint(parm[1], 10, &try_fmt_max_av) < 0)
|
||||
goto tvafe_store_err;
|
||||
pr_info("[tvafe..]%s: set try_fmt_max_av = %d\n",
|
||||
__func__, try_fmt_max_av);
|
||||
} else if (!strncmp(buff, "dbg_print", strlen("dbg_print"))) {
|
||||
if (parm[1]) {
|
||||
if (kstrtouint(parm[1], 16, &tvafe_dbg_print) < 0)
|
||||
|
||||
Reference in New Issue
Block a user