From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
linux-omap@vger.kernel.org, linux-fbdev@vger.kernel.org
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCH 06/11] OMAPDSS: DISPC: fix 64 bit issue in 5-tap
Date: Wed, 17 Jun 2015 12:54:30 +0000 [thread overview]
Message-ID: <1434545675-477-7-git-send-email-tomi.valkeinen@ti.com> (raw)
In-Reply-To: <1434545675-477-1-git-send-email-tomi.valkeinen@ti.com>
The DISPC driver uses 64 bit arithmetic to calculate the required clock
rate for scaling. The code does not seem to work correctly, and instead
calculates with 32 bit numbers, giving wrong result.
Fix the code by typecasting values to u64 first, so that the
calculations do happen in 64 bits.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
drivers/video/fbdev/omap2/dss/dispc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/video/fbdev/omap2/dss/dispc.c b/drivers/video/fbdev/omap2/dss/dispc.c
index 4488d9367bd3..2db1c986e989 100644
--- a/drivers/video/fbdev/omap2/dss/dispc.c
+++ b/drivers/video/fbdev/omap2/dss/dispc.c
@@ -2166,7 +2166,7 @@ static unsigned long calc_core_clk_five_taps(unsigned long pclk,
if (height > out_height) {
unsigned int ppl = mgr_timings->x_res;
- tmp = pclk * height * out_width;
+ tmp = (u64)pclk * height * out_width;
do_div(tmp, 2 * out_height * ppl);
core_clk = tmp;
@@ -2174,14 +2174,14 @@ static unsigned long calc_core_clk_five_taps(unsigned long pclk,
if (ppl = out_width)
return 0;
- tmp = pclk * (height - 2 * out_height) * out_width;
+ tmp = (u64)pclk * (height - 2 * out_height) * out_width;
do_div(tmp, 2 * out_height * (ppl - out_width));
core_clk = max_t(u32, core_clk, tmp);
}
}
if (width > out_width) {
- tmp = pclk * width;
+ tmp = (u64)pclk * width;
do_div(tmp, out_width);
core_clk = max_t(u32, core_clk, tmp);
--
2.1.4
next prev parent reply other threads:[~2015-06-17 12:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-17 12:54 [PATCH 00/11] OMAPDSS: scaling & misc fixes Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 01/11] OMAPDSS: DISPC: work-around for errata i631 Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 02/11] OMAPDSS: DISPC: fix predecimation for YUV modes Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 03/11] OMAPDSS: DISPC: fix check_horiz_timing_omap3 args Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 04/11] OMAPDSS: DISPC: add check for scaling limits Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 05/11] OMAPDSS: DISPC: fix row_inc for OMAP3 Tomi Valkeinen
2015-06-17 12:54 ` Tomi Valkeinen [this message]
2015-06-17 12:54 ` [PATCH 07/11] OMAPDSS: DISPC: check if scaling setup failed Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 08/11] OMAPDSS: DISPC: do only y decimation on OMAP3 Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 09/11] OMAPDSS: DISPC: scaler debug print Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 10/11] OMAPDSS: HDMI4: fix error handling Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 11/11] OMAPDSS: HDMI: wait for framedone when stopping video Tomi Valkeinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1434545675-477-7-git-send-email-tomi.valkeinen@ti.com \
--to=tomi.valkeinen@ti.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).