libata: test major version in ata_id_is_sata()
[powerpc.git] / drivers / video / asiliantfb.c
index 69f7554..1fd22f4 100644 (file)
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/string.h>
 #include <linux/mm.h>
-#include <linux/tty.h>
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
 #include <linux/delay.h>
@@ -322,32 +320,29 @@ static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
        writeb(green, mmio_base + 0x791);
        writeb(blue, mmio_base + 0x791);
 
-       switch(p->var.bits_per_pixel) {
-       case 15:
-               if (regno < 16) {
+       if (regno < 16) {
+               switch(p->var.red.offset) {
+               case 10: /* RGB 555 */
                        ((u32 *)(p->pseudo_palette))[regno] =
                                ((red & 0xf8) << 7) |
                                ((green & 0xf8) << 2) |
                                ((blue & 0xf8) >> 3);
-               }
-               break;
-       case 16:
-               if (regno < 16) {
+                       break;
+               case 11: /* RGB 565 */
                        ((u32 *)(p->pseudo_palette))[regno] =
                                ((red & 0xf8) << 8) |
                                ((green & 0xfc) << 3) |
                                ((blue & 0xf8) >> 3);
-               }
-               break;
-       case 24:
-               if (regno < 24) {
+                       break;
+               case 16: /* RGB 888 */
                        ((u32 *)(p->pseudo_palette))[regno] =
                                (red << 16)  |
                                (green << 8) |
                                (blue);
+                       break;
                }
-               break;
        }
+
        return 0;
 }
 
@@ -356,8 +351,6 @@ struct chips_init_reg {
        unsigned char data;
 };
 
-#define N_ELTS(x)      (sizeof(x) / sizeof(x[0]))
-
 static struct chips_init_reg chips_init_sr[] =
 {
        {0x00, 0x03},           /* Reset register */
@@ -463,22 +456,22 @@ static void __devinit chips_hw_init(struct fb_info *p)
 {
        int i;
 
-       for (i = 0; i < N_ELTS(chips_init_xr); ++i)
+       for (i = 0; i < ARRAY_SIZE(chips_init_xr); ++i)
                write_xr(chips_init_xr[i].addr, chips_init_xr[i].data);
        write_xr(0x81, 0x12);
        write_xr(0x82, 0x08);
        write_xr(0x20, 0x00);
-       for (i = 0; i < N_ELTS(chips_init_sr); ++i)
+       for (i = 0; i < ARRAY_SIZE(chips_init_sr); ++i)
                write_sr(chips_init_sr[i].addr, chips_init_sr[i].data);
-       for (i = 0; i < N_ELTS(chips_init_gr); ++i)
+       for (i = 0; i < ARRAY_SIZE(chips_init_gr); ++i)
                write_gr(chips_init_gr[i].addr, chips_init_gr[i].data);
-       for (i = 0; i < N_ELTS(chips_init_ar); ++i)
+       for (i = 0; i < ARRAY_SIZE(chips_init_ar); ++i)
                write_ar(chips_init_ar[i].addr, chips_init_ar[i].data);
        /* Enable video output in attribute index register */
        writeb(0x20, mmio_base + 0x780);
-       for (i = 0; i < N_ELTS(chips_init_cr); ++i)
+       for (i = 0; i < ARRAY_SIZE(chips_init_cr); ++i)
                write_cr(chips_init_cr[i].addr, chips_init_cr[i].data);
-       for (i = 0; i < N_ELTS(chips_init_fr); ++i)
+       for (i = 0; i < ARRAY_SIZE(chips_init_fr); ++i)
                write_fr(chips_init_fr[i].addr, chips_init_fr[i].data);
 }