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;
*** This bug has been marked as a duplicate of 108648 ***
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.