diff --git a/software/sys_controller/ossc/av_controller.c b/software/sys_controller/ossc/av_controller.c index 591b54c..07ae972 100644 --- a/software/sys_controller/ossc/av_controller.c +++ b/software/sys_controller/ossc/av_controller.c @@ -415,6 +415,9 @@ status_t get_status(tvp_sync_input_t syncinput) if (memcmp(&tc.col, &cm.cc.col, sizeof(color_setup_t))) tvp_set_gain_offset(&tc.col); + if (tc.full_vs_bypass != cm.cc.full_vs_bypass) + tvp_set_full_vs_bypass(tc.full_vs_bypass); + #ifdef ENABLE_AUDIO if ((tc.audio_dw_sampl != cm.cc.audio_dw_sampl) || #ifdef MANUAL_CTS @@ -964,7 +967,7 @@ int main() printf("### DIY VIDEO DIGITIZER / SCANCONVERTER INIT OK ###\n\n"); sniprintf(row1, LCD_ROW_LEN+1, "OSSC fw. %u.%.2u" FW_SUFFIX1 FW_SUFFIX2, FW_VER_MAJOR, FW_VER_MINOR); #ifndef DEBUG - strncpy(row2, "2014-2024 marqs", LCD_ROW_LEN+1); + strncpy(row2, "2014-2025 marqs", LCD_ROW_LEN+1); #else strncpy(row2, "** DEBUG BUILD *", LCD_ROW_LEN+1); #endif diff --git a/software/sys_controller/ossc/avconfig.h b/software/sys_controller/ossc/avconfig.h index 0f5b79b..52f7d04 100644 --- a/software/sys_controller/ossc/avconfig.h +++ b/software/sys_controller/ossc/avconfig.h @@ -137,6 +137,7 @@ typedef struct { alt_u8 alc_h_filter; alt_u8 alc_v_filter; color_setup_t col; + alt_u8 full_vs_bypass; /* Audio settings */ alt_u8 audio_dw_sampl; diff --git a/software/sys_controller/ossc/menu.c b/software/sys_controller/ossc/menu.c index 4d89817..6e45e5d 100644 --- a/software/sys_controller/ossc/menu.c +++ b/software/sys_controller/ossc/menu.c @@ -223,6 +223,7 @@ MENU(menu_compatibility, P99_PROTECT({ \ { LNG("Full TX setup","フルTXセットアップ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.full_tx_setup, OPT_WRAP, SETTING_ITEM(off_on_desc) } } }, { LNG("Allow TVP HPLL2x","TVP HPLL2xキョヨウ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.tvp_hpll2x, OPT_WRAP, SETTING_ITEM(off_on_desc) } } }, { "AV3 use alt. RGB", OPT_AVCONFIG_SELECTION, { .sel = { &tc.av3_alt_rgb, OPT_WRAP, SETTING_ITEM(av3_alt_rgb_desc) } } }, + { "Full VSYNC bypas", OPT_AVCONFIG_SELECTION, { .sel = { &tc.full_vs_bypass, OPT_WRAP, SETTING_ITEM(off_on_desc) } } }, { "Default HDMI VIC", OPT_AVCONFIG_NUMVALUE, { .num = { &tc.default_vic, OPT_NOWRAP, 0, HDMI_1080p50, value_disp } } }, })) diff --git a/software/sys_controller/tvp7002/tvp7002.c b/software/sys_controller/tvp7002/tvp7002.c index 96d2a08..4c67046 100644 --- a/software/sys_controller/tvp7002/tvp7002.c +++ b/software/sys_controller/tvp7002/tvp7002.c @@ -38,7 +38,8 @@ const ypbpr_to_rgb_csc_t csc_coeffs[] = { }; static const alt_u8 Kvco[] = {75, 85, 150, 200}; -static const char *Kvco_str[] = { "Ultra low", "Low", "Medium", "High" }; +static const char* const Kvco_str[] = { "Ultra low", "Low", "Medium", "High" }; +static alt_u8 full_vs_bypass; static void tvp_set_clamp_type(video_format fmt) { @@ -201,6 +202,7 @@ void tvp_init() }; // Set default configuration (skip those which match register reset values) + full_vs_bypass = 0; // Configure external refclk, HPLL generated pclk tvp_sel_clk(REFCLK_EXT27, 0); @@ -267,6 +269,10 @@ void tvp_set_gain_offset(color_setup_t *col) { tvp_writereg(TVP_B_FOFFSET_MSB, col->b_f_off); } +void tvp_set_full_vs_bypass(alt_u8 enable) { + full_vs_bypass = enable; +} + // Configure H-PLL (sampling rate, VCO gain and charge pump current) void tvp_setup_hpll(alt_u16 h_samplerate, alt_u16 pixs_per_line, alt_u16 refclks_per_line, alt_u8 plldivby2) { @@ -447,11 +453,10 @@ void tvp_source_sel(tvp_input_t input, tvp_sync_input_t syncinput, video_format else tvp_writereg(TVP_MISCCTRL3, 0x00); -#ifdef SYNCBYPASS - tvp_writereg(TVP_SYNCBYPASS, 0x03); -#else - tvp_writereg(TVP_SYNCBYPASS, 0x00); -#endif + if ((syncinput > TVP_SOG3) && (syncinput < TVP_CS_A)) + tvp_writereg(TVP_SYNCBYPASS, full_vs_bypass ? 0x02 : 0x00); + else + tvp_writereg(TVP_SYNCBYPASS, 0x00); //TODO: //TVP_ADCSETUP diff --git a/software/sys_controller/tvp7002/tvp7002.h b/software/sys_controller/tvp7002/tvp7002.h index 3a92300..f89cb48 100644 --- a/software/sys_controller/tvp7002/tvp7002.h +++ b/software/sys_controller/tvp7002/tvp7002.h @@ -98,6 +98,8 @@ void tvp_init(); void tvp_set_gain_offset(color_setup_t *col); +void tvp_set_full_vs_bypass(alt_u8 enable); + void tvp_setup_hpll(alt_u16 h_samplerate, alt_u16 pixs_per_line, alt_u16 refclks_per_line, alt_u8 plldivby2); void tvp_sel_csc(const ypbpr_to_rgb_csc_t *csc); diff --git a/software/sys_controller_bsp/libhal_bsp.a b/software/sys_controller_bsp/libhal_bsp.a index 056e5d6..b3002f2 100644 Binary files a/software/sys_controller_bsp/libhal_bsp.a and b/software/sys_controller_bsp/libhal_bsp.a differ