summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSanjay Singh Rawat <srawat@nvidia.com>2011-07-13 11:40:31 +0530
committerManish Tuteja <mtuteja@nvidia.com>2011-07-20 03:44:51 -0700
commit835196496da8c426d1a7d6342faf525c900ea81f (patch)
tree0f3e305b4e1fa1f492bf3de5bbc131d8c2fba171 /drivers
parent395be3fac35685ec3c7e69c8de10e8b64c3068f3 (diff)
video: tegra: fix divide by zero exception in hdmi module
Bug 851086 Change-Id: Ia7f9ae6f43903fee3b1ea28331bfc621a995d338 Signed-off-by: Sanjay Singh Rawat <srawat@nvidia.com> Reviewed-on: http://git-master/r/40788 Reviewed-by: Donghan Ryu <dryu@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/dc/hdmi.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c
index 42dd358fd335..6e2a31bfcfb8 100644
--- a/drivers/video/tegra/dc/hdmi.c
+++ b/drivers/video/tegra/dc/hdmi.c
@@ -510,12 +510,21 @@ static bool tegra_dc_hdmi_mode_equal(const struct fb_videomode *mode1,
{
int clock_per_frame = tegra_dc_calc_clock_per_frame(mode1);
+ if (!clock_per_frame)
+ return false;
+
/* allows up to 1Hz of pixclock difference */
- return mode1->xres == mode2->xres &&
- mode1->yres == mode2->yres &&
- (abs(PICOS2KHZ(mode1->pixclock - mode2->pixclock)) *
- 1000 / clock_per_frame <= 1) &&
- mode1->vmode == mode2->vmode;
+ if (mode1->pixclock != mode2->pixclock) {
+ return (mode1->xres == mode2->xres &&
+ mode1->yres == mode2->yres &&
+ (abs(PICOS2KHZ(mode1->pixclock - mode2->pixclock)) * 1000
+ / clock_per_frame <= 1) &&
+ mode1->vmode == mode2->vmode);
+ } else {
+ return (mode1->xres == mode2->xres &&
+ mode1->yres == mode2->yres &&
+ mode1->vmode == mode2->vmode);
+ }
}
static bool tegra_dc_hdmi_valid_pixclock(const struct tegra_dc *dc,