]> git.neil.brown.name Git - history.git/commitdiff
[ARM] Fix build errors caused by fb changes
authorRussell King <rmk@flint.arm.linux.org.uk>
Thu, 23 May 2002 01:50:49 +0000 (02:50 +0100)
committerRussell King <rmk@flint.arm.linux.org.uk>
Thu, 23 May 2002 01:50:49 +0000 (02:50 +0100)
 - Move *_blank function earlier in the file.
 - Correctly limit acornfb virtual y resolution.

drivers/video/acornfb.c
drivers/video/clps711xfb.c
drivers/video/sa1100fb.c

index ed83dc9797681fad59bbe337dc49882d5b2ddb7b..69859c30c4694501c6d97c249a6067dfe87cf661 100644 (file)
@@ -601,13 +601,13 @@ acornfb_adjust_timing(struct fb_var_screeninfo *var, int con)
        /* Find int 'y', such that y * fll == s * sam < maxsize
         * y = s * sam / fll; s = maxsize / sam
         */
-       for (size = current_par.screen_size; min_size <= size;
+       for (size = current_par.screen_size;
+            nr_y = size / font_line_len, min_size <= size;
             size -= sam_size) {
-               nr_y = size / font_line_len;
-
                if (nr_y * font_line_len == size)
                        break;
        }
+       nr_y *= fontht;
 
        if (var->accel_flags & FB_ACCELF_TEXT) {
                if (min_size > size) {
@@ -617,8 +617,9 @@ acornfb_adjust_timing(struct fb_var_screeninfo *var, int con)
                        size = current_par.screen_size;
                        var->yres_virtual = size / (font_line_len / fontht);
                } else
-                       var->yres_virtual = nr_y * fontht;
-       }
+                       var->yres_virtual = nr_y;
+       } else if (var->yres_virtual > nr_y)
+               var->yres_virtual = nr_y;
 
        current_par.screen_end = current_par.screen_base_p + size;
 
@@ -1100,6 +1101,41 @@ acornfb_pan_display(struct fb_var_screeninfo *var, int con,
        return 0;
 }
 
+static int 
+acornfb_blank(int blank, struct fb_info *info)
+{
+       union palette p;
+       int i, bpp = fb_display[info->currcon].var.bits_per_pixel;
+
+#ifdef FBCON_HAS_CFB16
+       if (bpp == 16) {
+               p.p = 0;
+
+               for (i = 0; i < 256; i++) {
+                       if (blank)
+                               p = acornfb_palette_encode(i, 0, 0, 0, 0);
+                       else {
+                               p.vidc20.red   = current_par.palette[ i       & 31].vidc20.red;
+                               p.vidc20.green = current_par.palette[(i >> 1) & 31].vidc20.green;
+                               p.vidc20.blue  = current_par.palette[(i >> 2) & 31].vidc20.blue;
+                       }
+                       acornfb_palette_write(i, current_par.palette[i]);
+               }
+       } else
+#endif
+       {
+               for (i = 0; i < current_par.palette_size; i++) {
+                       if (blank)
+                               p = acornfb_palette_encode(i, 0, 0, 0, 0);
+                       else
+                               p = current_par.palette[i];
+
+                       acornfb_palette_write(i, p);
+               }
+       }
+       return 0;
+}
+
 /*
  * Note that we are entered with the kernel locked.
  */
@@ -1146,7 +1182,7 @@ static struct fb_ops acornfb_ops = {
        fb_set_var:     acornfb_set_var,
        fb_get_cmap:    acornfb_get_cmap,
        fb_set_cmap:    gen_set_cmap,
-       fb_set_colreg:  acornfb_setcolreg,
+       fb_setcolreg:   acornfb_setcolreg,
        fb_pan_display: acornfb_pan_display,
        fb_blank:       acornfb_blank,
        fb_mmap:        acornfb_mmap,
@@ -1182,41 +1218,6 @@ acornfb_switch(int con, struct fb_info *info)
        return 0;
 }
 
-static int 
-acornfb_blank(int blank, struct fb_info *info)
-{
-       union palette p;
-       int i, bpp = fb_display[info->currcon].var.bits_per_pixel;
-
-#ifdef FBCON_HAS_CFB16
-       if (bpp == 16) {
-               p.p = 0;
-
-               for (i = 0; i < 256; i++) {
-                       if (blank)
-                               p = acornfb_palette_encode(i, 0, 0, 0, 0);
-                       else {
-                               p.vidc20.red   = current_par.palette[ i       & 31].vidc20.red;
-                               p.vidc20.green = current_par.palette[(i >> 1) & 31].vidc20.green;
-                               p.vidc20.blue  = current_par.palette[(i >> 2) & 31].vidc20.blue;
-                       }
-                       acornfb_palette_write(i, current_par.palette[i]);
-               }
-       } else
-#endif
-       {
-               for (i = 0; i < current_par.palette_size; i++) {
-                       if (blank)
-                               p = acornfb_palette_encode(i, 0, 0, 0, 0);
-                       else
-                               p = current_par.palette[i];
-
-                       acornfb_palette_write(i, p);
-               }
-       }
-       return 0;
-}
-
 /*
  * Everything after here is initialisation!!!
  */
index a864beddfc76d40f09a325505401fa788c69ae3d..44c58097ad22c3fd24ffcbb4374a774cbec5ddd5 100644 (file)
@@ -211,6 +211,53 @@ clps7111fb_set_var(struct fb_var_screeninfo *var, int con,
        return 0;
 }
 
+static int clps7111fb_blank(int blank, struct fb_info *info)
+{
+       if (blank) {
+               if (machine_is_edb7211()) {
+                       int i;
+
+                       /* Turn off the LCD backlight. */
+                       clps_writeb(clps_readb(PDDR) & ~EDB_PD3_LCDBL, PDDR);
+
+                       /* Power off the LCD DC-DC converter. */
+                       clps_writeb(clps_readb(PDDR) & ~EDB_PD1_LCD_DC_DC_EN, PDDR);
+
+                       /* Delay for a little while (half a second). */
+                       for (i=0; i<65536*4; i++);
+
+                       /* Power off the LCD panel. */
+                       clps_writeb(clps_readb(PDDR) & ~EDB_PD2_LCDEN, PDDR);
+
+                       /* Power off the LCD controller. */
+                       clps_writel(clps_readl(SYSCON1) & ~SYSCON1_LCDEN, 
+                                       SYSCON1);
+               }
+       } else {
+               if (machine_is_edb7211()) {
+                               int i;
+
+                               /* Power up the LCD controller. */
+                               clps_writel(clps_readl(SYSCON1) | SYSCON1_LCDEN,
+                                               SYSCON1);
+
+                               /* Power up the LCD panel. */
+                               clps_writeb(clps_readb(PDDR) | EDB_PD2_LCDEN, PDDR);
+
+                               /* Delay for a little while. */
+                               for (i=0; i<65536*4; i++);
+
+                               /* Power up the LCD DC-DC converter. */
+                               clps_writeb(clps_readb(PDDR) | EDB_PD1_LCD_DC_DC_EN,
+                                               PDDR);
+
+                               /* Turn on the LCD backlight. */
+                               clps_writeb(clps_readb(PDDR) | EDB_PD3_LCDBL, PDDR);
+               }
+       }
+       return 0;
+}
+
 static struct fb_ops clps7111fb_ops = {
        owner:          THIS_MODULE,
        fb_set_var:     clps7111fb_set_var,
@@ -266,53 +313,6 @@ static int clps7111fb_updatevar(int con, struct fb_info *info)
        return -EINVAL;
 }
 
-static int clps7111fb_blank(int blank, struct fb_info *info)
-{
-       if (blank) {
-               if (machine_is_edb7211()) {
-                       int i;
-
-                       /* Turn off the LCD backlight. */
-                       clps_writeb(clps_readb(PDDR) & ~EDB_PD3_LCDBL, PDDR);
-
-                       /* Power off the LCD DC-DC converter. */
-                       clps_writeb(clps_readb(PDDR) & ~EDB_PD1_LCD_DC_DC_EN, PDDR);
-
-                       /* Delay for a little while (half a second). */
-                       for (i=0; i<65536*4; i++);
-
-                       /* Power off the LCD panel. */
-                       clps_writeb(clps_readb(PDDR) & ~EDB_PD2_LCDEN, PDDR);
-
-                       /* Power off the LCD controller. */
-                       clps_writel(clps_readl(SYSCON1) & ~SYSCON1_LCDEN, 
-                                       SYSCON1);
-               }
-       } else {
-               if (machine_is_edb7211()) {
-                               int i;
-
-                               /* Power up the LCD controller. */
-                               clps_writel(clps_readl(SYSCON1) | SYSCON1_LCDEN,
-                                               SYSCON1);
-
-                               /* Power up the LCD panel. */
-                               clps_writeb(clps_readb(PDDR) | EDB_PD2_LCDEN, PDDR);
-
-                               /* Delay for a little while. */
-                               for (i=0; i<65536*4; i++);
-
-                               /* Power up the LCD DC-DC converter. */
-                               clps_writeb(clps_readb(PDDR) | EDB_PD1_LCD_DC_DC_EN,
-                                               PDDR);
-
-                               /* Turn on the LCD backlight. */
-                               clps_writeb(clps_readb(PDDR) | EDB_PD3_LCDBL, PDDR);
-               }
-       }
-       return 0;
-}
-
 static int 
 clps7111fb_proc_backlight_read(char *page, char **start, off_t off,
                int count, int *eof, void *data)
@@ -430,7 +430,7 @@ int __init clps711xfb_init(void)
                clps_writeb(clps_readb(PDDR) | EDB_PD2_LCDEN, PDDR);
 
                /* Delay for a little while. */
-               for (i=0; i<65536*4; i++);
+               udelay(100);
 
                /* Power up the LCD DC-DC converter. */
                clps_writeb(clps_readb(PDDR) | EDB_PD1_LCD_DC_DC_EN, PDDR);
@@ -463,3 +463,7 @@ static void __exit clps711xfb_exit(void)
 module_init(clps711xfb_init);
 #endif
 module_exit(clps711xfb_exit);
+
+MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
+MODULE_DESCRIPTION("CLPS711x framebuffer driver");
+MODULE_LICENSE("GPL");
index fcaf8c8cc390984e516ff26ccb4f1e9361c64e3f..29f2386eceb6aa1c330d2871c26f85dde448fc6b 100644 (file)
@@ -1258,69 +1258,6 @@ sa1100fb_get_cmap(struct fb_cmap *cmap, int kspc, int con, struct fb_info *info)
        return 0;
 }
 
-static struct fb_ops sa1100fb_ops = {
-       owner:          THIS_MODULE,
-       fb_get_fix:     sa1100fb_get_fix,
-       fb_get_var:     sa1100fb_get_var,
-       fb_set_var:     sa1100fb_set_var,
-       fb_get_cmap:    sa1100fb_get_cmap,
-       fb_set_cmap:    sa1100fb_set_cmap,
-       fb_setcolreg:   sa1100fb_setcolreg,
-       fb_blank:       sa1100fb_blank,
-};
-
-/*
- *  sa1100fb_switch():       
- *     Change to the specified console.  Palette and video mode
- *      are changed to the console's stored parameters.
- *
- *     Uh oh, this can be called from a tasklet (IRQ)
- */
-static int sa1100fb_switch(int con, struct fb_info *info)
-{
-       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
-       struct display *disp;
-       struct fb_cmap *cmap;
-
-       DPRINTK("con=%d info->modename=%s\n", con, fbi->fb.modename);
-
-       if (con == info->currcon)
-               return 0;
-
-       if (info->currcon >= 0) {
-               disp = fb_display + info->currcon;
-
-               /*
-                * Save the old colormap and video mode.
-                */
-               disp->var = fbi->fb.var;
-
-               if (disp->cmap.len)
-                       fb_copy_cmap(&fbi->fb.cmap, &disp->cmap, 0);
-       }
-
-       info->currcon = con;
-       disp = fb_display + con;
-
-       /*
-        * Make sure that our colourmap contains 256 entries.
-        */
-       fb_alloc_cmap(&fbi->fb.cmap, 256, 0);
-
-       if (disp->cmap.len)
-               cmap = &disp->cmap;
-       else
-               cmap = fb_default_cmap(1 << disp->var.bits_per_pixel);
-
-       fb_copy_cmap(cmap, &fbi->fb.cmap, 0);
-
-       fbi->fb.var = disp->var;
-       fbi->fb.var.activate = FB_ACTIVATE_NOW;
-
-       sa1100fb_set_var(&fbi->fb.var, con, info);
-       return 0;
-}
-
 /*
  * Formal definition of the VESA spec:
  *  On
@@ -1388,6 +1325,69 @@ static int sa1100fb_blank(int blank, struct fb_info *info)
        return 0;
 }
 
+static struct fb_ops sa1100fb_ops = {
+       owner:          THIS_MODULE,
+       fb_get_fix:     sa1100fb_get_fix,
+       fb_get_var:     sa1100fb_get_var,
+       fb_set_var:     sa1100fb_set_var,
+       fb_get_cmap:    sa1100fb_get_cmap,
+       fb_set_cmap:    sa1100fb_set_cmap,
+       fb_setcolreg:   sa1100fb_setcolreg,
+       fb_blank:       sa1100fb_blank,
+};
+
+/*
+ *  sa1100fb_switch():       
+ *     Change to the specified console.  Palette and video mode
+ *      are changed to the console's stored parameters.
+ *
+ *     Uh oh, this can be called from a tasklet (IRQ)
+ */
+static int sa1100fb_switch(int con, struct fb_info *info)
+{
+       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
+       struct display *disp;
+       struct fb_cmap *cmap;
+
+       DPRINTK("con=%d info->modename=%s\n", con, fbi->fb.modename);
+
+       if (con == info->currcon)
+               return 0;
+
+       if (info->currcon >= 0) {
+               disp = fb_display + info->currcon;
+
+               /*
+                * Save the old colormap and video mode.
+                */
+               disp->var = fbi->fb.var;
+
+               if (disp->cmap.len)
+                       fb_copy_cmap(&fbi->fb.cmap, &disp->cmap, 0);
+       }
+
+       info->currcon = con;
+       disp = fb_display + con;
+
+       /*
+        * Make sure that our colourmap contains 256 entries.
+        */
+       fb_alloc_cmap(&fbi->fb.cmap, 256, 0);
+
+       if (disp->cmap.len)
+               cmap = &disp->cmap;
+       else
+               cmap = fb_default_cmap(1 << disp->var.bits_per_pixel);
+
+       fb_copy_cmap(cmap, &fbi->fb.cmap, 0);
+
+       fbi->fb.var = disp->var;
+       fbi->fb.var.activate = FB_ACTIVATE_NOW;
+
+       sa1100fb_set_var(&fbi->fb.var, con, info);
+       return 0;
+}
+
 static int sa1100fb_updatevar(int con, struct fb_info *info)
 {
        DPRINTK("entered\n");