summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/savage_driver.c83
1 files changed, 48 insertions, 35 deletions
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 4a121d8..839377c 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -208,7 +208,7 @@ typedef enum {
,OPTION_DISABLE_COB
,OPTION_BCI_FOR_XV
,OPTION_DVI
- ,OPTION_FORCE_PCI
+ ,OPTION_BUS_TYPE
,OPTION_DMA_TYPE
,OPTION_AGP_MODE
,OPTION_AGP_SIZE
@@ -238,7 +238,7 @@ static const OptionInfoRec SavageOptions[] =
{ OPTION_BCI_FOR_XV, "BCIforXv", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_DVI, "DVI", OPTV_BOOLEAN, {0}, FALSE },
#ifdef XF86DRI
- { OPTION_FORCE_PCI, "ForcePCIMode", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_BUS_TYPE, "BusType", OPTV_ANYSTR, {0}, FALSE },
{ OPTION_DMA_TYPE, "DmaType", OPTV_ANYSTR, {0}, FALSE },
{ OPTION_AGP_MODE, "AGPMode", OPTV_INTEGER, {0}, FALSE },
{ OPTION_AGP_SIZE, "AGPSize", OPTV_INTEGER, {0}, FALSE },
@@ -1306,6 +1306,8 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
} else
psav->ChipRev = psav->PciInfo->chipRev;
+ xf86DrvMsg(pScrn->scrnIndex, from, "Engine: \"%s\"\n", pScrn->chipset);
+
if (pEnt->device->videoRam != 0)
pScrn->videoRam = pEnt->device->videoRam;
@@ -1377,12 +1379,47 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
}
}
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%s card detected\n",
+ xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "%s card detected\n",
(psav->IsPCI) ? "PCI" : "AGP");
- if (xf86ReturnOptValBool(psav->Options, OPTION_FORCE_PCI, FALSE)) {
- psav->IsPCI = TRUE;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into PCI-only mode\n");
+ if ((s = xf86GetOptValString(psav->Options, OPTION_BUS_TYPE))) {
+ if (strcmp(s, "AGP") == 0) {
+ if (psav->IsPCI) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "BusType AGP not available on PCI card\n");
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "BusType set to AGP\n");
+ }
+ } else if (strcmp(s, "PCI") == 0) {
+ psav->IsPCI = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "BusType set to PCI\n");
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Invalid BusType option, using %s DMA\n",
+ psav->IsPCI ? "PCI" : "AGP");
+ }
+ }
+
+ psav->AgpDMA = !psav->IsPCI;
+ if ((s = xf86GetOptValString(psav->Options, OPTION_DMA_TYPE))) {
+ if (strcmp(s, "AGP") == 0) {
+ if (psav->IsPCI) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "AGP DMA not available on PCI card, using PCI DMA\n");
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using AGP DMA\n");
+ }
+ } else if (strcmp(s, "PCI") == 0) {
+ psav->AgpDMA = FALSE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using PCI DMA\n");
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Invalid DmaType option, using %s DMA\n",
+ psav->AgpDMA ? "AGP" : "PCI");
+ }
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_DEFAULT,
+ "Using %s DMA\n", psav->AgpDMA ? "AGP" : "PCI");
}
if (!psav->IsPCI) {
@@ -1409,6 +1446,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, from, "Using AGP %dx mode\n",
psav->agpMode);
+ from = X_DEFAULT;
if (xf86GetOptValInteger(psav->Options,
OPTION_AGP_SIZE, (int *)&(psav->agpSize))) {
switch (psav->agpSize) {
@@ -1419,6 +1457,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
case 64:
case 128:
case 256:
+ from = X_CONFIG;
break;
default:
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
@@ -1427,37 +1466,13 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
}
}
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ xf86DrvMsg(pScrn->scrnIndex, from,
"Using %d MB AGP aperture\n", psav->agpSize);
} else {
psav->agpMode = 0;
psav->agpSize = 0;
}
- psav->AgpDMA = !psav->IsPCI;
- if ((s = xf86GetOptValString(psav->Options, OPTION_DMA_TYPE))) {
- if (strcmp(s, "AGP") == 0) {
- if (psav->IsPCI) {
- psav->AgpDMA = FALSE;
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "AGP DMA not available on PCI card, using PCI DMA\n");
- } else {
- psav->AgpDMA = TRUE;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using AGP DMA\n");
- }
- } else if (strcmp(s, "PCI") == 0) {
- psav->AgpDMA = FALSE;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using PCI DMA\n");
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "Invalid DmaType option, using %s DMA\n",
- psav->AgpDMA ? "AGP" : "PCI");
- }
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_DEFAULT,
- "Using %s DMA\n", psav->AgpDMA ? "AGP" : "PCI");
- }
-
#endif
/* we can use Option "DisableTile TRUE" to disable tile mode */
@@ -1538,8 +1553,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
/* maybe throw in some more sanity checks here */
- xf86DrvMsg(pScrn->scrnIndex, from, "Engine: \"%s\"\n", pScrn->chipset);
-
if (!SavageMapMMIO(pScrn)) {
SavageFreeRec(pScrn);
vbeFree(psav->pVbe);
@@ -1785,7 +1798,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
sr30 = VGAIN8(0x3c5);
if (sr30 & 0x02 /*0x04 */) {
dvi = TRUE;
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Digital Flat Panel Detected\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Digital Flat Panel Detected\n");
}
}
@@ -2732,7 +2745,7 @@ static Bool SavageMapMMIO(ScrnInfoPtr pScrn)
psav->FrameBufferBase = psav->PciInfo->memBase[1];
}
- xf86DrvMsg( pScrn->scrnIndex, X_PROBED,
+ xf86DrvMsg( pScrn->scrnIndex, X_INFO,
"mapping MMIO @ 0x%lx with size 0x%x\n",
psav->MmioBase, SAVAGE_NEWMMIO_REGSIZE);