diff options
author | Sanjay Singh Rawat <srawat@nvidia.com> | 2011-07-13 11:40:31 +0530 |
---|---|---|
committer | Manish Tuteja <mtuteja@nvidia.com> | 2011-07-20 03:44:51 -0700 |
commit | 835196496da8c426d1a7d6342faf525c900ea81f (patch) | |
tree | 0f3e305b4e1fa1f492bf3de5bbc131d8c2fba171 /drivers | |
parent | 395be3fac35685ec3c7e69c8de10e8b64c3068f3 (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.c | 19 |
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, |