summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am1
-rw-r--r--src/atiadapter.c19
-rw-r--r--src/atiadapter.h19
-rw-r--r--src/atiadjust.c40
-rw-r--r--src/atibus.c7
-rw-r--r--src/atibus.h7
-rw-r--r--src/atichip.c38
-rw-r--r--src/atichip.h21
-rw-r--r--src/aticlock.c149
-rw-r--r--src/aticonsole.c11
-rw-r--r--src/atidac.c36
-rw-r--r--src/atidga.c5
-rw-r--r--src/atidsp.c6
-rw-r--r--src/atiident.c36
-rw-r--r--src/atiident.h12
-rw-r--r--src/atiload.c29
-rw-r--r--src/atiload.h6
-rw-r--r--src/atilock.c17
-rw-r--r--src/atimach64.c23
-rw-r--r--src/atimisc.c7
-rw-r--r--src/atimono.h42
-rw-r--r--src/atiprint.c23
-rw-r--r--src/atiprobe.c69
-rw-r--r--src/atiscreen.c34
-rw-r--r--src/atistruct.h1
-rw-r--r--src/ativga.c44
-rw-r--r--src/atiwonder.c17
-rw-r--r--src/atiwonderio.c23
28 files changed, 16 insertions, 726 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 0b70abd1..4dcd7085 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -141,7 +141,6 @@ EXTRA_DIST = \
atimach64xv.h \
atimode.h \
atimodule.h \
- atimono.h \
atioption.h \
atipreinit.h \
atiprint.h \
diff --git a/src/atiadapter.c b/src/atiadapter.c
index b0b55806..8a597efb 100644
--- a/src/atiadapter.c
+++ b/src/atiadapter.c
@@ -32,25 +32,6 @@
const char *ATIAdapterNames[] =
{
"Unknown",
-
-#ifndef AVOID_CPIO
-
- "ATI EGA Wonder800",
- "ATI EGA Wonder800+",
- "IBM VGA or compatible",
- "ATI VGA Basic16",
- "ATI VGA Wonder V3",
- "ATI VGA Wonder V4",
- "ATI VGA Wonder V5",
- "ATI VGA Wonder+",
- "ATI VGA Wonder XL or XL24",
- "ATI VGA Wonder VLB or PCI",
- "IBM 8514/A or compatible",
- "ATI Mach8",
- "ATI Mach32",
-
-#endif /* AVOID_CPIO */
-
"ATI Mach64",
"ATI Rage128",
"ATI Radeon"
diff --git a/src/atiadapter.h b/src/atiadapter.h
index 66a5e998..3ecd7bc4 100644
--- a/src/atiadapter.h
+++ b/src/atiadapter.h
@@ -29,25 +29,6 @@
typedef enum
{
ATI_ADAPTER_NONE = 0,
-
-#ifndef AVOID_CPIO
-
- ATI_ADAPTER_EGA,
- ATI_ADAPTER_EGA_PLUS,
- ATI_ADAPTER_VGA,
- ATI_ADAPTER_BASIC,
- ATI_ADAPTER_V3,
- ATI_ADAPTER_V4,
- ATI_ADAPTER_V5,
- ATI_ADAPTER_PLUS,
- ATI_ADAPTER_XL,
- ATI_ADAPTER_NONISA,
- ATI_ADAPTER_8514A,
- ATI_ADAPTER_MACH8,
- ATI_ADAPTER_MACH32,
-
-#endif /* AVOID_CPIO */
-
ATI_ADAPTER_MACH64,
ATI_ADAPTER_RAGE128,
ATI_ADAPTER_RADEON,
diff --git a/src/atiadjust.c b/src/atiadjust.c
index ef748e9c..dfbd2102 100644
--- a/src/atiadjust.c
+++ b/src/atiadjust.c
@@ -54,21 +54,6 @@ ATIAdjustPreInit
{
unsigned long MaxBase;
-#ifndef AVOID_CPIO
-
- if ((pATI->CPIO_VGAWonder) &&
- (pATI->Chip <= ATI_CHIP_18800_1) &&
- (pATI->VideoRAM == 256) &&
- (pATI->depth >= 8))
- {
- /* Strange, to say the least ... */
- pATI->AdjustDepth = (pATI->bitsPerPixel + 3) >> 2;
- pATI->AdjustMask = (unsigned long)(-32);
- }
- else
-
-#endif /* AVOID_CPIO */
-
{
pATI->AdjustDepth = (pATI->bitsPerPixel + 7) >> 3;
@@ -89,17 +74,11 @@ ATIAdjustPreInit
if (pATI->Chip >= ATI_CHIP_264CT)
{
pATI->AdjustMaxBase = MaxBits(CRTC_OFFSET_VGA) << 2;
- if (pATI->depth <= 4)
- pATI->AdjustMaxBase <<= 1;
}
else if (!pATI->CPIO_VGAWonder)
{
pATI->AdjustMaxBase = 0xFFFFU << 3;
}
- else if (pATI->Chip <= ATI_CHIP_28800_6)
- {
- pATI->AdjustMaxBase = 0x03FFFFU << 3;
- }
else /* Mach32 & Mach64 */
{
pATI->AdjustMaxBase = 0x0FFFFFU << 3;
@@ -185,10 +164,6 @@ ATIAdjustFrame
if (pATI->CPIO_VGAWonder)
{
- if (pATI->Chip <= ATI_CHIP_18800_1)
- ATIModifyExtReg(pATI, 0xB0U, -1, 0x3FU, Base >> 10);
- else
- {
ATIModifyExtReg(pATI, 0xB0U, -1, 0xBFU, Base >> 10);
ATIModifyExtReg(pATI, 0xA3U, -1, 0xEFU, Base >> 13);
@@ -196,25 +171,10 @@ ATIAdjustFrame
* I don't know if this also applies to Mach64's, but give it a
* shot...
*/
- if (pATI->Chip >= ATI_CHIP_68800)
ATIModifyExtReg(pATI, 0xADU, -1, 0xF3U, Base >> 16);
- }
}
}
else
- /*
- * On integrated controllers, there is only one set of CRTC control bits,
- * many of which are simultaneously accessible through both VGA and
- * accelerator I/O ports. Given VGA's architectural limitations, setting
- * the CRTC's offset register to more than 256k needs to be done through
- * the accelerator port.
- */
- if (pATI->depth <= 4)
- {
- outr(CRTC_OFF_PITCH, SetBits(pATI->displayWidth >> 4, CRTC_PITCH) |
- SetBits(Base, CRTC_OFFSET));
- }
- else
#endif /* AVOID_CPIO */
diff --git a/src/atibus.c b/src/atibus.c
index 3636b3bf..a371dc4d 100644
--- a/src/atibus.c
+++ b/src/atibus.c
@@ -40,13 +40,6 @@
const char *ATIBusNames[] =
{
- "16-Bit ISA",
- "EISA",
- "16-Bit MicroChannel",
- "32-Bit MicroChannel",
- "386SX Local Bus",
- "386DX Local Bus",
- "VESA Local Bus",
"PCI",
"AGP"
};
diff --git a/src/atibus.h b/src/atibus.h
index b719702a..a02d8c5f 100644
--- a/src/atibus.h
+++ b/src/atibus.h
@@ -38,13 +38,6 @@
*/
typedef enum
{
- ATI_BUS_ISA = 0,
- ATI_BUS_EISA,
- ATI_BUS_MCA16,
- ATI_BUS_MCA32,
- ATI_BUS_SXLB,
- ATI_BUS_DXLB,
- ATI_BUS_VLB,
ATI_BUS_PCI,
ATI_BUS_AGP
} ATIBusType;
diff --git a/src/atichip.c b/src/atichip.c
index 7b56bbcf..ddc7e0a7 100644
--- a/src/atichip.c
+++ b/src/atichip.c
@@ -36,27 +36,6 @@
const char *ATIChipNames[] =
{
"Unknown",
-
-#ifndef AVOID_CPIO
-
- "IBM VGA or compatible",
- "ATI 18800",
- "ATI 18800-1",
- "ATI 28800-2",
- "ATI 28800-4",
- "ATI 28800-5",
- "ATI 28800-6",
- "IBM 8514/A",
- "Chips & Technologies 82C480",
- "ATI 38800-1",
- "ATI 68800",
- "ATI 68800-3",
- "ATI 68800-6",
- "ATI 68800LX",
- "ATI 68800AX",
-
-#endif /* AVOID_CPIO */
-
"ATI 88800GX-C",
"ATI 88800GX-D",
"ATI 88800GX-E",
@@ -410,23 +389,6 @@ ATIChipID
{
switch (ChipID)
{
-
-#ifndef AVOID_CPIO
-
- case OldChipID('A', 'A'): case NewChipID('A', 'A'):
- return ATI_CHIP_68800_3;
-
- case OldChipID('X', 'X'): case NewChipID('X', 'X'):
- return ATI_CHIP_68800_6;
-
- case OldChipID('L', 'X'):
- return ATI_CHIP_68800LX;
-
- case OldChipID('A', 'X'): case NewChipID('A', 'X'):
- return ATI_CHIP_68800AX;
-
-#endif /* AVOID_CPIO */
-
case OldChipID('G', 'X'): case NewChipID('G', 'X'):
switch (ChipRev)
{
diff --git a/src/atichip.h b/src/atichip.h
index 1b7ca2fa..733c7b1f 100644
--- a/src/atichip.h
+++ b/src/atichip.h
@@ -34,27 +34,6 @@
typedef enum
{
ATI_CHIP_NONE = 0,
-
-#ifndef AVOID_CPIO
-
- ATI_CHIP_VGA, /* Generic VGA */
- ATI_CHIP_18800,
- ATI_CHIP_18800_1,
- ATI_CHIP_28800_2,
- ATI_CHIP_28800_4,
- ATI_CHIP_28800_5,
- ATI_CHIP_28800_6,
- ATI_CHIP_8514A, /* 8514/A */
- ATI_CHIP_CT480, /* 8514/A clone */
- ATI_CHIP_38800_1, /* Mach8 */
- ATI_CHIP_68800, /* Mach32 */
- ATI_CHIP_68800_3, /* Mach32 */
- ATI_CHIP_68800_6, /* Mach32 */
- ATI_CHIP_68800LX, /* Mach32 */
- ATI_CHIP_68800AX, /* Mach32 */
-
-#endif /* AVOID_CPIO */
-
ATI_CHIP_88800GXC, /* Mach64 */
ATI_CHIP_88800GXD, /* Mach64 */
ATI_CHIP_88800GXE, /* Mach64 */
diff --git a/src/aticlock.c b/src/aticlock.c
index 548cb620..727f80f1 100644
--- a/src/aticlock.c
+++ b/src/aticlock.c
@@ -450,13 +450,6 @@ ATIMatchClockLine
int MinimumGap = CLOCK_TOLERANCE + 1;
/* For ATI adapters, reject generic VGA clocks */
-
-#ifndef AVOID_CPIO
-
- if (pATI->Adapter != ATI_ADAPTER_VGA)
-
-#endif /* AVOID_CPIO */
-
{
if (ClockLine == SpecificationClockLine)
ClockChipIndex++;
@@ -470,15 +463,6 @@ ATIMatchClockLine
{
int MaximumGap = 0, ClockCount = 0, ClockIndex = 0;
-#ifndef AVOID_CPIO
-
- /* Only Mach64's and later can have programmable clocks */
- if ((ClockChipIndex >= ATI_CLOCK_MACH64A) &&
- (pATI->Adapter < ATI_ADAPTER_MACH64))
- break;
-
-#endif /* AVOID_CPIO */
-
for (; ClockIndex < NumberOfClocks; ClockIndex++)
{
int Gap, XF86ConfigClock, SpecificationClock;
@@ -517,15 +501,6 @@ ATIMatchClockLine
break;
SkipThisClockGenerator:;
-
-#ifndef AVOID_CPIO
-
- /* For non-ATI adapters, only normalise standard VGA clocks */
- if (pATI->Adapter == ATI_ADAPTER_VGA)
- break;
-
-#endif /* AVOID_CPIO */
-
}
return ClockChip;
@@ -660,49 +635,7 @@ ATIClockPreInit
*/
ProbeClocks:
-#ifndef AVOID_CPIO
-
- if (pATI->Adapter == ATI_ADAPTER_VGA)
{
- NumberOfDividers = 1;
- NumberOfUndividedClocks = 4;
- CalibrationClockNumber = 1;
- CalibrationClockValue = 28322;
- }
- else
-
-#endif /* AVOID_CPIO */
-
- {
-
-#ifndef AVOID_CPIO
-
- NumberOfDividers = 4;
- if ((pATI->Chip <= ATI_CHIP_18800) ||
- (pATI->Adapter == ATI_ADAPTER_V4))
- {
- NumberOfUndividedClocks = 8;
- /* Actually, any undivided clock will do */
- CalibrationClockNumber = 1;
- CalibrationClockValue = 56644;
- }
- else
-
-#endif /* AVOID_CPIO */
-
- {
- NumberOfUndividedClocks = 16;
-
-#ifndef AVOID_CPIO
-
- CalibrationClockNumber = 7;
- CalibrationClockValue = 36000;
- if (pATI->Chip >= ATI_CHIP_68800)
-
-#endif /* AVOID_CPIO */
-
- {
- NumberOfDividers = 2;
if (pATI->Chip >= ATI_CHIP_264CT)
{
NumberOfDividers = 1;
@@ -711,14 +644,9 @@ ProbeClocks:
CalibrationClockValue = 28322;
}
else
-
-#ifndef AVOID_CPIO
-
- if (pATI->Adapter >= ATI_ADAPTER_MACH64)
-
-#endif /* AVOID_CPIO */
-
{
+ NumberOfDividers = 2;
+ NumberOfUndividedClocks = 16;
CalibrationClockNumber = 10 /* or 11 */;
CalibrationClockValue = 75000 /* or 65000 */;
}
@@ -743,8 +671,6 @@ ProbeClocks:
pATI->NewHW.ClockMap = ATIAcceleratorClockMap;
pATI->NewHW.ClockUnmap = ATIAcceleratorClockUnmap;
}
- }
- }
}
pATI->OldHW.ClockMap = pATI->NewHW.ClockMap;
@@ -829,31 +755,12 @@ ProbeClocks:
if (pATI->CPIO_VGAWonder)
{
- /*
- * On adapters with crystals, switching to one of the
- * spare assignments doesn't do anything (i.e. the
- * previous setting remains in effect). So, disable
- * their selection.
- */
- if (((Index & 0x03U) == 0x02U) &&
- ((pATI->Chip <= ATI_CHIP_18800) ||
- (pATI->Adapter == ATI_ADAPTER_V4)))
- continue;
-
/* Start sequencer reset */
PutReg(SEQX, 0x00U, 0x00U);
- /* Set high-order bits */
- if (pATI->Chip <= ATI_CHIP_18800)
- {
- ATIModifyExtReg(pATI, 0xB2U, -1, 0xBFU,
- Index << 4);
- }
- else
{
ATIModifyExtReg(pATI, 0xBEU, -1, 0xEFU,
Index << 2);
- if (pATI->Adapter != ATI_ADAPTER_V4)
{
Index >>= 1;
ATIModifyExtReg(pATI, 0xB9U, -1, 0xFDU,
@@ -1020,19 +927,6 @@ ProbeClocks:
SpecificationClockLine, NumberOfUndividedClocks,
CalibrationClockNumber, 0);
-#ifndef AVOID_CPIO
-
- if ((pATI->Chip <= ATI_CHIP_18800) ||
- (pATI->Adapter == ATI_ADAPTER_V4))
- {
- /* V3 and V4 adapters don't have clock chips */
- if (pATI->Clock > ATI_CLOCK_CRYSTALS)
- pATI->Clock = ATI_CLOCK_NONE;
- }
- else
-
-#endif /* AVOID_CPIO */
-
{
/* All others don't have crystals */
if (pATI->Clock == ATI_CLOCK_CRYSTALS)
@@ -1061,12 +955,6 @@ ProbeClocks:
pATI->Clock = ATIMatchClockLine(pScreenInfo, pATI,
SpecificationClockLine, NumberOfUndividedClocks, -1, 0);
-#ifndef AVOID_CPIO
-
- if (pATI->Adapter != ATI_ADAPTER_VGA)
-
-#endif /* AVOID_CPIO */
-
{
if (pATI->Clock == ATI_CLOCK_NONE)
{
@@ -1081,14 +969,6 @@ ProbeClocks:
pATI->OptionProbeClocks = TRUE;
}
else
-
-#ifndef AVOID_CPIO
-
- if ((pATI->Chip >= ATI_CHIP_18800) &&
- (pATI->Adapter != ATI_ADAPTER_V4))
-
-#endif /* AVOID_CPIO */
-
{
/*
* Check for clocks that are specified in the wrong order.
@@ -1113,19 +993,6 @@ ProbeClocks:
}
else
/* Ensure crystals are not matched to clock chips, and vice versa */
-
-#ifndef AVOID_CPIO
-
- if ((pATI->Chip <= ATI_CHIP_18800) ||
- (pATI->Adapter == ATI_ADAPTER_V4))
- {
- if (pATI->Clock > ATI_CLOCK_CRYSTALS)
- pATI->OptionProbeClocks = TRUE;
- }
- else
-
-#endif /* AVOID_CPIO */
-
{
if (pATI->Clock == ATI_CLOCK_CRYSTALS)
pATI->OptionProbeClocks = TRUE;
@@ -1277,11 +1144,6 @@ ATIClockSave
#ifndef AVOID_CPIO
- else if (pATI->Chip < ATI_CHIP_68800)
- {
- pATIHW->ClockMap = ATIVGAWonderClockMap;
- pATIHW->ClockUnmap = ATIVGAWonderClockUnmap;
- }
else
{
pATIHW->ClockMap = ATIMachVGAClockMap;
@@ -1426,16 +1288,9 @@ ATIClockCalculate
if (pATI->CPIO_VGAWonder)
{
/* Set ATI clock select bits */
- if (pATI->Chip <= ATI_CHIP_18800)
- {
- pATIHW->b2 = (pATIHW->b2 & 0xBFU) |
- ((ClockSelect << 4) & 0x40U);
- }
- else
{
pATIHW->be = (pATIHW->be & 0xEFU) |
((ClockSelect << 2) & 0x10U);
- if (pATI->Adapter != ATI_ADAPTER_V4)
{
ClockSelect >>= 1;
pATIHW->b9 = (pATIHW->b9 & 0xFDU) |
diff --git a/src/aticonsole.c b/src/aticonsole.c
index 5e06578a..4a7ed1d8 100644
--- a/src/aticonsole.c
+++ b/src/aticonsole.c
@@ -46,12 +46,6 @@
#include "atidri.h"
#endif
-#include "mach64_common.h"
-
-
-
-#include "xf86.h"
-
#ifdef TV_OUT
#include "atichip.h"
@@ -147,11 +141,6 @@ ATISetDPMSMode
/* Assume EGA/VGA */
ATIVGASetDPMSMode(pATI, DPMSMode);
- break;
-
- case ATI_ADAPTER_NONE:
- case ATI_ADAPTER_8514A:
- case ATI_ADAPTER_MACH8:
#endif /* AVOID_CPIO */
diff --git a/src/atidac.c b/src/atidac.c
index 95b478de..31533774 100644
--- a/src/atidac.c
+++ b/src/atidac.c
@@ -29,7 +29,6 @@
#include "ati.h"
#include "atidac.h"
#include "atimach64io.h"
-#include "atimono.h"
/*
* RAMDAC-related definitions.
@@ -189,41 +188,6 @@ ATIDACPreInit
#ifndef AVOID_CPIO
- if (pATI->depth == 1)
- {
- rgb blackColour = pScreenInfo->display->blackColour,
- whiteColour = pScreenInfo->display->whiteColour;
-
- if (blackColour.red > maxColour)
- blackColour.red = maxColour;
- if (blackColour.green > maxColour)
- blackColour.green = maxColour;
- if (blackColour.blue > maxColour)
- blackColour.blue = maxColour;
- if (whiteColour.red > maxColour)
- whiteColour.red = maxColour;
- if (whiteColour.green > maxColour)
- whiteColour.green = maxColour;
- if (whiteColour.blue > maxColour)
- whiteColour.blue = maxColour;
-
- if ((blackColour.red == whiteColour.red) &&
- (blackColour.green == whiteColour.green) &&
- (blackColour.blue == whiteColour.blue))
- {
- blackColour.red ^= maxColour;
- blackColour.green ^= maxColour;
- blackColour.blue ^= maxColour;
- }
-
- pATIHW->lut[(MONO_BLACK * 3) + 0] = blackColour.red;
- pATIHW->lut[(MONO_BLACK * 3) + 1] = blackColour.green;
- pATIHW->lut[(MONO_BLACK * 3) + 2] = blackColour.blue;
- pATIHW->lut[(MONO_WHITE * 3) + 0] = whiteColour.red;
- pATIHW->lut[(MONO_WHITE * 3) + 1] = whiteColour.green;
- pATIHW->lut[(MONO_WHITE * 3) + 2] = whiteColour.blue;
- }
-
if (pATIHW->crtc == ATI_CRTC_VGA)
{
/* Initialise overscan to black */
diff --git a/src/atidga.c b/src/atidga.c
index 5367610a..d866e367 100644
--- a/src/atidga.c
+++ b/src/atidga.c
@@ -422,7 +422,7 @@ ATIDGAInit
* banked framebuffers. Also, disable DGA when non-DGA server modes
* are planar.
*/
- if (pATI->BankInfo.BankSize || (pScreenInfo->depth <= 4))
+ if (pATI->BankInfo.BankSize)
return FALSE;
#endif /* AVOID_CPIO */
@@ -459,8 +459,7 @@ ATIDGAInit
ATIDGAAddModes(pScreenInfo, pATI, flags,
8, 8, 0, 0, 0, PseudoColor);
- if ((pATI->Chip >= ATI_CHIP_264CT) &&
- (pATI->Chipset == ATI_CHIPSET_ATI))
+ if ((pATI->Chip >= ATI_CHIP_264CT))
{
ATIDGAAddModes(pScreenInfo, pATI, flags,
15, 16, 0x7C00U, 0x03E0U, 0x001FU, TrueColor);
diff --git a/src/atidsp.c b/src/atidsp.c
index 66924259..8e8ddd96 100644
--- a/src/atidsp.c
+++ b/src/atidsp.c
@@ -222,12 +222,6 @@ ATIDSPCalculate
pATI->ClockDescriptor.PostDividers[pATIHW->PostDivider];
Divider = pATIHW->FeedbackDivider * pATI->XCLKReferenceDivider;
-#ifndef AVOID_CPIO
-
- if (pATI->depth >= 8)
-
-#endif /* AVOID_CPIO */
-
{
Divider *= pATI->bitsPerPixel / 4;
}
diff --git a/src/atiident.c b/src/atiident.c
index dfbe1e7d..14bd9663 100644
--- a/src/atiident.c
+++ b/src/atiident.c
@@ -35,18 +35,6 @@
const char *ATIChipsetNames[] =
{
"ati",
-
-#ifndef AVOID_CPIO
-
- "ativga",
- "ibmvga",
- "ibm8514",
- "vgawonder",
- "mach8",
- "mach32",
-
-#endif /* AVOID_CPIO */
-
"mach64",
"rage128",
"radeon"
@@ -55,19 +43,6 @@ const char *ATIChipsetNames[] =
static SymTabRec ATIPublicChipsetNames[] =
{
{ATI_CHIPSET_ATI, "ati"},
-
-#ifndef AVOID_CPIO
-
- {ATI_CHIPSET_ATIVGA, "ativga"},
-#ifdef __MAYBE_NOT__
- {ATI_CHIPSET_IBMVGA, "ibmvga"},
-#endif
-#ifdef __NOT_YET__
- {ATI_CHIPSET_IBM8514, "ibm8514"},
-#endif
-
-#endif /* AVOID_CPIO */
-
{-1, NULL}
};
@@ -107,17 +82,6 @@ ATIIdentProbe
static SymTabRec SpecificNames[] =
{
-
-#ifndef AVOID_CPIO
-
- {ATI_CHIPSET_VGAWONDER, "vgawonder"},
-#ifdef __NOT_YET__
- {ATI_CHIPSET_MACH8, "mach8"},
-#endif
- {ATI_CHIPSET_MACH32, "mach32"},
-
-#endif /* AVOID_CPIO */
-
{ATI_CHIPSET_MACH64, "mach64"},
{ATI_CHIPSET_RAGE128, "rage128"},
{ATI_CHIPSET_RADEON, "radeon"},
diff --git a/src/atiident.h b/src/atiident.h
index 84777e08..ca488c9d 100644
--- a/src/atiident.h
+++ b/src/atiident.h
@@ -26,18 +26,6 @@
typedef enum
{
ATI_CHIPSET_ATI,
-
-#ifndef AVOID_CPIO
-
- ATI_CHIPSET_ATIVGA,
- ATI_CHIPSET_IBMVGA,
- ATI_CHIPSET_IBM8514,
- ATI_CHIPSET_VGAWONDER,
- ATI_CHIPSET_MACH8,
- ATI_CHIPSET_MACH32,
-
-#endif /* AVOID_CPIO */
-
ATI_CHIPSET_MACH64,
ATI_CHIPSET_RAGE128,
ATI_CHIPSET_RADEON,
diff --git a/src/atiload.c b/src/atiload.c
index aa36d461..0001ced9 100644
--- a/src/atiload.c
+++ b/src/atiload.c
@@ -62,22 +62,6 @@ const char *ATIvbeSymbols[] =
NULL
};
-#ifndef AVOID_CPIO
-
-const char *ATIxf1bppSymbols[] =
-{
- "xf1bppScreenInit",
- NULL
-};
-
-const char *ATIxf4bppSymbols[] =
-{
- "xf4bppScreenInit",
- NULL
-};
-
-#endif /* AVOID_CPIO */
-
#ifdef XF86DRI_DEVEL
const char *ATIdrmSymbols[] = {
@@ -228,19 +212,6 @@ ATILoadModules
/* Load depth-specific entry points */
switch (pATI->bitsPerPixel)
{
-
-#ifndef AVOID_CPIO
-
- case 1:
- fbPtr = ATILoadModule(pScreenInfo, "xf1bpp", ATIxf1bppSymbols);
- break;
-
- case 4:
- fbPtr = ATILoadModule(pScreenInfo, "xf4bpp", ATIxf4bppSymbols);
- break;
-
-#endif /* AVOID_CPIO */
-
case 8:
case 16:
case 24:
diff --git a/src/atiload.h b/src/atiload.h
index ac8fa151..ebccd758 100644
--- a/src/atiload.h
+++ b/src/atiload.h
@@ -34,12 +34,6 @@
extern const char *ATIint10Symbols[], *ATIddcSymbols[], *ATIvbeSymbols[],
-#ifndef AVOID_CPIO
-
- *ATIxf1bppSymbols[], *ATIxf4bppSymbols[],
-
-#endif /* AVOID_CPIO */
-
#ifdef XF86DRI_DEVEL
*ATIdrmSymbols[], *ATIdriSymbols[],
diff --git a/src/atilock.c b/src/atilock.c
index 92293af9..b4babb1c 100644
--- a/src/atilock.c
+++ b/src/atilock.c
@@ -55,12 +55,6 @@ ATIUnlock
return;
pATI->Unlocked = TRUE;
-#ifndef AVOID_CPIO
-
- if (pATI->Chip >= ATI_CHIP_88800GXC)
-
-#endif /* AVOID_CPIO */
-
{
/* Reset everything */
pATI->LockData.bus_cntl = inr(BUS_CNTL);
@@ -182,11 +176,10 @@ ATIUnlock
}
}
}
+ }
#ifndef AVOID_CPIO
- }
-
if (pATI->VGAAdapter != ATI_ADAPTER_NONE)
{
if (pATI->CPIO_VGAWonder)
@@ -207,11 +200,9 @@ ATIUnlock
ATIModifyExtReg(pATI, 0xB8U, pATI->LockData.b8, 0xC0U, 0x00U);
pATI->LockData.b9 = ATIGetExtReg(0xB9U);
ATIModifyExtReg(pATI, 0xB9U, pATI->LockData.b9, 0x7FU, 0x00U);
- if (pATI->Chip > ATI_CHIP_18800)
{
pATI->LockData.be = ATIGetExtReg(0xBEU);
ATIModifyExtReg(pATI, 0xBEU, pATI->LockData.be, 0xFAU, 0x01U);
- if (pATI->Chip >= ATI_CHIP_28800_2)
{
pATI->LockData.a6 = ATIGetExtReg(0xA6U);
ATIModifyExtReg(pATI, 0xA6U, pATI->LockData.a6,
@@ -380,10 +371,10 @@ ATIUnlock
out8(LCD_INDEX, GetByte(pATI->LockData.lcd_index, 0));
}
}
+ }
#endif /* AVOID_CPIO */
- }
}
/*
@@ -482,10 +473,8 @@ ATILock
ATIModifyExtReg(pATI, 0xB6U, -1, 0xDDU, pATI->LockData.b6);
ATIModifyExtReg(pATI, 0xB8U, -1, 0xC0U, pATI->LockData.b8 & 0x03U);
ATIModifyExtReg(pATI, 0xB9U, -1, 0x7FU, pATI->LockData.b9);
- if (pATI->Chip > ATI_CHIP_18800)
{
ATIModifyExtReg(pATI, 0xBEU, -1, 0xFAU, pATI->LockData.be);
- if (pATI->Chip >= ATI_CHIP_28800_2)
{
ATIModifyExtReg(pATI, 0xA6U, -1, 0x7FU, pATI->LockData.a6);
ATIModifyExtReg(pATI, 0xABU, -1, 0xE7U, pATI->LockData.ab);
@@ -495,8 +484,6 @@ ATILock
}
}
- if (pATI->Chip >= ATI_CHIP_88800GXC)
-
#endif /* AVOID_CPIO */
{
diff --git a/src/atimach64.c b/src/atimach64.c
index 38e0de24..8675bdfb 100644
--- a/src/atimach64.c
+++ b/src/atimach64.c
@@ -84,16 +84,6 @@ ATIMach64PreInit
{
CARD32 bus_cntl, config_cntl;
-#ifndef AVOID_CPIO
-
- if (pATI->depth <= 4)
- {
- pATIHW->crtc_off_pitch = SetBits(pATI->displayWidth >> 4, CRTC_PITCH);
- }
- else
-
-#endif /* AVOID_CPIO */
-
{
pATIHW->crtc_off_pitch = SetBits(pATI->displayWidth >> 3, CRTC_PITCH);
}
@@ -722,19 +712,6 @@ ATIMach64Calculate
CRTC_EXT_DISP_EN | CRTC_EN | CRTC_VGA_LINEAR | CRTC_CNT_EN;
switch (pATI->depth)
{
-
-#ifndef AVOID_CPIO
-
- case 1:
- pATIHW->crtc_gen_cntl |= SetBits(PIX_WIDTH_1BPP, CRTC_PIX_WIDTH);
- break;
-
- case 4:
- pATIHW->crtc_gen_cntl |= SetBits(PIX_WIDTH_4BPP, CRTC_PIX_WIDTH);
- break;
-
-#endif /* AVOID_CPIO */
-
case 8:
pATIHW->crtc_gen_cntl |= SetBits(PIX_WIDTH_8BPP, CRTC_PIX_WIDTH);
break;
diff --git a/src/atimisc.c b/src/atimisc.c
index 8670112c..e6012ecd 100644
--- a/src/atimisc.c
+++ b/src/atimisc.c
@@ -110,13 +110,6 @@ ATISetup
ATIddcSymbols,
ATIvbeSymbols,
-#ifndef AVOID_CPIO
-
- ATIxf1bppSymbols,
- ATIxf4bppSymbols,
-
-#endif /* AVOID_CPIO */
-
#ifdef XF86DRI_DEVEL
ATIdrmSymbols,
diff --git a/src/atimono.h b/src/atimono.h
deleted file mode 100644
index 7830e5e0..00000000
--- a/src/atimono.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of Marc Aurele La France not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. Marc Aurele La France makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as-is" without express or implied warranty.
- *
- * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
- * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef ___ATIMONO_H___
-#define ___ATIMONO_H___ 1
-
-#ifndef BIT_PLANE
-# define BIT_PLANE 3
-#endif
-
-#ifndef MONO_BLACK
-# define MONO_BLACK 0x00U
-#endif
-
-#ifndef MONO_WHITE
-# define MONO_WHITE 0x3FU
-#endif
-
-#ifndef MONO_OVERSCAN
-# define MONO_OVERSCAN 0x01U
-#endif
-
-#endif /* ___ATIMONO_H___ */
diff --git a/src/atiprint.c b/src/atiprint.c
index 247252d4..1fc629da 100644
--- a/src/atiprint.c
+++ b/src/atiprint.c
@@ -365,7 +365,7 @@ ATIPrintRegisters
#ifndef AVOID_CPIO
- CARD8 genmo, seq1 = 0;
+ CARD8 genmo;
crtc = ATI_CRTC_VGA;
@@ -469,8 +469,7 @@ ATIPrintRegisters
ATIPrintIndexedRegisters(SEQX, 0, 8, "Sequencer", 0);
if (pATI->CPIO_VGAWonder)
- ATIPrintIndexedRegisters(pATI->CPIO_VGAWonder,
- xf86ServerIsOnlyProbing() ? 0x80U : pATI->VGAOffset, 0xC0U,
+ ATIPrintIndexedRegisters(pATI->CPIO_VGAWonder, 0x80U, 0xC0U,
"ATI extended VGA", 0);
}
@@ -540,13 +539,6 @@ ATIPrintRegisters
xf86ErrorFVerb(4, "\n");
}
else
-
-#ifndef AVOID_CPIO
-
- if (pATI->Chip >= ATI_CHIP_88800GXC)
-
-#endif /* AVOID_CPIO */
-
{
#ifdef AVOID_CPIO
@@ -609,14 +601,6 @@ ATIPrintRegisters
ATISetDACIOPorts(pATI, crtc);
- /* Temporarily turn off CLKDIV2 while reading DAC's LUT */
- if (pATI->Adapter == ATI_ADAPTER_NONISA)
- {
- seq1 = GetReg(SEQX, 0x01U);
- if (seq1 & 0x08U)
- PutReg(SEQX, 0x01U, seq1 & ~0x08U);
- }
-
dac_read = inb(pATI->CPIO_DAC_READ);
DACDelay;
dac_write = inb(pATI->CPIO_DAC_WRITE);
@@ -653,9 +637,6 @@ ATIPrintRegisters
outb(pATI->CPIO_DAC_READ, dac_read);
DACDelay;
- if ((pATI->Adapter == ATI_ADAPTER_NONISA) && (seq1 & 0x08U))
- PutReg(SEQX, 0x01U, seq1);
-
#endif /* AVOID_CPIO */
if ((pVideo = pATI->PCIInfo))
diff --git a/src/atiprobe.c b/src/atiprobe.c
index 29ec5440..dcd46cd2 100644
--- a/src/atiprobe.c
+++ b/src/atiprobe.c
@@ -226,8 +226,7 @@ ATIVGAWonderProbe
{
/* Set up extended VGA register addressing */
PutReg(GRAX, 0x50U, GetByte(pATI->CPIO_VGAWonder, 0));
- PutReg(GRAX, 0x51U,
- GetByte(pATI->CPIO_VGAWonder, 1) | pATI->VGAOffset);
+ PutReg(GRAX, 0x51U, GetByte(pATI->CPIO_VGAWonder, 1) | 0x80U);
}
/*
* Register 0xBB is used by the BIOS to keep track of various
@@ -243,10 +242,7 @@ ATIVGAWonderProbe
ATIPutExtReg(0xBBU, IOValue3 ^ 0x55U);
IOValue5 = ATIGetExtReg(0xBBU);
ATIPutExtReg(0xBBU, IOValue3);
- if (pATI->Chip <= ATI_CHIP_18800_1)
- IOValue6 = 0;
- else
- IOValue6 = ATIGetExtReg(0xBCU);
+ IOValue6 = ATIGetExtReg(0xBCU);
ATIPutExtReg(IOValue1, IOValue2);
if ((IOValue4 == (IOValue3 ^ 0xAAU)) &&
@@ -496,7 +492,6 @@ ATIMach64Probe
{
pATI->VGAAdapter = ATI_ADAPTER_MACH64;
pATI->CPIO_VGAWonder = 0x01CEU;
- pATI->VGAOffset = 0x80U;
}
}
@@ -1012,15 +1007,6 @@ ATIProbe
{
pATI = ATIPtrs[i];
-#ifndef AVOID_CPIO
-
- if ((pATI->Adapter != ATI_ADAPTER_VGA) &&
- ((pATI->Adapter != ATI_ADAPTER_8514A) ||
- ((pATI->VGAAdapter != ATI_ADAPTER_VGA) &&
- (pATI->VGAAdapter != ATI_ADAPTER_NONE))))
-
-#endif /* AVOID_CPIO */
-
{
ProbeSuccess = TRUE;
pGDev = xf86AddDeviceToConfigure(ATI_DRIVER_NAME,
@@ -1062,51 +1048,8 @@ ATIProbe
switch (pATIGDev->Chipset)
{
case ATI_CHIPSET_ATI:
-
-#ifndef AVOID_CPIO
-
- if (pATI->Adapter == ATI_ADAPTER_VGA)
- continue;
- if (pATI->Adapter != ATI_ADAPTER_8514A)
- break;
- /* Fall through */
-
- case ATI_CHIPSET_ATIVGA:
- if (pATI->VGAAdapter == ATI_ADAPTER_VGA)
- continue;
- /* Fall through */
-
- case ATI_CHIPSET_IBMVGA:
- if (pATI->VGAAdapter == ATI_ADAPTER_NONE)
- continue;
- break;
-
- case ATI_CHIPSET_VGAWONDER:
- if (!pATI->CPIO_VGAWonder)
- continue;
- break;
-
- case ATI_CHIPSET_IBM8514:
- if (pATI->Adapter == ATI_ADAPTER_8514A)
- break;
- /* Fall through */
-
- case ATI_CHIPSET_MACH8:
- if (pATI->Adapter == ATI_ADAPTER_MACH8)
- break;
- /* Fall through */
-
- case ATI_CHIPSET_MACH32:
- if (pATI->Adapter == ATI_ADAPTER_MACH32)
- break;
- continue;
-
-#endif /* AVOID_CPIO */
-
case ATI_CHIPSET_MACH64:
- if (pATI->Adapter == ATI_ADAPTER_MACH64)
- break;
- continue;
+ break;
default:
continue;
@@ -1322,12 +1265,6 @@ ATIProbe
if (!(pATI = ATIPtrs[i]))
continue;
-#ifndef AVOID_CPIO
-
- if (pATI->Adapter > ATI_ADAPTER_VGA)
-
-#endif /* AVOID_CPIO */
-
{
if (pATI->iEntity < 0)
(void)ATIClaimBusSlot(pDriver, 0, NULL, FALSE, pATI);
diff --git a/src/atiscreen.c b/src/atiscreen.c
index ca41ff1a..b9984ae9 100644
--- a/src/atiscreen.c
+++ b/src/atiscreen.c
@@ -61,9 +61,6 @@
#include "shadowfb.h"
#include "xf86cmap.h"
-#include "xf1bpp.h"
-#include "xf4bpp.h"
-
#include "fb.h"
#include "mibank.h"
@@ -457,23 +454,6 @@ ATIScreenInit
/* Initialise framebuffer layer */
switch (pATI->bitsPerPixel)
{
-
-#ifndef AVOID_CPIO
-
- case 1:
- pATI->Closeable = xf1bppScreenInit(pScreen, pFB,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi, pATI->displayWidth);
- break;
-
- case 4:
- pATI->Closeable = xf4bppScreenInit(pScreen, pFB,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi, pATI->displayWidth);
- break;
-
-#endif /* AVOID_CPIO */
-
case 8:
case 16:
case 24:
@@ -512,7 +492,6 @@ ATIScreenInit
}
/* If applicable, initialise RENDER extension */
- if (pATI->bitsPerPixel > 4)
{
if (pATI->OptionShadowFB)
{
@@ -612,24 +591,11 @@ ATIScreenInit
if (!miCreateDefColormap(pScreen))
return FALSE;
-#ifdef AVOID_CPIO
-
if (!xf86HandleColormaps(pScreen, 256, pATI->rgbBits, ATILoadPalette, NULL,
CMAP_PALETTED_TRUECOLOR |
CMAP_LOAD_EVEN_IF_OFFSCREEN))
return FALSE;
-#else /* AVOID_CPIO */
-
- if (pATI->depth > 1)
- if (!xf86HandleColormaps(pScreen, (pATI->depth == 4) ? 16 : 256,
- pATI->rgbBits, ATILoadPalette, NULL,
- CMAP_PALETTED_TRUECOLOR |
- CMAP_LOAD_EVEN_IF_OFFSCREEN))
- return FALSE;
-
-#endif /* AVOID_CPIO */
-
/* Initialise shadow framebuffer */
if (pATI->OptionShadowFB &&
!ShadowFBInit(pScreen, ATIRefreshArea))
diff --git a/src/atistruct.h b/src/atistruct.h
index 698ec016..0476f040 100644
--- a/src/atistruct.h
+++ b/src/atistruct.h
@@ -256,7 +256,6 @@ typedef struct _ATIRec
*/
IOADDRESS CPIO_VGAWonder;
CARD8 B2Reg; /* The B2 mirror */
- CARD8 VGAOffset; /* Low index for CPIO_VGAWonder */
#endif /* AVOID_CPIO */
diff --git a/src/ativga.c b/src/ativga.c
index 7332431c..fc50d021 100644
--- a/src/ativga.c
+++ b/src/ativga.c
@@ -27,7 +27,6 @@
#include "ati.h"
#include "atiadapter.h"
#include "atichip.h"
-#include "atimono.h"
#include "atistruct.h"
#include "ativga.h"
#include "ativgaio.h"
@@ -56,65 +55,30 @@ ATIVGAPreInit
/* Initialise sequencer register values */
pATIHW->seq[0] = 0x03U;
- if (pATI->depth == 1)
- pATIHW->seq[2] = 0x01U << BIT_PLANE;
- else
pATIHW->seq[2] = 0x0FU;
- if (pATI->depth <= 4)
- pATIHW->seq[4] = 0x06U;
- else if (pATI->Adapter == ATI_ADAPTER_VGA)
- pATIHW->seq[4] = 0x0EU;
- else
pATIHW->seq[4] = 0x0AU;
/* Initialise CRTC register values */
- if ((pATI->depth >= 8) &&
- ((pATI->Chip >= ATI_CHIP_264CT) ||
- (pATI->CPIO_VGAWonder &&
- (pATI->Chip <= ATI_CHIP_18800_1) &&
- (pATI->VideoRAM == 256))))
+ if (((pATI->Chip >= ATI_CHIP_264CT)))
pATIHW->crt[19] = pATI->displayWidth >> 3;
else
pATIHW->crt[19] = pATI->displayWidth >> 4;
- if ((pATI->depth >= 8) && (pATI->Adapter == ATI_ADAPTER_VGA))
- pATIHW->crt[23] = 0xC3U;
- else
+
pATIHW->crt[23] = 0xE3U;
pATIHW->crt[24] = 0xFFU;
/* Initialise attribute controller register values */
- if (pATI->depth == 1)
- {
- Bool FlipPixels = xf86GetFlipPixels();
-
- for (Index = 0; Index < 16; Index++)
- if (((Index & (0x01U << BIT_PLANE)) != 0) != FlipPixels)
- pATIHW->attr[Index] = MONO_WHITE;
- else
- pATIHW->attr[Index] = MONO_BLACK;
- pATIHW->attr[16] = 0x01U;
- pATIHW->attr[17] = MONO_OVERSCAN;
- }
- else
{
for (Index = 0; Index < 16; Index++)
pATIHW->attr[Index] = Index;
- if (pATI->depth <= 4)
- pATIHW->attr[16] = 0x81U;
- else if (pATI->Adapter == ATI_ADAPTER_VGA)
- pATIHW->attr[16] = 0x41U;
- else
+
pATIHW->attr[16] = 0x01U;
pATIHW->attr[17] = 0xFFU;
}
pATIHW->attr[18] = 0x0FU;
/* Initialise graphics controller register values */
- if (pATI->depth == 1)
- pATIHW->gra[4] = BIT_PLANE;
- else if (pATI->depth <= 4)
- pATIHW->gra[5] = 0x02U;
- else if (pATI->Chip >= ATI_CHIP_264CT)
+ if (pATI->Chip >= ATI_CHIP_264CT)
pATIHW->gra[5] = 0x40U;
if (pATI->UseSmallApertures && (pATI->Chip >= ATI_CHIP_264CT) &&
((pATI->Chip >= ATI_CHIP_264VT) || !pATI->LinearBase))
diff --git a/src/atiwonder.c b/src/atiwonder.c
index 6822872f..371e251a 100644
--- a/src/atiwonder.c
+++ b/src/atiwonder.c
@@ -74,21 +74,12 @@ ATIVGAWonderPreInit
)
{
pATIHW->b3 = ATIGetExtReg(0xB3U) & 0x20U;
- if (pATI->depth <= 4)
- pATIHW->b6 = 0x40U;
- else
pATIHW->b6 = 0x04U;
- if (pATI->Chip <= ATI_CHIP_18800)
- pATIHW->ba = 0x08U;
- else if (pATI->Chip >= ATI_CHIP_28800_2)
- {
- if (pATI->VideoRAM > 256)
- pATIHW->b6 |= 0x01U;
+ pATIHW->b6 |= 0x01U;
pATIHW->bf = ATIGetExtReg(0xBFU) & 0x5FU;
pATIHW->a3 = ATIGetExtReg(0xA3U) & 0x67U;
pATIHW->ab = ATIGetExtReg(0xABU) & 0xE7U;
pATIHW->ae = ATIGetExtReg(0xAEU) & 0xE0U;
- }
}
/*
@@ -114,10 +105,8 @@ ATIVGAWonderSave
pATIHW->b9 = ATIGetExtReg(0xB9U);
pATIHW->ba = ATIGetExtReg(0xBAU);
pATIHW->bd = ATIGetExtReg(0xBDU);
- if (pATI->Chip > ATI_CHIP_18800)
{
pATIHW->be = ATIGetExtReg(0xBEU);
- if (pATI->Chip >= ATI_CHIP_28800_2)
{
pATIHW->bf = ATIGetExtReg(0xBFU);
pATIHW->a3 = ATIGetExtReg(0xA3U);
@@ -143,12 +132,8 @@ ATIVGAWonderSet
ATIHWPtr pATIHW
)
{
- if (pATI->Chip <= ATI_CHIP_18800)
- ATIModifyExtReg(pATI, 0xB2U, -1, 0x00U, pATIHW->b2);
- else
{
ATIModifyExtReg(pATI, 0xBEU, -1, 0x00U, pATIHW->be);
- if (pATI->Chip >= ATI_CHIP_28800_2)
{
ATIModifyExtReg(pATI, 0xBFU, -1, 0x00U, pATIHW->bf);
ATIModifyExtReg(pATI, 0xA3U, -1, 0x00U, pATIHW->a3);
diff --git a/src/atiwonderio.c b/src/atiwonderio.c
index 79293d82..e6c0db78 100644
--- a/src/atiwonderio.c
+++ b/src/atiwonderio.c
@@ -60,29 +60,6 @@ ATIModifyExtReg
if (CurrentValue == NewValue)
return;
- /*
- * The following is taken from ATI's VGA Wonder programmer's reference
- * manual which says that this is needed to "ensure the proper state of the
- * 8/16 bit ROM toggle". I suspect a timing glitch appeared in the 18800
- * after its die was cast. 18800-1 and later chips do not exhibit this
- * problem.
- */
- if ((pATI->Chip <= ATI_CHIP_18800) && (Index == 0xB2U) &&
- ((NewValue ^ 0x40U) & CurrentValue & 0x40U))
- {
- CARD8 misc = inb(R_GENMO);
- CARD8 bb = ATIGetExtReg(0xBBU);
-
- outb(GENMO, (misc & 0xF3U) | 0x04U | ((bb & 0x10U) >> 1));
- CurrentValue &= (CARD8)(~0x40U);
- ATIPutExtReg(0xB2U, CurrentValue);
- ATIDelay(5);
- outb(GENMO, misc);
- ATIDelay(5);
- if (CurrentValue != NewValue)
- ATIPutExtReg(0xB2U, NewValue);
- }
- else
ATIPutExtReg(Index, NewValue);
}