Bug 108733 - No AGP support on Tyan 2885 K8W
No AGP support on Tyan 2885 K8W
Status: CLOSED DUPLICATE of bug 108648
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: kernel (Show other bugs)
3.0
x86_64 Linux
medium Severity medium
: ---
: ---
Assigned To: Arjan van de Ven
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2003-10-31 12:16 EST by Mark Langsdorf
Modified: 2007-11-30 17:06 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-02-21 13:59:36 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Mark Langsdorf 2003-10-31 12:16:15 EST
Description of problem:
SMP Opteron systems do not have to have the AGP controller assigned to PCI 
position 0:0.0.  The Tyan 2885 K8W is a system that has the 8151 AGP controller 
assigned to PCI position 4:0.0.  Changes made to the 2.4.21 kernel prevent the 
AGP controller from being discovered.

Version-Release number of selected component (if applicable):


How reproducible:
Boot RHEL3 AS on the Tyan 2885 K8W.  `dmesg | grep agpgart`.  The kernel should 
create an AGP aperture.

Steps to Reproduce:
1.  Install and boot RHEL3 AS on a Tyan 2885 K8W.
2.  Open a System Terminal as root
3.  Run `dmesg | grep agpgart`
    
Actual results:
agpgart: Maximum main memory to use for agp memory: 2423M
agpgart: No supported devices found

Expected results:
agpgart: Maximum main memory to use for agp memory: 2423M
agpgart: Detected AMD 8151 chipset
agpgart: AGP aperture is 512M @ 0xc0000000

Additional info:

Following patch should fix the problem:
diff -u -u -r1.39 agpgart_be.c
--- linux/drivers/char/agp/agpgart_be.c	2003/10/28 23:20:20	1.39
+++ linux/drivers/char/agp/agpgart_be.c	2003/10/28 23:26:02
@@ -67,6 +67,7 @@
 EXPORT_SYMBOL(agp_backend_release);
 
 static void flush_cache(void);
+static int agp_init_one(struct pci_dev *dev);
 
 static struct agp_bridge_data agp_bridge;
 static int agp_try_unsupported __initdata = 0;
@@ -6490,15 +6491,24 @@
 static int __init agp_find_supported_device(void)
 {
 	struct pci_dev *dev = NULL;
-	u8 cap_ptr = 0x00;
+	int ret = -ENODEV;
 
 #ifdef CONFIG_AGP_HP_ZX1
 	if (hp_zx1_gart_init() == 0)
 		return 0;
 #endif
 
-	if ((dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
-		return -ENODEV;
+	while ((dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev)) != NULL) 
{
+		ret = agp_init_one(dev);
+		if (ret != -ENODEV)
+			break;
+	} 
+	return ret;
+}	
+
+static int __init agp_init_one(struct pci_dev *dev)
+{
+	u8 cap_ptr = 0x00;
 
 	agp_bridge.dev = dev;
Comment 1 Bill Nottingham 2003-10-31 16:38:36 EST

*** This bug has been marked as a duplicate of 108648 ***
Comment 2 Red Hat Bugzilla 2006-02-21 13:59:36 EST
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.

Note You need to log in before you can comment on or make changes to this bug.