video: hdmi: judge interlace mode from vmode bit mask

Vmode is a flag with bit mask, we can't judge interlace mode
from equal compare, need mask its bit.

Change-Id: Iad69bd52173c5ea179639deaff25f9a4ed3fc5d3
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
This commit is contained in:
Mark Yao
2015-11-03 10:21:26 +08:00
parent 05d226be7e
commit 2b0be80c6a
2 changed files with 10 additions and 10 deletions

View File

@@ -373,13 +373,13 @@ static void hdmi_sort_modelist(struct hdmi_edid *edid, int feature)
continue;
if ((feature & SUPPORT_1080I) == 0 &&
hdmi_mode[i].mode.xres == 1920 &&
hdmi_mode[i].mode.vmode ==
FB_VMODE_INTERLACED)
(hdmi_mode[i].mode.vmode &
FB_VMODE_INTERLACED))
continue;
if ((feature & SUPPORT_480I_576I) == 0 &&
hdmi_mode[i].mode.xres == 720 &&
hdmi_mode[i].mode.vmode ==
FB_VMODE_INTERLACED)
hdmi_mode[i].mode.vmode &
FB_VMODE_INTERLACED)
continue;
vic = modelist->vic;
modelist->vic = hdmi_mode[i].vic;
@@ -493,7 +493,7 @@ int hdmi_ouputmode_select(struct hdmi *hdmi, int edid_ok)
just list common hdmi foramt. */
if (mode->xres > 3840 ||
mode->refresh < 50 ||
mode->vmode == FB_VMODE_INTERLACED ||
(mode->vmode & FB_VMODE_INTERLACED) ||
hdmi_mode[i].vic & HDMI_VIDEO_DMT)
continue;
}
@@ -508,11 +508,11 @@ int hdmi_ouputmode_select(struct hdmi *hdmi, int edid_ok)
continue;
if ((feature & SUPPORT_1080I) == 0 &&
mode->xres == 1920 &&
mode->vmode == FB_VMODE_INTERLACED)
(mode->vmode & FB_VMODE_INTERLACED))
continue;
if ((feature & SUPPORT_480I_576I) == 0 &&
mode->xres == 720 &&
mode->vmode == FB_VMODE_INTERLACED)
(mode->vmode & FB_VMODE_INTERLACED))
continue;
hdmi_add_videomode(mode, head);
}
@@ -633,11 +633,11 @@ void hdmi_init_modelist(struct hdmi *hdmi)
continue;
if ((feature & SUPPORT_1080I) == 0 &&
hdmi_mode[i].mode.xres == 1920 &&
hdmi_mode[i].mode.vmode == FB_VMODE_INTERLACED)
(hdmi_mode[i].mode.vmode & FB_VMODE_INTERLACED))
continue;
if ((feature & SUPPORT_480I_576I) == 0 &&
hdmi_mode[i].mode.xres == 720 &&
hdmi_mode[i].mode.vmode == FB_VMODE_INTERLACED)
(hdmi_mode[i].mode.vmode & FB_VMODE_INTERLACED))
continue;
hdmi_add_videomode(&(hdmi_mode[i].mode), head);
}

View File

@@ -833,7 +833,7 @@ static int rockchip_hdmiv2_video_framecomposer(struct hdmi *hdmi_drv,
v_FC_VSYNC_POL(vsync_pol) | v_FC_HSYNC_POL(hsync_pol) |
v_FC_DE_POL(de_pol) | v_FC_HDMI_DVI(vpara->sink_hdmi) |
v_FC_INTERLACE_MODE(mode->vmode));
if (mode->vmode == FB_VMODE_INTERLACED &&
if ((mode->vmode & FB_VMODE_INTERLACED) &&
vpara->format_3d != HDMI_3D_FRAME_PACKING)
hdmi_msk_reg(hdmi_dev, FC_INVIDCONF,
m_FC_VBLANK, v_FC_VBLANK(1));