summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc
diff options
context:
space:
mode:
authorJon Mayo <jmayo@nvidia.com>2013-02-14 16:30:08 -0800
committerMandar Padmawar <mpadmawar@nvidia.com>2013-02-18 22:22:30 -0800
commitb5d2e85599f1fb186c3ca28f5d5d0f86eebaa3e9 (patch)
tree01e8fdb1b836cf5d17135ebed07264e3c74276a8 /drivers/video/tegra/dc
parentc7dcbe1f5f5a03f1f696fa655bf0c05ad179e2fe (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
Diffstat (limited to 'drivers/video/tegra/dc')
-rw-r--r--drivers/video/tegra/dc/hdmi.c24
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)