mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 04:10:18 +09:00
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:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user