summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mga.h5
-rw-r--r--src/mga_dacG.c17
-rw-r--r--src/mga_driver.c22
-rw-r--r--src/mga_macros.h10
4 files changed, 28 insertions, 26 deletions
diff --git a/src/mga.h b/src/mga.h
index 5297076..6b53d87 100644
--- a/src/mga.h
+++ b/src/mga.h
@@ -391,6 +391,11 @@ typedef struct {
xf86AccessRec Access;
int Chipset;
int ChipRev;
+
+ int is_Gx50:1;
+ int is_G200SE:1;
+ int is_HAL_chipset:1;
+
Bool Primary;
Bool Interleave;
int HwBpp;
diff --git a/src/mga_dacG.c b/src/mga_dacG.c
index 0caf9fe..df29b48 100644
--- a/src/mga_dacG.c
+++ b/src/mga_dacG.c
@@ -242,8 +242,7 @@ MGAGSetPCLK( ScrnInfoPtr pScrn, long f_out )
return;
}
- if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ if (pMga->is_G200SE) {
MGAG200SEComputePLLParam(pScrn, f_out, &m, &n, &p);
pReg->DacRegs[ MGA1064_PIX_PLLC_M ] = m;
@@ -761,9 +760,8 @@ MGA_NOT_HAL(
((i == 0x2c) || (i == 0x2d) || (i == 0x2e) ||
(i == 0x4c) || (i == 0x4d) || (i == 0x4e))))
continue;
- if (((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) &&
- ((i == 0x2C) || (i == 0x2D) || (i == 0x2E)))
+ if (pMga->is_G200SE
+ && ((i == 0x2C) || (i == 0x2D) || (i == 0x2E)))
continue;
outMGAdac(i, mgaReg->DacRegs[i]);
}
@@ -800,8 +798,7 @@ MGA_NOT_HAL(
OUTREG16(0x1FDE, (mgaReg->ExtVga[i] << 8) | i);
/* This handles restoring the generic VGA registers. */
- if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ if (pMga->is_G200SE) {
vgaHWRestore(pScrn, vgaReg, VGA_SR_MODE);
if (restoreFonts)
MGAG200SERestoreFonts(pScrn, vgaReg);
@@ -901,8 +898,7 @@ MGAGSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, MGARegPtr mgaReg,
* This function will handle creating the data structure and filling
* in the generic VGA portion.
*/
- if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ if (pMga->is_G200SE) {
vgaHWSave(pScrn, vgaReg, VGA_SR_MODE);
if (saveFonts)
MGAG200SESaveFonts(pScrn, vgaReg);
@@ -1114,8 +1110,7 @@ MGAG_ddc1Read(ScrnInfoPtr pScrn)
outMGAdacmsk(MGA1064_GEN_IO_CTL, ~(DDC_P1_SCL_MASK | DDC_P1_SDA_MASK), 0);
/* wait for Vsync */
- if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ if (pMga->is_G200SE) {
usleep(4);
} else {
while( INREG( MGAREG_Status ) & 0x08 );
diff --git a/src/mga_driver.c b/src/mga_driver.c
index cb2b94e..a95871a 100644
--- a/src/mga_driver.c
+++ b/src/mga_driver.c
@@ -827,9 +827,7 @@ MGACountRam(ScrnInfoPtr pScrn)
OUTREG8(MGAREG_CRTCEXT_DATA, tmp | 0x80);
/* apparently the G200SE doesn't have a BIOS to read */
- if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
-
+ if (pMga->is_G200SE) {
CARD32 MemoryAt0, MemoryAt1, Offset;
CARD32 FirstMemoryVal1, FirstMemoryVal2;
CARD32 SecondMemoryVal1, SecondMemoryVal2;
@@ -1283,6 +1281,18 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
} else {
xf86ErrorF("\n");
}
+
+ pMga->is_Gx50 = ((pMga->Chipset == PCI_CHIP_MGAG400) && (pMga->ChipRev >= 0x80))
+ || (pMga->Chipset == PCI_CHIP_MGAG550);
+ pMga->is_G200SE = (pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI)
+ || (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI);
+ pMga->is_HAL_chipset = ((pMga->Chipset == PCI_CHIP_MGAG200_PCI) ||
+ (pMga->Chipset == PCI_CHIP_MGAG200) ||
+ (pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
+ (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI) ||
+ (pMga->Chipset == PCI_CHIP_MGAG400) ||
+ (pMga->Chipset == PCI_CHIP_MGAG550));
+
#ifdef USEMGAHAL
if (HAL_CHIPSETS) {
Bool loadHal = TRUE;
@@ -3067,8 +3077,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pMga = MGAPTR(pScrn);
MGAdac = &pMga->Dac;
- if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ if (pMga->is_G200SE) {
VRTemp = pScrn->videoRam;
FBTemp = pMga->FbMapSize;
pScrn->videoRam = 4096;
@@ -3152,8 +3161,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
); /* MGA_HAL */
#endif
}
- if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ if (pMga->is_G200SE) {
pScrn->videoRam = VRTemp;
pMga->FbMapSize = FBTemp;
}
diff --git a/src/mga_macros.h b/src/mga_macros.h
index c8ba847..8a3221d 100644
--- a/src/mga_macros.h
+++ b/src/mga_macros.h
@@ -63,12 +63,7 @@ while(INREG(MGAREG_DWGSYNC) != MGA_SYNC_XTAG) ; \
#endif
#ifdef USEMGAHAL
-#define HAL_CHIPSETS ((pMga->Chipset == PCI_CHIP_MGAG200_PCI) || \
- (pMga->Chipset == PCI_CHIP_MGAG200) || \
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) || \
- (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI) || \
- (pMga->Chipset == PCI_CHIP_MGAG400) || \
- (pMga->Chipset == PCI_CHIP_MGAG550))
+#define HAL_CHIPSETS (pMga->is_HAL_chipset)
#define MGA_HAL(x) { \
MGAPtr pMga = MGAPTR(pScrn); \
@@ -82,8 +77,7 @@ while(INREG(MGAREG_DWGSYNC) != MGA_SYNC_XTAG) ; \
#define MGA_NOT_HAL(x) { x; }
#endif
-#define MGAISGx50(x) ( (((x)->Chipset == PCI_CHIP_MGAG400) && ((x)->ChipRev >= 0x80)) || \
- ((x)->Chipset == PCI_CHIP_MGAG550) )
+#define MGAISGx50(x) ((x)->is_Gx50)
#define MGA_DH_NEEDS_HAL(x) (((x)->Chipset == PCI_CHIP_MGAG400) && \
((x)->ChipRev < 0x80))