]>
Commit | Line | Data |
---|---|---|
3d715510 JB |
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)) { |