staging: xgifb: delete legacy DAC data
authorAaro Koskinen <aaro.koskinen@iki.fi>
Fri, 6 Apr 2012 22:14:06 +0000 (01:14 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 10 Apr 2012 17:20:08 +0000 (10:20 -0700)
Delete DAC data for unsupported legacy modes.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/xgifb/vb_setmode.c

index 109d75d..c892e0f 100644 (file)
 
 #define  IndexMask 0xff
 
-static const unsigned short XGINew_MDA_DAC[] = {
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
-       0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
-       0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
-       0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
-       0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F};
-
-static const unsigned short XGINew_CGA_DAC[] = {
-       0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
-       0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
-       0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
-       0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
-       0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
-       0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
-       0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
-       0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F};
-
-static const unsigned short XGINew_EGA_DAC[] = {
-       0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x05, 0x15,
-       0x20, 0x30, 0x24, 0x34, 0x21, 0x31, 0x25, 0x35,
-       0x08, 0x18, 0x0C, 0x1C, 0x09, 0x19, 0x0D, 0x1D,
-       0x28, 0x38, 0x2C, 0x3C, 0x29, 0x39, 0x2D, 0x3D,
-       0x02, 0x12, 0x06, 0x16, 0x03, 0x13, 0x07, 0x17,
-       0x22, 0x32, 0x26, 0x36, 0x23, 0x33, 0x27, 0x37,
-       0x0A, 0x1A, 0x0E, 0x1E, 0x0B, 0x1B, 0x0F, 0x1F,
-       0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F};
-
 static const unsigned short XGINew_VGA_DAC[] = {
        0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
        0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
@@ -1393,34 +1363,13 @@ static void XGI_WriteDAC(unsigned short dl,
 static void XGI_LoadDAC(unsigned short ModeNo, unsigned short ModeIdIndex,
                struct vb_device_info *pVBInfo)
 {
-       unsigned short data, data2, time, i, j, k, m, n, o, si, di, bx, dl, al,
-                       ah, dh;
-       const unsigned short *table = NULL;
-
-       data = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-       data &= DACInfoFlag;
-       time = 64;
-
-       if (data == 0x00)
-               table = XGINew_MDA_DAC;
-       else if (data == 0x08)
-               table = XGINew_CGA_DAC;
-       else if (data == 0x10)
-               table = XGINew_EGA_DAC;
-       else if (data == 0x18) {
-               time = 256;
-               table = XGINew_VGA_DAC;
-       }
-
-       if (time == 256)
-               j = 16;
-       else
-               j = time;
+       unsigned short data, data2, i, k, m, n, o, si, di, bx, dl, al, ah, dh;
+       const unsigned short *table = XGINew_VGA_DAC;
 
        outb(0xFF, pVBInfo->P3c6);
        outb(0x00, pVBInfo->P3c8);
 
-       for (i = 0; i < j; i++) {
+       for (i = 0; i < 16; i++) {
                data = table[i];
 
                for (k = 0; k < 3; k++) {
@@ -1437,45 +1386,43 @@ static void XGI_LoadDAC(unsigned short ModeNo, unsigned short ModeIdIndex,
                }
        }
 
-       if (time == 256) {
-               for (i = 16; i < 32; i++) {
-                       data = table[i];
-
-                       for (k = 0; k < 3; k++)
-                               outb(data, pVBInfo->P3c9);
-               }
+       for (i = 16; i < 32; i++) {
+               data = table[i];
 
-               si = 32;
+               for (k = 0; k < 3; k++)
+                       outb(data, pVBInfo->P3c9);
+       }
 
-               for (m = 0; m < 9; m++) {
-                       di = si;
-                       bx = si + 0x04;
-                       dl = 0;
+       si = 32;
 
-                       for (n = 0; n < 3; n++) {
-                               for (o = 0; o < 5; o++) {
-                                       dh = table[si];
-                                       ah = table[di];
-                                       al = table[bx];
-                                       si++;
-                                       XGI_WriteDAC(dl, ah, al, dh, pVBInfo);
-                               }
+       for (m = 0; m < 9; m++) {
+               di = si;
+               bx = si + 0x04;
+               dl = 0;
 
-                               si -= 2;
+               for (n = 0; n < 3; n++) {
+                       for (o = 0; o < 5; o++) {
+                               dh = table[si];
+                               ah = table[di];
+                               al = table[bx];
+                               si++;
+                               XGI_WriteDAC(dl, ah, al, dh, pVBInfo);
+                       }
 
-                               for (o = 0; o < 3; o++) {
-                                       dh = table[bx];
-                                       ah = table[di];
-                                       al = table[si];
-                                       si--;
-                                       XGI_WriteDAC(dl, ah, al, dh, pVBInfo);
-                               }
+                       si -= 2;
 
-                               dl++;
+                       for (o = 0; o < 3; o++) {
+                               dh = table[bx];
+                               ah = table[di];
+                               al = table[si];
+                               si--;
+                               XGI_WriteDAC(dl, ah, al, dh, pVBInfo);
                        }
 
-                       si += 5;
+                       dl++;
                }
+
+               si += 5;
        }
 }