From 30b0fef255afc76c510b8ccb6f3a517cdb82f9c8 Mon Sep 17 00:00:00 2001 From: Raghavendra VK Date: Mon, 27 Aug 2012 11:00:12 -0700 Subject: tegra: dc: Fix div by zero in frame time computation. - Set frame duration to 0 in NULL modeset. bug 1039104 Reviewed-on: http://git-master/r/127603 (cherry picked from commit 604cda21d79ed168e9863f0122eb0c23fa1a901b) Change-Id: I0be1b96529e40a374e4507ecd3da990677d4cbd4 Signed-off-by: Raghavendra VK Reviewed-on: http://git-master/r/130943 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani Tested-by: Bharat Nihalani --- drivers/video/tegra/dc/dc.c | 2 ++ drivers/video/tegra/dc/mode.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'drivers/video') diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c index 434a8b991b6e..d01df2f520b8 100644 --- a/drivers/video/tegra/dc/dc.c +++ b/drivers/video/tegra/dc/dc.c @@ -1097,11 +1097,13 @@ static void tegra_dc_continuous_irq(struct tegra_dc *dc, unsigned long status) /* XXX: Not sure if we limit look ahead to 1 frame */ bool tegra_dc_is_within_n_vsync(struct tegra_dc *dc, s64 ts) { + BUG_ON(!dc->frametime_ns); return ((ts - dc->frame_end_timestamp) < dc->frametime_ns); } bool tegra_dc_does_vsync_separate(struct tegra_dc *dc, s64 new_ts, s64 old_ts) { + BUG_ON(!dc->frametime_ns); return (((new_ts - old_ts) > dc->frametime_ns) || (div_s64((new_ts - dc->frame_end_timestamp), dc->frametime_ns) != div_s64((old_ts - dc->frame_end_timestamp), diff --git a/drivers/video/tegra/dc/mode.c b/drivers/video/tegra/dc/mode.c index 45cfe8dbd188..3a95f2e7ab0e 100644 --- a/drivers/video/tegra/dc/mode.c +++ b/drivers/video/tegra/dc/mode.c @@ -144,7 +144,8 @@ static s64 calc_frametime_ns(const struct tegra_dc_mode *m) m->h_sync_width; v_total = m->v_active + m->v_front_porch + m->v_back_porch + m->v_sync_width; - return (s64)(div_s64(((s64)h_total * v_total * 1000000000ULL), m->pclk)); + return (!m->pclk) ? 0 : (s64)(div_s64(((s64)h_total * v_total * + 1000000000ULL), m->pclk)); } /* return in 1000ths of a Hertz */ -- cgit v1.2.3