diff options
-rw-r--r-- | drivers/video/tegra/dc/edid.c | 6 | ||||
-rw-r--r-- | drivers/video/tegra/dc/hdmi.c | 21 |
2 files changed, 24 insertions, 3 deletions
diff --git a/drivers/video/tegra/dc/edid.c b/drivers/video/tegra/dc/edid.c index c2d99917519c..055cea3a11fe 100644 --- a/drivers/video/tegra/dc/edid.c +++ b/drivers/video/tegra/dc/edid.c @@ -289,10 +289,12 @@ int tegra_edid_mode_support_stereo(struct fb_videomode *mode) if (!mode) return 0; - if (mode->xres == 1280 && mode->yres == 720 && mode->refresh == 60) + if (mode->xres == 1280 && + mode->yres == 720 && + ((mode->refresh == 60) || (mode->refresh == 50))) return 1; - if (mode->xres == 1280 && mode->yres == 720 && mode->refresh == 50) + if (mode->xres == 1920 && mode->yres == 1080 && mode->refresh == 24) return 1; return 0; diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c index 20d9ec8246ae..4672ca1ebc0b 100644 --- a/drivers/video/tegra/dc/hdmi.c +++ b/drivers/video/tegra/dc/hdmi.c @@ -166,6 +166,23 @@ const struct fb_videomode tegra_dc_hdmi_supported_modes[] = { .vmode = FB_VMODE_NONINTERLACED, .sync = 0, }, + + /* 1920x1080p 23.98/24hz: EIA/CEA-861-B Format 32 (Stereo)*/ + { + .xres = 1920, + .yres = 1080, + .pixclock = KHZ2PICOS(74250), + .hsync_len = 44, /* h_sync_width */ + .vsync_len = 5, /* v_sync_width */ + .left_margin = 148, /* h_back_porch */ + .upper_margin = 36, /* v_back_porch */ + .right_margin = 638, /* h_front_porch */ + .lower_margin = 4, /* v_front_porch */ + .vmode = FB_VMODE_NONINTERLACED | + FB_VMODE_STEREO_FRAME_PACK, + .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, + }, + /* 1920x1080p 30Hz EIA/CEA-861-B Format 34 */ { .xres = 1920, @@ -1304,7 +1321,9 @@ static void tegra_dc_hdmi_setup_avi_infoframe(struct tegra_dc *dc, bool dvi) avi.vic = 4; /* 60 Hz */ else avi.vic = 19; /* 50 Hz */ - } else if (dc->mode.v_active == 1080) { + } else if (dc->mode.v_active == 1080 || + (dc->mode.v_active == 2205 && dc->mode.stereo_mode)) { + /* VIC for both 1080p and 1080p 3D mode */ avi.m = HDMI_AVI_M_16_9; if (dc->mode.h_front_porch == 88) avi.vic = 16; /* 60 Hz */ |