mirror of
https://github.com/marqs85/ossc
synced 2026-02-20 13:31:53 +03:00
ALC option
This commit is contained in:
parent
2b644e89e5
commit
3e8ec16cf1
@ -131,6 +131,7 @@ typedef enum {
|
|||||||
VIDEO_LPF,
|
VIDEO_LPF,
|
||||||
LINETRIPLE_ENABLE,
|
LINETRIPLE_ENABLE,
|
||||||
LINETRIPLE_MODE,
|
LINETRIPLE_MODE,
|
||||||
|
EN_ALC,
|
||||||
TX_MODE,
|
TX_MODE,
|
||||||
#ifndef DEBUG
|
#ifndef DEBUG
|
||||||
FW_UPDATE,
|
FW_UPDATE,
|
||||||
@ -166,6 +167,7 @@ typedef struct {
|
|||||||
alt_8 sync_thold;
|
alt_8 sync_thold;
|
||||||
alt_u8 sync_lpf;
|
alt_u8 sync_lpf;
|
||||||
alt_u8 video_lpf;
|
alt_u8 video_lpf;
|
||||||
|
alt_u8 en_alc;
|
||||||
} avconfig_t;
|
} avconfig_t;
|
||||||
|
|
||||||
// Target configuration
|
// Target configuration
|
||||||
@ -208,6 +210,7 @@ const menuitem_t menu[] = {
|
|||||||
{ VIDEO_LPF, "Video LPF" },
|
{ VIDEO_LPF, "Video LPF" },
|
||||||
{ LINETRIPLE_ENABLE, "240p/288p lineX3" },
|
{ LINETRIPLE_ENABLE, "240p/288p lineX3" },
|
||||||
{ LINETRIPLE_MODE, "Linetriple mode" },
|
{ LINETRIPLE_MODE, "Linetriple mode" },
|
||||||
|
{ EN_ALC, "Auto Lev. Contr." },
|
||||||
{ TX_MODE, "TX mode" },
|
{ TX_MODE, "TX mode" },
|
||||||
#ifndef DEBUG
|
#ifndef DEBUG
|
||||||
{ FW_UPDATE, "Firmware update" },
|
{ 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;
|
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);
|
strncpy(menu_row2, l3_mode_desc[tc.l3_mode], LCD_ROW_LEN+1);
|
||||||
break;
|
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:
|
case TX_MODE:
|
||||||
if (!(IORD_ALTERA_AVALON_PIO_DATA(PIO_1_BASE) & HDMITX_MODE_MASK) && ((code == VAL_MINUS) || (code == VAL_PLUS))) {
|
if (!(IORD_ALTERA_AVALON_PIO_DATA(PIO_1_BASE) & HDMITX_MODE_MASK) && ((code == VAL_MINUS) || (code == VAL_PLUS))) {
|
||||||
tc.tx_mode = !tc.tx_mode;
|
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;
|
status = (status < MODE_CHANGE) ? MODE_CHANGE : status;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((tc.linemult_target != cm.cc.linemult_target) || (tc.l3_mode != cm.cc.l3_mode))
|
if ((tc.linemult_target != cm.cc.linemult_target) ||
|
||||||
status = (status < MODE_CHANGE) ? MODE_CHANGE : status;
|
(tc.l3_mode != cm.cc.l3_mode) ||
|
||||||
|
((tc.s480p_mode != cm.cc.s480p_mode) && (video_modes[cm.id].flags & (MODE_DTV480P|MODE_VGA480P))) ||
|
||||||
if ((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;
|
status = (status < MODE_CHANGE) ? MODE_CHANGE : status;
|
||||||
|
|
||||||
cm.totlines = totlines;
|
cm.totlines = totlines;
|
||||||
@ -1152,7 +1160,7 @@ void program_mode()
|
|||||||
|
|
||||||
printf("Mode %s selected\n", video_modes[cm.id].name);
|
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_lpf(cm.cc.video_lpf);
|
||||||
set_videoinfo();
|
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
|
if (en_alc) {
|
||||||
//tvp_writereg(TVP_ALCEN, 0x00);
|
tvp_writereg(TVP_ALCEN, 0x80); //enable ALC
|
||||||
//tvp_writereg(TVP_ALCEN, 0x80);
|
//select ALC placement
|
||||||
|
switch (type) {
|
||||||
|
case VIDEO_LDTV:
|
||||||
|
tvp_writereg(TVP_ALCPLACE, 0x9);
|
||||||
//select ALC placement
|
break;
|
||||||
switch (type) {
|
case VIDEO_SDTV:
|
||||||
case VIDEO_LDTV:
|
case VIDEO_EDTV:
|
||||||
tvp_writereg(TVP_ALCPLACE, 0x9);
|
case VIDEO_PC:
|
||||||
break;
|
tvp_writereg(TVP_ALCPLACE, 0x18);
|
||||||
case VIDEO_SDTV:
|
break;
|
||||||
case VIDEO_EDTV:
|
case VIDEO_HDTV:
|
||||||
case VIDEO_PC:
|
tvp_writereg(TVP_ALCPLACE, 0x5A);
|
||||||
tvp_writereg(TVP_ALCPLACE, 0x18);
|
break;
|
||||||
break;
|
default:
|
||||||
case VIDEO_HDTV:
|
break;
|
||||||
tvp_writereg(TVP_ALCPLACE, 0x5A);
|
}
|
||||||
break;
|
} else {
|
||||||
default:
|
tvp_writereg(TVP_ALCEN, 0x00); //disable ALC
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,14 +303,14 @@ void tvp_set_sog_thold(alt_u8 val)
|
|||||||
printf("SOG thold set to 0x%x\n", 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
|
// Configure clock settings
|
||||||
tvp_sel_clk(refclk);
|
tvp_sel_clk(refclk);
|
||||||
|
|
||||||
// Clamp position and ALC
|
// Clamp position and ALC
|
||||||
tvp_set_clamp_position(type);
|
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)
|
//set analog (coarse) gain to max recommended value (-> 91% of the ADC range with 0.7Vpp input)
|
||||||
tvp_writereg(TVP_BG_CGAIN, 0x88);
|
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_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);
|
void tvp_source_sel(tvp_input_t input, video_format fmt, alt_u8 refclk);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user