Skip to contentSkip to conversation

2.5.67 Don't init zx1 agpgart on non-AGP system

PATCH New Alex Williamson 1 participant 1 message Apr 21, 2003 Agpgart driver

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.5.67 Don't init zx1 agpgart on non-AGP system

This fixes agp_hp_init() so that it doesn't try to register
the zx1 AGP driver when there is no AGP slot in the system. Thanks,

Alex

--
Alex Williamson HP Linux & Open Source Lab

drivers/char/agp/hp-agp.c renamed from drivers/char/agp/hp-agp.c~ +13 -7
@@ -420,6 +420,9 @@
 	if (hp_zx1_setup(sba_hpa + HP_ZX1_IOC_OFFSET, lba_hpa))
 		return 1;
 
+	fake_bridge_dev.vendor = PCI_VENDOR_ID_HP;
+	fake_bridge_dev.device = PCI_DEVICE_ID_HP_ZX1_LBA;
+
 	return 0;
 }
 
@@ -435,16 +438,19 @@
 	status = acpi_get_devices("HWP0003", zx1_gart_probe, "HWP0003 AGP LBA", NULL);
 	if (!(ACPI_SUCCESS(status))) {
 		agp_bridge->type = NOT_SUPPORTED;
-		printk(KERN_INFO PFX "Didn't find an HP ZX1 Chipset.\n");
+		printk(KERN_INFO PFX "Failed to initialize zx1 AGP.\n");
 		return -ENODEV;
 	}
 
-	fake_bridge_dev.vendor = PCI_VENDOR_ID_HP;
-	fake_bridge_dev.device = PCI_DEVICE_ID_HP_ZX1_LBA;
-	hp_agp_driver.dev = &fake_bridge_dev;
-	agp_bridge->type = HP_ZX1;
-	agp_bridge->dev = &fake_bridge_dev;
-	return agp_register_driver(&hp_agp_driver);
+	if (fake_bridge_dev.vendor && !agp_bridge->type) {
+		hp_agp_driver.dev = &fake_bridge_dev;
+		agp_bridge->type = HP_ZX1;
+		agp_bridge->dev = &fake_bridge_dev;
+		return agp_register_driver(&hp_agp_driver);
+
+	} else {
+		return -ENODEV;
+	}
 }
 
 static void __exit