osd: osd display error when work in 1080i and cvbs

PD#151305: osd: osd display error when work in 1080i and cvbs

Change-Id: I75dbc06ceddf724210f3a2a858bc10685c829fcf
Signed-off-by: Pengcheng Chen <pengcheng.chen@amlogic.com>
This commit is contained in:
Pengcheng Chen
2017-09-30 13:06:22 +08:00
committed by Jianxin Pan
parent 5192b8a28a
commit eb47732293

View File

@@ -1084,7 +1084,7 @@ int osd_set_scan_mode(u32 index)
}
if (osd_hw.free_scale_enable[index])
osd_hw.scan_mode[index] = SCAN_MODE_PROGRESSIVE;
if (osd_hw.osd_afbcd[OSD1].enable)
if (osd_hw.osd_afbcd[index].enable)
osd_hw.scan_mode[index] = SCAN_MODE_PROGRESSIVE;
if (index == OSD2) {
if (osd_hw.scan_mode[OSD2] == SCAN_MODE_INTERLACE)
@@ -1745,7 +1745,11 @@ void osd_get_flush_rate_hw(u32 *break_rate)
void osd_set_antiflicker_hw(u32 index, struct vinfo_s *vinfo, u32 yres)
{
if (is_interlaced(vinfo)) {
bool osd_need_antiflicker = false;
if (is_interlaced(vinfo))
osd_need_antiflicker = false;
if (osd_need_antiflicker) {
osd_hw.antiflicker_mode = 1;
osd_antiflicker_task_start();
osd_antiflicker_enable(1);
@@ -3749,7 +3753,8 @@ static void osd2_update_disp_geometry(void)
data32 = (osd_hw.dispdata[OSD2].x_start & 0xfff)
| (osd_hw.dispdata[OSD2].x_end & 0xfff) << 16;
VSYNCOSD_WR_MPEG_REG(VIU_OSD2_BLK0_CFG_W3, data32);
if (osd_hw.scan_mode[OSD2] == SCAN_MODE_INTERLACE)
if ((osd_hw.scan_mode[OSD2] == SCAN_MODE_INTERLACE) &&
osd_hw.dispdata[OSD2].y_start > 0)
data32 = (osd_hw.dispdata[OSD2].y_start & 0xfff)
| ((((osd_hw.dispdata[OSD2].y_end + 1
- osd_hw.dispdata[OSD2].y_start) >> 1)