powerpc/85xx: clamp the P1022DS DIU pixel clock to allowed values
authorTimur Tabi <timur@freescale.com>
Thu, 23 Jun 2011 19:48:54 +0000 (14:48 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Mon, 27 Jun 2011 13:36:16 +0000 (08:36 -0500)
To ensure that the DIU pixel clock will not be set to an invalid value,
clamp the PXCLK divider to the allowed range (2-255).  This also acts as
a limiter for the pixel clock.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/platforms/85xx/p1022_ds.c

index e083e1f..266b3aa 100644 (file)
@@ -195,8 +195,13 @@ void p1022ds_set_pixel_clock(unsigned int pixclock)
        do_div(temp, pixclock);
        freq = temp;
 
-       /* pixclk is the ratio of the platform clock to the pixel clock */
+       /*
+        * 'pxclk' is the ratio of the platform clock to the pixel clock.
+        * This number is programmed into the CLKDVDR register, and the valid
+        * range of values is 2-255.
+        */
        pxclk = DIV_ROUND_CLOSEST(fsl_get_sys_freq(), freq);
+       pxclk = clamp_t(u32, pxclk, 2, 255);
 
        /* Disable the pixel clock, and set it to non-inverted and no delay */
        clrbits32(&guts->clkdvdr,