diff options
author | Jon Mayo <jmayo@nvidia.com> | 2013-02-14 16:30:08 -0800 |
---|---|---|
committer | Mandar Padmawar <mpadmawar@nvidia.com> | 2013-02-18 22:22:30 -0800 |
commit | b5d2e85599f1fb186c3ca28f5d5d0f86eebaa3e9 (patch) | |
tree | 01e8fdb1b836cf5d17135ebed07264e3c74276a8 | |
parent | c7dcbe1f5f5a03f1f696fa655bf0c05ad179e2fe (diff) |
video: tegra: dc: match HDMI mode aspect ratio
Bug 1227041
Bug 1232636
Change-Id: I49823f8c4f53332f1adbf677e44323a60bce38e2
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-on: http://git-master/r/201012
-rw-r--r-- | drivers/video/tegra/dc/hdmi.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c index b06bf6d20ea9..3a1cedad6cd8 100644 --- a/drivers/video/tegra/dc/hdmi.c +++ b/drivers/video/tegra/dc/hdmi.c @@ -1555,23 +1555,27 @@ static int tegra_dc_find_cea_vic(const struct tegra_dc_mode *mode) { struct fb_videomode m; unsigned i; + unsigned best = 0; tegra_dc_to_fb_videomode(&m, mode); for (i = 1; i < CEA_MODEDB_SIZE; i++) { const struct fb_videomode *curr = &cea_modes[i]; - if (fb_mode_is_equal(&m, curr)) { - /* if either flag is set, then match is required */ - if (m.flag & (FB_FLAG_RATIO_4_3 | FB_FLAG_RATIO_16_9)) { - if (m.flag & curr->flag & FB_FLAG_RATIO_4_3) - return i; - if (m.flag & curr->flag & FB_FLAG_RATIO_16_9) - return i; - } - return i; + + if (!fb_mode_is_equal(&m, curr)) + continue; + + /* if either flag is set, then match is required */ + if (curr->flag & (FB_FLAG_RATIO_4_3 | FB_FLAG_RATIO_16_9)) { + if (m.flag & curr->flag & FB_FLAG_RATIO_4_3) + best = i; + else if (m.flag & curr->flag & FB_FLAG_RATIO_16_9) + best = i; + } else { + best = i; } } - return 0; + return best; } static int tegra_dc_find_hdmi_vic(const struct tegra_dc_mode *mode) |