mirror of
https://github.com/marqs85/ossc.git
synced 2025-03-27 02:31:40 +00:00
ALC option
This commit is contained in:
parent
c4bb809c3c
commit
e8c8347496
@ -152,6 +152,7 @@ typedef enum {
|
||||
VIDEO_LPF,
|
||||
LINETRIPLE_ENABLE,
|
||||
LINETRIPLE_MODE,
|
||||
EN_ALC,
|
||||
TX_MODE,
|
||||
#ifndef DEBUG
|
||||
FW_UPDATE,
|
||||
@ -190,6 +191,7 @@ typedef struct {
|
||||
alt_8 vsync_thold;
|
||||
alt_u8 sync_lpf;
|
||||
alt_u8 video_lpf;
|
||||
alt_u8 en_alc;
|
||||
alt_u8 pre_coast;
|
||||
alt_u8 post_coast;
|
||||
} avconfig_t;
|
||||
@ -236,6 +238,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>" },
|
||||
@ -632,6 +635,7 @@ void set_default_avconfig()
|
||||
tc.pre_coast = DEFAULT_PRE_COAST;
|
||||
tc.post_coast = DEFAULT_POST_COAST;
|
||||
tc.vsync_thold = DEFAULT_VSYNC_THOLD;
|
||||
tc.en_alc = 1;
|
||||
}
|
||||
|
||||
int read_userdata()
|
||||
@ -887,6 +891,11 @@ void display_menu(alt_u8 forcedisp)
|
||||
tc.l3_mode++;
|
||||
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;
|
||||
@ -1167,6 +1176,9 @@ status_t get_status(tvp_input_t input, video_format format)
|
||||
if (tc.sync_lpf != cm.cc.sync_lpf)
|
||||
tvp_set_sync_lpf(tc.sync_lpf);
|
||||
|
||||
if (tc.en_alc != cm.cc.en_alc)
|
||||
tvp_set_alc(tc.en_alc, target_type);
|
||||
|
||||
// use memcpy instead?
|
||||
cm.cc = tc;
|
||||
|
||||
@ -1241,7 +1253,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.cc.pre_coast, cm.cc.post_coast, cm.cc.vsync_thold);
|
||||
tvp_source_setup(cm.id, target_type, cm.cc.en_alc, (cm.progressive ? cm.totlines : cm.totlines/2), v_hz_x100/100, cm.cc.pre_coast, cm.cc.post_coast, cm.cc.vsync_thold);
|
||||
set_lpf(cm.cc.video_lpf);
|
||||
set_videoinfo();
|
||||
}
|
||||
|
@ -80,31 +80,6 @@ static void tvp_set_clamp_position(video_type type)
|
||||
}
|
||||
}
|
||||
|
||||
static void tvp_set_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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline alt_u32 tvp_readreg(alt_u32 regaddr)
|
||||
{
|
||||
I2C_start(I2CA_BASE, TVP_BASE, 0);
|
||||
@ -314,11 +289,37 @@ 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 pre_coast, alt_u8 post_coast, alt_u8 vsync_thold)
|
||||
void tvp_set_alc(alt_u8 en_alc, video_type type)
|
||||
{
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
void tvp_source_setup(alt_8 modeid, video_type type, alt_u8 en_alc, alt_u32 vlines, alt_u8 hz, alt_u8 pre_coast, alt_u8 post_coast, alt_u8 vsync_thold)
|
||||
{
|
||||
// Clamp position and ALC
|
||||
tvp_set_clamp_position(type);
|
||||
tvp_set_alc(type);
|
||||
tvp_set_alc(en_alc, type);
|
||||
|
||||
tvp_set_ssthold(vsync_thold);
|
||||
|
||||
|
4
software/sys_controller/tvp7002/tvp7002.h
Normal file → Executable file
4
software/sys_controller/tvp7002/tvp7002.h
Normal file → Executable file
@ -89,7 +89,9 @@ 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 pre_coast, alt_u8 post_coast, alt_u8 vsync_thold);
|
||||
void tvp_set_alc(alt_u8 en_alc, video_type type);
|
||||
|
||||
void tvp_source_setup(alt_8 modeid, video_type type, alt_u8 en_alc, alt_u32 vlines, alt_u8 hz, alt_u8 pre_coast, alt_u8 post_coast, alt_u8 vsync_thold);
|
||||
|
||||
void tvp_source_sel(tvp_input_t input, video_format fmt);
|
||||
|
||||
|
@ -2,9 +2,9 @@
|
||||
<sch:Settings xmlns:sch="http://www.altera.com/embeddedsw/bsp/schema">
|
||||
<BspType>hal</BspType>
|
||||
<BspVersion>default</BspVersion>
|
||||
<BspGeneratedTimeStamp>May 22, 2016 8:28:30 PM</BspGeneratedTimeStamp>
|
||||
<BspGeneratedUnixTimeStamp>1463938110913</BspGeneratedUnixTimeStamp>
|
||||
<BspGeneratedLocation>./</BspGeneratedLocation>
|
||||
<BspGeneratedTimeStamp>May 24, 2016 1:04:38 AM</BspGeneratedTimeStamp>
|
||||
<BspGeneratedUnixTimeStamp>1464041078241</BspGeneratedUnixTimeStamp>
|
||||
<BspGeneratedLocation>/home/markus/Code/ossc/software/sys_controller_bsp</BspGeneratedLocation>
|
||||
<BspSettingsFile>settings.bsp</BspSettingsFile>
|
||||
<SopcDesignFile>../../sys.sopcinfo</SopcDesignFile>
|
||||
<JdiFile>default</JdiFile>
|
||||
|
Loading…
x
Reference in New Issue
Block a user