From 0ee7763fb33bf7fbc4ae1e8372cbc74578bfb720 Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexdeucher@gmail.com>
Date: Mon, 9 Nov 2009 15:09:34 -0500
Subject: IGP: some IGP chips report as AGP

Set bus type appropriately.  fixes bug 25002

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
---
 src/radeon_driver.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

(limited to 'src/radeon_driver.c')

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 7cb4c03f..5fddcce4 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -2000,6 +2000,11 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
     if (info->cardType == CARD_PCIE && info->IsIGP)
 	info->cardType = CARD_PCI;
 
+    /* some rs4xx cards report as agp */
+    if ((info->ChipFamily == CHIP_FAMILY_RS400) ||
+	(info->ChipFamily == CHIP_FAMILY_RS480))
+	info->cardType = CARD_PCI;
+
     if ((info->ChipFamily >= CHIP_FAMILY_R600) && info->IsIGP)
 	info->cardType = CARD_PCIE;
 
@@ -2013,7 +2018,13 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
 	    xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into AGP mode\n");
 	} else if ((strcmp(s, "PCI") == 0) ||
 		   (strcmp(s, "PCIE") == 0)) {
-	    if (info->ChipFamily >= CHIP_FAMILY_RV380) {
+	    if ((info->ChipFamily == CHIP_FAMILY_RS400) ||
+		(info->ChipFamily == CHIP_FAMILY_RS480) ||
+		(info->ChipFamily == CHIP_FAMILY_RS690) ||
+		(info->ChipFamily == CHIP_FAMILY_RS740)) {
+		info->cardType = CARD_PCI;
+		xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into PCI mode\n");
+	    } else if (info->ChipFamily >= CHIP_FAMILY_RV380) {
 		info->cardType = CARD_PCIE;
 		xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Forced into PCI Express mode\n");
 	    } else {
-- 
cgit v1.2.3