mirror of
https://github.com/marqs85/ossc
synced 2025-10-29 15:06:02 +03:00
ALC option
This commit is contained in:
parent
2b644e89e5
commit
3e8ec16cf1
@ -131,6 +131,7 @@ typedef enum {
|
||||
VIDEO_LPF,
|
||||
LINETRIPLE_ENABLE,
|
||||
LINETRIPLE_MODE,
|
||||
EN_ALC,
|
||||
TX_MODE,
|
||||
#ifndef DEBUG
|
||||
FW_UPDATE,
|
||||
@ -166,6 +167,7 @@ typedef struct {
|
||||
alt_8 sync_thold;
|
||||
alt_u8 sync_lpf;
|
||||
alt_u8 video_lpf;
|
||||
alt_u8 en_alc;
|
||||
} avconfig_t;
|
||||
|
||||
// Target configuration
|
||||
@ -208,6 +210,7 @@ const menuitem_t menu[] = {
|
||||
{ VIDEO_LPF, "Video LPF" },
|
||||
{ LINETRIPLE_ENABLE, "240p/288p lineX3" },
|
||||
{ LINETRIPLE_MODE, "Linetriple mode" },
|
||||
{ EN_ALC, "Auto Lev. Contr." },
|
||||
{ TX_MODE, "TX mode" },
|
||||
#ifndef DEBUG
|
||||
{ FW_UPDATE, "Firmware update" },
|
||||
@ -828,6 +831,11 @@ void display_menu(alt_u8 forcedisp)
|
||||
tc.l3_mode = tc.l3_mode < L3_MODE_MAX ? tc.l3_mode+1 : 0;
|
||||
strncpy(menu_row2, l3_mode_desc[tc.l3_mode], LCD_ROW_LEN+1);
|
||||
break;
|
||||
case EN_ALC:
|
||||
if ((code == VAL_MINUS) || (code == VAL_PLUS))
|
||||
tc.en_alc = !tc.en_alc;
|
||||
sniprintf(menu_row2, LCD_ROW_LEN+1, tc.en_alc ? "Enabled" : "Disabled");
|
||||
break;
|
||||
case TX_MODE:
|
||||
if (!(IORD_ALTERA_AVALON_PIO_DATA(PIO_1_BASE) & HDMITX_MODE_MASK) && ((code == VAL_MINUS) || (code == VAL_PLUS))) {
|
||||
tc.tx_mode = !tc.tx_mode;
|
||||
@ -1046,10 +1054,10 @@ status_t get_status(tvp_input_t input)
|
||||
status = (status < MODE_CHANGE) ? MODE_CHANGE : status;
|
||||
}
|
||||
|
||||
if ((tc.linemult_target != cm.cc.linemult_target) || (tc.l3_mode != cm.cc.l3_mode))
|
||||
status = (status < MODE_CHANGE) ? MODE_CHANGE : status;
|
||||
|
||||
if ((tc.s480p_mode != cm.cc.s480p_mode) && (video_modes[cm.id].flags & (MODE_DTV480P|MODE_VGA480P)))
|
||||
if ((tc.linemult_target != cm.cc.linemult_target) ||
|
||||
(tc.l3_mode != cm.cc.l3_mode) ||
|
||||
((tc.s480p_mode != cm.cc.s480p_mode) && (video_modes[cm.id].flags & (MODE_DTV480P|MODE_VGA480P))) ||
|
||||
(tc.en_alc != cm.cc.en_alc))
|
||||
status = (status < MODE_CHANGE) ? MODE_CHANGE : status;
|
||||
|
||||
cm.totlines = totlines;
|
||||
@ -1152,7 +1160,7 @@ void program_mode()
|
||||
|
||||
printf("Mode %s selected\n", video_modes[cm.id].name);
|
||||
|
||||
tvp_source_setup(cm.id, target_type, (cm.progressive ? cm.totlines : cm.totlines/2), v_hz_x100/100, cm.refclk);
|
||||
tvp_source_setup(cm.id, target_type, cm.cc.en_alc, (cm.progressive ? cm.totlines : cm.totlines/2), v_hz_x100/100, cm.refclk);
|
||||
set_lpf(cm.cc.video_lpf);
|
||||
set_videoinfo();
|
||||
}
|
||||
|
||||
@ -91,29 +91,28 @@ static void tvp_set_clamp_position(video_type type)
|
||||
}
|
||||
}
|
||||
|
||||
static void tvp_set_alc(video_type type)
|
||||
static void tvp_set_alc(alt_u8 en_alc, video_type type)
|
||||
{
|
||||
//disable ALC
|
||||
//tvp_writereg(TVP_ALCEN, 0x00);
|
||||
//tvp_writereg(TVP_ALCEN, 0x80);
|
||||
|
||||
|
||||
|
||||
//select ALC placement
|
||||
switch (type) {
|
||||
case VIDEO_LDTV:
|
||||
tvp_writereg(TVP_ALCPLACE, 0x9);
|
||||
break;
|
||||
case VIDEO_SDTV:
|
||||
case VIDEO_EDTV:
|
||||
case VIDEO_PC:
|
||||
tvp_writereg(TVP_ALCPLACE, 0x18);
|
||||
break;
|
||||
case VIDEO_HDTV:
|
||||
tvp_writereg(TVP_ALCPLACE, 0x5A);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (en_alc) {
|
||||
tvp_writereg(TVP_ALCEN, 0x80); //enable ALC
|
||||
//select ALC placement
|
||||
switch (type) {
|
||||
case VIDEO_LDTV:
|
||||
tvp_writereg(TVP_ALCPLACE, 0x9);
|
||||
break;
|
||||
case VIDEO_SDTV:
|
||||
case VIDEO_EDTV:
|
||||
case VIDEO_PC:
|
||||
tvp_writereg(TVP_ALCPLACE, 0x18);
|
||||
break;
|
||||
case VIDEO_HDTV:
|
||||
tvp_writereg(TVP_ALCPLACE, 0x5A);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
tvp_writereg(TVP_ALCEN, 0x00); //disable ALC
|
||||
}
|
||||
}
|
||||
|
||||
@ -304,14 +303,14 @@ void tvp_set_sog_thold(alt_u8 val)
|
||||
printf("SOG thold set to 0x%x\n", val);
|
||||
}
|
||||
|
||||
void tvp_source_setup(alt_8 modeid, video_type type, alt_u32 vlines, alt_u8 hz, alt_u8 refclk)
|
||||
void tvp_source_setup(alt_8 modeid, video_type type, alt_u8 en_alc, alt_u32 vlines, alt_u8 hz, alt_u8 refclk)
|
||||
{
|
||||
// Configure clock settings
|
||||
tvp_sel_clk(refclk);
|
||||
|
||||
// Clamp position and ALC
|
||||
tvp_set_clamp_position(type);
|
||||
tvp_set_alc(type);
|
||||
tvp_set_alc(en_alc, type);
|
||||
|
||||
//set analog (coarse) gain to max recommended value (-> 91% of the ADC range with 0.7Vpp input)
|
||||
tvp_writereg(TVP_BG_CGAIN, 0x88);
|
||||
|
||||
2
software/sys_controller/tvp7002/tvp7002.h
Normal file → Executable file
2
software/sys_controller/tvp7002/tvp7002.h
Normal file → Executable file
@ -83,7 +83,7 @@ void tvp_set_hpll_phase(alt_u8 val);
|
||||
|
||||
void tvp_set_sog_thold(alt_u8 val);
|
||||
|
||||
void tvp_source_setup(alt_8 modeid, video_type type, alt_u32 vlines, alt_u8 hz, alt_u8 refclk);
|
||||
void tvp_source_setup(alt_8 modeid, video_type type, alt_u8 en_alc, alt_u32 vlines, alt_u8 hz, alt_u8 refclk);
|
||||
|
||||
void tvp_source_sel(tvp_input_t input, video_format fmt, alt_u8 refclk);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user