The minimum values for timing parameters such as left margin, right margin etc are different for STN and TFT dispalys. This commit fixes a check that does not account for this difference. Reviewed-by: Ray Jui <rjui@xxxxxxxxxxxx> Reviewed-by: Scott Branden <sbranden@xxxxxxxxxxxx> Signed-off-by: Arun Ramamurthy <arun.ramamurthy@xxxxxxxxxxxx> --- include/linux/amba/clcd.h | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/include/linux/amba/clcd.h b/include/linux/amba/clcd.h index 6a3bc2d..0fe8a17 100644 --- a/include/linux/amba/clcd.h +++ b/include/linux/amba/clcd.h @@ -288,16 +288,28 @@ static inline int clcdfb_check(struct clcd_fb *fb, struct fb_var_screeninfo *var 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 || - var->lower_margin > 255 || /* back porch */ - var->upper_margin > 255 || /* front porch */ - var->vsync_len > 32 || - var->yres > 1024) - return -EINVAL; +#define CHECK(e, l, h) (var->e < l || var->e > h) + if (!(fb->panel->cntl & CNTL_LCDTFT)) { + 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 || + var->lower_margin > 255 || /* back porch */ + var->upper_margin > 255 || /* front porch */ + var->vsync_len > 32 || + var->yres > 1024) + return -EINVAL; + } else { + if (CHECK(right_margin, 1, 256) || /* back porch */ + CHECK(left_margin, 1, 256) || /* front porch */ + CHECK(hsync_len, 1, 256) || + var->xres > 4096 || + var->lower_margin > 255 || /* back porch */ + var->upper_margin > 255 || /* front porch */ + var->vsync_len > 32 || + var->yres > 1024) + return -EINVAL; + } #undef CHECK /* single panel mode: PCD = max(PCD, 1) */ -- 2.3.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html