Updated AMBA clcd limit check linux-2.6.34_lpc32x0_v1.03
authorKevin Wells <wellsk40@gmail.com>
Fri, 20 Aug 2010 19:58:41 +0000 (12:58 -0700)
committerKevin Wells <wellsk40@gmail.com>
Fri, 20 Aug 2010 19:58:41 +0000 (12:58 -0700)
include/linux/amba/clcd.h

index ca16c38..edadb6a 100644 (file)
@@ -232,14 +232,29 @@ static inline void clcdfb_decode(struct clcd_fb *fb, struct clcd_regs *regs)
 
 static inline int clcdfb_check(struct clcd_fb *fb, struct fb_var_screeninfo *var)
 {
+       u32 hbp, hfp, hsw;
+
+       /*
+        * These clock constraints are for the pl11x DMA latency. TFT mode
+        * is slightly faster than STN
+        */
+       if (fb->panel->cntl & CNTL_LCDTFT) {
+               /* No TFT constraint given for min TFT HFP clocks in TRM */
+               hbp = hfp = (2 + 1);
+               hsw = (2 + 1);
+       } else {
+               hbp = hfp = (5 + 1);
+               hsw = (3 + 1);
+       }
+
        var->xres_virtual = var->xres = (var->xres + 15) & ~15;
        var->yres_virtual = var->yres = (var->yres + 1) & ~1;
 
 #define CHECK(e,l,h) (var->e < l || var->e > h)
-       if (CHECK(right_margin, (5+1), 256) ||  /* back porch */
-           CHECK(left_margin, (5+1), 256) ||   /* front porch */
-           CHECK(hsync_len, (5+1), 256) ||
-           var->xres > 4096 ||
+       if (CHECK(right_margin, hbp, 256) ||    /* back porch */
+           CHECK(left_margin, hfp, 256) ||     /* front porch */
+           CHECK(hsync_len, hsw, 256) ||
+           var->xres > 1024 ||
            var->lower_margin > 255 ||          /* back porch */
            var->upper_margin > 255 ||          /* front porch */
            var->vsync_len > 32 ||