]> git.pld-linux.org Git - packages/XFree86-Servers.git/blob - XFree86-Servers-fix-04-s3trio3d2x.patch
- one fix to many
[packages/XFree86-Servers.git] / XFree86-Servers-fix-04-s3trio3d2x.patch
1 diff -u clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h
2 --- clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h        Tue Jan 11 20:01:01 2000
3 +++ xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h      Mon Mar 13 16:56:47 2000
4 @@ -19,7 +19,7 @@
5     unsigned char CR40, CR41, CR42, CR43, CR45;
6     unsigned char CR51, CR53, CR54, CR55, CR58, CR5D, CR5E;
7     unsigned char CR63, CR65, CR66, CR67, CR68, CR69, CR6D; /* Video attrib. */
8 -   unsigned char CR86;
9 +   unsigned char CR85, CR86;
10     unsigned char CR90, CR91;
11     unsigned char ColorStack[8]; /* S3 hw cursor color stack CR4A/CR4B */
12     unsigned int  STREAMS[22];   /* Streams regs */
13 diff -u clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c
14 --- clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c        Tue Jan 11 20:01:01 2000
15 +++ xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c      Tue Mar 14 01:05:09 2000
16 @@ -471,6 +471,10 @@
17  
18     outb(vgaCRIndex, 0x33);
19     outb(vgaCRReg, restore->CR33);
20 +   if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
21 +      outb(vgaCRIndex, 0x85);
22 +      outb(vgaCRReg, restore->CR85);
23 +   }
24     if (s3vPriv.chip == S3_ViRGE_DXGX) {
25        outb(vgaCRIndex, 0x86);
26        outb(vgaCRReg, restore->CR86);
27 @@ -702,6 +706,10 @@
28  
29     outb(vgaCRIndex, 0x33);             
30     save->CR33 = inb(vgaCRReg);
31 +   if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
32 +      outb(vgaCRIndex, 0x85);
33 +      save->CR85 = inb(vgaCRReg);
34 +   }
35     if (s3vPriv.chip == S3_ViRGE_DXGX) {
36        outb(vgaCRIndex, 0x86);
37        save->CR86 = inb(vgaCRReg);
38 @@ -970,10 +978,12 @@
39        }
40        else if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
41           switch((config1 & 0xE0) >> 5) {
42 -         case 0:
43 -            vga256InfoRec.videoRam = 8 * 1024;
44 +         case 0:  /* 8MB -- only 4MB usable for display/cursor */
45 +            vga256InfoRec.videoRam = 4 * 1024;
46 +            s3vPriv.MemOffScreen   = 4 * 1024;
47              break;
48           case 1:    /* 32 bit interface -- yuck */
49 +           ErrorF("%s %s: found 32 bit interface for video memory -- yuck:(\n");
50           case 2:
51              vga256InfoRec.videoRam = 4 * 1024;
52              break;
53 @@ -1071,6 +1081,12 @@
54        if (vga256InfoRec.dacSpeeds[2] <= 0) vga256InfoRec.dacSpeeds[2] = 135000;
55        if (vga256InfoRec.dacSpeeds[3] <= 0) vga256InfoRec.dacSpeeds[3] = 135000;
56     }
57 +   else if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
58 +      if (vga256InfoRec.dacSpeeds[0] <= 0) vga256InfoRec.dacSpeeds[0] = 230000;
59 +      if (vga256InfoRec.dacSpeeds[1] <= 0) vga256InfoRec.dacSpeeds[1] = 230000;
60 +      if (vga256InfoRec.dacSpeeds[2] <= 0) vga256InfoRec.dacSpeeds[2] = 135000;
61 +      if (vga256InfoRec.dacSpeeds[3] <= 0) vga256InfoRec.dacSpeeds[3] = 135000;
62 +   }
63     else if (s3vPriv.chip == S3_ViRGE_DXGX || S3_ViRGE_GX2_SERIES(s3vPriv.chip)) {
64        if (vga256InfoRec.dacSpeeds[0] <= 0) vga256InfoRec.dacSpeeds[0] = 170000;
65        if (vga256InfoRec.dacSpeeds[1] <= 0) vga256InfoRec.dacSpeeds[1] = 170000;
66 @@ -1874,6 +1890,9 @@
67     new->CR33 = 0x20;
68     if ((s3vPriv.chip == S3_ViRGE_DXGX) || (S3_TRIO_3D_SERIES(s3vPriv.chip))) {
69        new->CR86 = 0x80;  /* disable DAC power saving to avoid bright left edge */
70 +   }
71 +   if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
72 +      new->CR85 = 0x1f;  /* avoid sreen flickering */
73     }
74     if (s3vPriv.chip == S3_ViRGE_DXGX || S3_ViRGE_GX2_SERIES(s3vPriv.chip) || 
75         S3_ViRGE_MX_SERIES(s3vPriv.chip) || S3_TRIO_3D_SERIES(s3vPriv.chip)) {
This page took 0.055964 seconds and 3 git commands to generate.