[PATCH] matroxfb: Use CACHEFLUSH on all chips
authorVille Syrjälä <syrjala@sci.fi>
Mon, 7 Nov 2005 09:00:58 +0000 (01:00 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 7 Nov 2005 15:53:54 +0000 (07:53 -0800)
Use the CACHEFLUSH register on all chip types.  The register is listed in all
other specs except 2064W.  However I have verified that the register does work
on a 2064W despite being marked reserved in the specs.  There were no
noticeable side effects after writing to the register.

Signed-off-by: Ville Syrjälä <syrjala@sci.fi>
Signed-off-by: Petr Vandrovec <petr@vandrovec.name>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/video/matrox/matroxfb_DAC1064.c
drivers/video/matrox/matroxfb_base.c
drivers/video/matrox/matroxfb_base.h

index 149680f..94ba815 100644 (file)
@@ -657,7 +657,6 @@ static int MGA1064_preinit(WPMINFO2) {
        /* ACCESS_FBINFO(capable.cfb4) = 0; ... preinitialized by 0 */
        ACCESS_FBINFO(capable.text) = 1;
        ACCESS_FBINFO(capable.vxres) = vxres_mystique;
-       ACCESS_FBINFO(features.accel.has_cacheflush) = 1;
 
        ACCESS_FBINFO(outputs[0]).output = &m1064;
        ACCESS_FBINFO(outputs[0]).src = ACCESS_FBINFO(outputs[0]).default_src;
@@ -842,7 +841,6 @@ static int MGAG100_preinit(WPMINFO2) {
        /* ACCESS_FBINFO(capable.cfb4) = 0; ... preinitialized by 0 */
        ACCESS_FBINFO(capable.text) = 1;
        ACCESS_FBINFO(capable.vxres) = vxres_g100;
-       ACCESS_FBINFO(features.accel.has_cacheflush) = 1;
        ACCESS_FBINFO(capable.plnwt) = ACCESS_FBINFO(devflags.accelerator) == FB_ACCEL_MATROX_MGAG100
                        ? ACCESS_FBINFO(devflags.sgram) : 1;
 
index 1734438..a780bb3 100644 (file)
@@ -1283,7 +1283,7 @@ static int matroxfb_getmemory(WPMINFO unsigned int maxSize, unsigned int *realSi
        vaddr_t vm;
        unsigned int offs;
        unsigned int offs2;
-       unsigned char store, orig;
+       unsigned char orig;
        unsigned char bytes[32];
        unsigned char* tmp;
 
@@ -1299,16 +1299,12 @@ static int matroxfb_getmemory(WPMINFO unsigned int maxSize, unsigned int *realSi
        orig = mga_inb(M_EXTVGA_DATA);
        mga_outb(M_EXTVGA_DATA, orig | 0x80);
 
-       store = mga_readb(vm, 0x1234);
        tmp = bytes;
        for (offs = 0x100000; offs < maxSize; offs += 0x200000)
                *tmp++ = mga_readb(vm, offs);
        for (offs = 0x100000; offs < maxSize; offs += 0x200000)
                mga_writeb(vm, offs, 0x02);
-       if (ACCESS_FBINFO(features.accel.has_cacheflush))
-               mga_outb(M_CACHEFLUSH, 0x00);
-       else
-               mga_writeb(vm, 0x1234, 0x99);
+       mga_outb(M_CACHEFLUSH, 0x00);
        for (offs = 0x100000; offs < maxSize; offs += 0x200000) {
                if (mga_readb(vm, offs) != 0x02)
                        break;
@@ -1319,7 +1315,6 @@ static int matroxfb_getmemory(WPMINFO unsigned int maxSize, unsigned int *realSi
        tmp = bytes;
        for (offs2 = 0x100000; offs2 < maxSize; offs2 += 0x200000)
                mga_writeb(vm, offs2, *tmp++);
-       mga_writeb(vm, 0x1234, store);
 
        mga_outb(M_EXTVGA_INDEX, 0x03);
        mga_outb(M_EXTVGA_DATA, orig);
index 85a0b25..a8c47ad 100644 (file)
@@ -272,10 +272,6 @@ struct matrox_DAC1064_features {
        u_int8_t        xmiscctrl;
 };
 
-struct matrox_accel_features {
-       int             has_cacheflush;
-};
-
 /* current hardware status */
 struct mavenregs {
        u_int8_t regs[256];
@@ -440,7 +436,6 @@ struct matrox_fb_info {
        struct {
                struct matrox_pll_features pll;
                struct matrox_DAC1064_features DAC1064;
-               struct matrox_accel_features accel;
                              } features;
        struct {
                spinlock_t      DAC;