linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* s3c2410fb: fix clockrate calculation
@ 2009-08-20 21:50 Ben Dooks
  2009-08-20 22:19 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Ben Dooks @ 2009-08-20 21:50 UTC (permalink / raw)
  To: akpm, linux-fbdev-devel

[-- Attachment #1: s3c2410-fb-fix-rounding.patch --]
[-- Type: text/plain, Size: 1545 bytes --]

In the final part of the calculation for the tft display clockrate we
divide the output pf s3c2410fb_calc_pixclk() by 2 which leaves us with
a rounding error if the result is odd.

Change to using DIV_ROUND_UP() to ensure that we always choose a higher
divisor and thus a lower frequency.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>

---
 drivers/video/s3c2410fb.c |    4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)
 
Index: b/drivers/video/s3c2410fb.c
===================================================================
--- a/drivers/video/s3c2410fb.c	2009-08-20 08:45:41.000000000 +0100
+++ b/drivers/video/s3c2410fb.c	2009-08-20 08:45:42.000000000 +0100
@@ -369,7 +369,9 @@ static void s3c2410fb_activate_var(struc
 	void __iomem *regs = fbi->io;
 	int type = fbi->regs.lcdcon1 & S3C2410_LCDCON1_TFT;
 	struct fb_var_screeninfo *var = &info->var;
-	int clkdiv = s3c2410fb_calc_pixclk(fbi, var->pixclock) / 2;
+	int clkdiv;
+
+	clkdiv = DIV_ROUND_UP(s3c2410fb_calc_pixclk(fbi, var->pixclock), 2);
 
 	printk(KERN_INFO "%s: pixclock=%d, clkdiv=%d\n",
 	       __func__, var->pixclock, clkdiv);

-- 
Ben (ben@fluff.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: s3c2410fb: fix clockrate calculation
  2009-08-20 21:50 s3c2410fb: fix clockrate calculation Ben Dooks
@ 2009-08-20 22:19 ` Andrew Morton
  2009-08-27  9:57   ` Ben Dooks
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2009-08-20 22:19 UTC (permalink / raw)
  To: Ben Dooks; +Cc: linux-fbdev-devel

On Thu, 20 Aug 2009 22:50:47 +0100
Ben Dooks <ben@simtec.co.uk> wrote:

> In the final part of the calculation for the tft display clockrate we
> divide the output pf s3c2410fb_calc_pixclk() by 2 which leaves us with
> a rounding error if the result is odd.
> 
> Change to using DIV_ROUND_UP() to ensure that we always choose a higher
> divisor and thus a lower frequency.
> 
> Signed-off-by: Ben Dooks <ben@simtec.co.uk>
> 
> ---
>  drivers/video/s3c2410fb.c |    4 +++-
>  2 files changed, 5 insertions(+), 2 deletions(-)
>  
> Index: b/drivers/video/s3c2410fb.c
> ===================================================================
> --- a/drivers/video/s3c2410fb.c	2009-08-20 08:45:41.000000000 +0100
> +++ b/drivers/video/s3c2410fb.c	2009-08-20 08:45:42.000000000 +0100
> @@ -369,7 +369,9 @@ static void s3c2410fb_activate_var(struc
>  	void __iomem *regs = fbi->io;
>  	int type = fbi->regs.lcdcon1 & S3C2410_LCDCON1_TFT;
>  	struct fb_var_screeninfo *var = &info->var;
> -	int clkdiv = s3c2410fb_calc_pixclk(fbi, var->pixclock) / 2;
> +	int clkdiv;
> +
> +	clkdiv = DIV_ROUND_UP(s3c2410fb_calc_pixclk(fbi, var->pixclock), 2);
>  
>  	printk(KERN_INFO "%s: pixclock=%d, clkdiv=%d\n",
>  	       __func__, var->pixclock, clkdiv);

The changelog forgot to tell us what the impact of this bug is, so I
cannot work out whether we need this fix in 2.6.32, 2.6.31, 2.6.30.x, ....


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: s3c2410fb: fix clockrate calculation
  2009-08-20 22:19 ` Andrew Morton
@ 2009-08-27  9:57   ` Ben Dooks
  0 siblings, 0 replies; 3+ messages in thread
From: Ben Dooks @ 2009-08-27  9:57 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-fbdev-devel

Andrew Morton wrote:
> On Thu, 20 Aug 2009 22:50:47 +0100
> Ben Dooks <ben@simtec.co.uk> wrote:
> 
>> In the final part of the calculation for the tft display clockrate we
>> divide the output pf s3c2410fb_calc_pixclk() by 2 which leaves us with
>> a rounding error if the result is odd.
>>
>> Change to using DIV_ROUND_UP() to ensure that we always choose a higher
>> divisor and thus a lower frequency.
>>
>> Signed-off-by: Ben Dooks <ben@simtec.co.uk>
>>
>> ---
>>  drivers/video/s3c2410fb.c |    4 +++-
>>  2 files changed, 5 insertions(+), 2 deletions(-)
>>  
>> Index: b/drivers/video/s3c2410fb.c
>> ===================================================================
>> --- a/drivers/video/s3c2410fb.c	2009-08-20 08:45:41.000000000 +0100
>> +++ b/drivers/video/s3c2410fb.c	2009-08-20 08:45:42.000000000 +0100
>> @@ -369,7 +369,9 @@ static void s3c2410fb_activate_var(struc
>>  	void __iomem *regs = fbi->io;
>>  	int type = fbi->regs.lcdcon1 & S3C2410_LCDCON1_TFT;
>>  	struct fb_var_screeninfo *var = &info->var;
>> -	int clkdiv = s3c2410fb_calc_pixclk(fbi, var->pixclock) / 2;
>> +	int clkdiv;
>> +
>> +	clkdiv = DIV_ROUND_UP(s3c2410fb_calc_pixclk(fbi, var->pixclock), 2);
>>  
>>  	printk(KERN_INFO "%s: pixclock=%d, clkdiv=%d\n",
>>  	       __func__, var->pixclock, clkdiv);
> 
> The changelog forgot to tell us what the impact of this bug is, so I
> cannot work out whether we need this fix in 2.6.32, 2.6.31, 2.6.30.x, ....

Sorry, found this whilst working on a new machine and the pix clock being
too fast for the display. The machine is not yet merged into the mainline
so this not an important fix.

-- 
Ben Dooks, Software Engineer, Simtec Electronics

http://www.simtec.co.uk/

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-08-27  9:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-20 21:50 s3c2410fb: fix clockrate calculation Ben Dooks
2009-08-20 22:19 ` Andrew Morton
2009-08-27  9:57   ` Ben Dooks

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).