static int lock_cnt;
static unsigned int cvd_reg8a = 0xa;
static int auto_vs_en = 1;
+static bool ntsc50_en;
module_param(auto_vs_en, int, 0664);
MODULE_PARM_DESC(auto_vs_en, "auto_vs_en\n");
/* line625+brust358+pal*/
/*-> pal_cn */
cvd2->info.state = TVAFE_CVD2_STATE_FIND;
- } else if (cvd2->hw.line625 &&
+ } else if (((cvd2->vd_port == TVIN_PORT_CVBS1) ||
+ (cvd2->vd_port == TVIN_PORT_CVBS2) || ntsc50_en)
+ && (cvd2->hw.line625 &&
cvd2->hw.fsc_358 &&
!cvd2->hw.pal &&
!cvd2->hw.fsc_443 &&
- !cvd2->hw.secam)
+ !cvd2->hw.secam))
tvafe_cvd2_try_format(cvd2, mem,
TVIN_SIG_FMT_CVBS_NTSC_50);
else {
cvd_reg8a = v;
W_APB_REG(CVD2_CHROMA_LOOPFILTER_STATE, cvd_reg8a);
}
+
+void tvafe_cvd2_rf_ntsc50_en(bool v)
+{
+ ntsc50_en = v;
+}
+
void tvafe_snow_config(unsigned int onoff)
{
if (tvafe_snow_function_flag == 0 ||
extern void tvafe_cvd2_get_signal_status(struct tvafe_cvd2_s *cvd2);
extern void cvd_vbi_mem_set(unsigned int offset, unsigned int size);
extern void cvd_vbi_config(void);
+extern void tvafe_cvd2_rf_ntsc50_en(bool v);
extern bool tvafe_snow_function_flag;
tvafe_pr_info("tvafe_cvd2_s->manual_fmt:0x%x\n", cvd2->manual_fmt);
tvafe_pr_info("tvafe_cvd2_s->vd_port:0x%x\n", cvd2->vd_port);
tvafe_pr_info("tvafe_cvd2_s->cvd2_init_en:%d\n", cvd2->cvd2_init_en);
+ tvafe_pr_info("tvafe_cvd2_s->nonstd_detect_dis:%d\n",
+ cvd2->nonstd_detect_dis);
/* tvin_parm_s->tvin_info_s struct info */
tvafe_pr_info("\n!!tvin_parm_s->tvin_info_s struct info:\n");
tvafe_pr_info("tvin_info_s->trans_fmt:0x%x\n", tvin_info->trans_fmt);
pr_info("[tvafe..]%s:enable nonstd detect\n",
__func__);
}
+ } else if (!strncmp(buff, "rf_ntsc50_en", strlen("rf_ntsc50_en"))) {
+ if (kstrtoul(parm[1], 10, &val) < 0) {
+ kfree(buf_orig);
+ return -EINVAL;
+ }
+ if (val) {
+ tvafe_cvd2_rf_ntsc50_en(true);
+ pr_info("[tvafe..]%s:tvafe_cvd2_rf_ntsc50_en\n",
+ __func__);
+ } else {
+ tvafe_cvd2_rf_ntsc50_en(false);
+ pr_info("[tvafe..]%s:tvafe_cvd2_rf_ntsc50_dis\n",
+ __func__);
+ }
} else
tvafe_pr_info("[%s]:invaild command.\n", __func__);
kfree(buf_orig);