diff options
author | Sanjay Singh Rawat <srawat@nvidia.com> | 2011-07-13 11:40:31 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2011-08-10 12:27:58 -0700 |
commit | 94f5c064dd99407a29804034e1abdae766a487e6 (patch) | |
tree | fc6f11f3dcd36da75a47995f5ee9626611867fc5 | |
parent | 650a7456e4f2764e4297969fb93ff3f43401ef4b (diff) |
video: tegra: fix divide by zero exception in hdmi module
Bug 851086
Signed-off-by: Sanjay Singh Rawat <srawat@nvidia.com>
Reviewed-on: http://git-master/r/40788
(cherry picked from commit 835196496da8c426d1a7d6342faf525c900ea81f)
Change-Id: Ic7d1a4fba87ae03fab344039b1de5a6f7c15f3e6
Reviewed-on: http://git-master/r/42382
Reviewed-by: Youngjin Kim <nkim@nvidia.com>
Reviewed-by: Donghan Ryu <dryu@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
-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 871560f95e40..ecf889cb4dd3 100644 --- a/drivers/video/tegra/dc/hdmi.c +++ b/drivers/video/tegra/dc/hdmi.c @@ -500,12 +500,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, |