summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-07-25 14:19:38 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-07-25 14:22:49 -0400
commitb1f005bf16064db62ae35d362f69250427a45b3b (patch)
treeec5a009c1f908582c502dc623807d048c62df367
parenta591ba2a45004bce9d1c51fd813edf05d249e50a (diff)
radeon: Set PCI/PCIE bus type properly per asic
- r1xx-rv350 chips have the old pci gart - rv380+ chips have newer pcie gart Select the right kind regardless of whether the user selects PCI or PCIE.
-rw-r--r--src/radeon_driver.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 83a3374a..4efd2724 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1932,7 +1932,6 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
}
}
-
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%s card detected\n",
(info->cardType==CARD_PCI) ? "PCI" :
(info->cardType==CARD_PCIE) ? "PCIE" : "AGP");
@@ -1952,12 +1951,15 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
if (strcmp(s, "AGP") == 0) {
info->cardType = CARD_AGP;
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into AGP mode\n");
- } else if (strcmp(s, "PCI") == 0) {
- info->cardType = CARD_PCI;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into PCI mode\n");
- } else if (strcmp(s, "PCIE") == 0) {
- info->cardType = CARD_PCIE;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into PCI Express mode\n");
+ } else if ((strcmp(s, "PCI") == 0) ||
+ (strcmp(s, "PCIE") == 0)) {
+ if (info->ChipFamily >= CHIP_FAMILY_RV380) {
+ info->cardType = CARD_PCIE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into PCI Express mode\n");
+ } else {
+ info->cardType = CARD_PCI;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into PCI mode\n");
+ }
} else {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"Invalid BusType option, using detected type\n");