]> err.no Git - linux-2.6/blobdiff - drivers/video/atmel_lcdfb.c
[Blackfin] arch: Add proper SW System Reset delay sequence
[linux-2.6] / drivers / video / atmel_lcdfb.c
index 69ec93ce436a3be1dd879c136d63238b1d99bf26..7c30cc8df71eb057b313a841f3c120ad75ae05dd 100644 (file)
@@ -219,8 +219,11 @@ static int atmel_lcdfb_check_var(struct fb_var_screeninfo *var,
                var->blue.offset = 10;
                var->red.length = var->green.length = var->blue.length = 5;
                break;
-       case 24:
        case 32:
+               var->transp.offset = 24;
+               var->transp.length = 8;
+               /* fall through */
+       case 24:
                var->red.offset = 0;
                var->green.offset = 8;
                var->blue.offset = 16;
@@ -265,6 +268,10 @@ static int atmel_lcdfb_set_par(struct fb_info *info)
        /* Turn off the LCD controller and the DMA controller */
        lcdc_writel(sinfo, ATMEL_LCDC_PWRCON, sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET);
 
+       /* Wait for the LCDC core to become idle */
+       while (lcdc_readl(sinfo, ATMEL_LCDC_PWRCON) & ATMEL_LCDC_BUSY)
+               msleep(10);
+
        lcdc_writel(sinfo, ATMEL_LCDC_DMACON, 0);
 
        if (info->var.bits_per_pixel == 1)
@@ -794,5 +801,5 @@ module_init(atmel_lcdfb_init);
 module_exit(atmel_lcdfb_exit);
 
 MODULE_DESCRIPTION("AT91/AT32 LCD Controller framebuffer driver");
-MODULE_AUTHOR("Nicolas Ferre <nicolas.ferre@rfo.atmel.com>");
+MODULE_AUTHOR("Nicolas Ferre <nicolas.ferre@atmel.com>");
 MODULE_LICENSE("GPL");