atmel_lcdfb: fix negative check on unsigned
Subsystems (2)
PATCH 1/1 atmel_lcdfb: fix negative check on unsigned
No signed negative values will get noticed
Signed-off-by Roel Kluin <[email protected]>
---
drivers/video/atmel_lcdfb.c +4 -4
@@ -422,13 +422,13 @@ static int atmel_lcdfb_set_par(struct fb_info *info) value =DIV_ROUND_UP (clk_value_khz,PICOS2KHZ (info->var.pixclock)); - value = (value /2 ) -1 ; -dev_dbg (info->device," * programming CLKVAL = 0x%08lx\n" , value); - -if (value <=0 ) { +if ((value /2 ) <=1 ) { +dev_dbg (info->device," * programming CLKVAL = 0x%08lx\n" , (value/2 )-1 );dev_notice (info->device,"Bypassing pixel clock divider\n" );lcdc_writel (sinfo,ATMEL_LCDC_LCDCON1 ,ATMEL_LCDC_BYPASS ); }else { + value = (value /2 ) -1 ; +dev_dbg (info->device," * programming CLKVAL = 0x%08lx\n" , value);lcdc_writel (sinfo,ATMEL_LCDC_LCDCON1 , value <<ATMEL_LCDC_CLKVAL_OFFSET ); info->var.pixclock =KHZ2PICOS (clk_value_khz / (2 * (value +1 ))); dev_dbg(info->device, " updated pixclk: %lu KHz\n",
Cc'ing the atmel_lcdfb maintainer...
Quoted 9 lines · On Thu, 17 Apr 2008 06:31:28 +0200 Roel Kluin <[email protected]> wrote:
No signed negative values will get noticed
Signed-off-by Roel Kluin <[email protected]>---
drivers/video/atmel_lcdfb.c +0
-0
drivers/video/atmel_lcdfb.c static int atmel_lcdfb_set_par(struct fb_info *info) · line 426
Quoted 9 lines
drivers/video/atmel_lcdfb.c +2
-4@@ -422,13 +422,13 @@ static int atmel_lcdfb_set_par(struct fb_info *info) value =DIV_ROUND_UP (clk_value_khz,PICOS2KHZ (info->var.pixclock)); - value = (value /2 ) -1 ; -dev_dbg (info->device," * programming CLKVAL = 0x%08lx\n" , value); - -if (value <=0 ) { +if ((value /2 ) <=1 ) { +dev_dbg (info->device," * programming CLKVAL = 0x%08lx\n" , (value/2 )-1 );
Makes sense...although I think there's another patch in the queue that fixes this as well.
drivers/video/atmel_lcdfb.c static int atmel_lcdfb_set_par(struct fb_info *info) · line 434
Quoted 8 lines
drivers/video/atmel_lcdfb.c +2
-0dev_notice (info->device,"Bypassing pixel clock divider\n" );lcdc_writel (sinfo,ATMEL_LCDC_LCDCON1 ,ATMEL_LCDC_BYPASS ); }else { + value = (value /2 ) -1 ; +dev_dbg (info->device," * programming CLKVAL = 0x%08lx\n" , value);lcdc_writel (sinfo,ATMEL_LCDC_LCDCON1 , value <<ATMEL_LCDC_CLKVAL_OFFSET ); info->var.pixclock =KHZ2PICOS (clk_value_khz / (2 * (value +1 ))); dev_dbg(info->device, " updated pixclk: %lu KHz\n",
Haavard