Skip to contentSkip to conversation

s3fb: do not allow incorrect pixclock settings

PATCH New Antonino Daplas 1 participant 1 message Oct 13, 2007 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 12/15 s3fb: do not allow incorrect pixclock settings

From: Krzysztof Helt <[email protected]>

This patch adds check if selected pixclock
is valid (is in the PLL range).

Previously, if the pixclock could not be set,
the new mode resolution was set but pixclock
was not set which led to incorrect timings sent
to monitor.

[adaplas]
Fixed a few misplaced curly braces.

---

 drivers/video/s3fb.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)
drivers/video/s3fb.c +11 -4
index a96ac43..7d53bc2 100644
@@ -400,6 +400,7 @@ static int s3fb_check_var(struct fb_var_
 {
 	struct s3fb_info *par = info->par;
 	int rv, mem, step;
+	u16 m, n, r;
 
 	/* Find appropriate format */
 	rv = svga_match_format (s3fb_formats, var, NULL);
@@ -427,20 +428,26 @@ static int s3fb_check_var(struct fb_var_
 
 	/* Check whether have enough memory */
 	mem = ((var->bits_per_pixel * var->xres_virtual) >> 3) * var->yres_virtual;
-	if (mem > info->screen_size)
-	{
+	if (mem > info->screen_size) {
 		printk(KERN_ERR "fb%d: not enough framebuffer memory (%d kB requested , %d kB available)\n",
 			info->node, mem >> 10, (unsigned int) (info->screen_size >> 10));
 		return -EINVAL;
 	}
 
 	rv = svga_check_timings (&s3_timing_regs, var, info->node);
-	if (rv < 0)
-	{
+	if (rv < 0) {
 		printk(KERN_ERR "fb%d: invalid timings requested\n", info->node);
 		return rv;
 	}
 
+	rv = svga_compute_pll(&s3_pll, PICOS2KHZ(var->pixclock), &m, &n, &r,
+				info->node);
+	if (rv < 0) {
+		printk(KERN_ERR "fb%d: invalid pixclock value requested\n",
+			info->node);
+		return rv;
+	}
+
 	return 0;
 }
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/