[patch 2.5] 2-pass PCI probing, hotplug changes

Ivan Kokshaysky (ink@jurassic.park.msu.ru)
Thu, 9 Jan 2003 20:48:36 +0300


As the hotplug drivers use low-level probing functions
(pci_do_scan_bus and pci_scan_bridge), they have to
use the phase #2 routine directly.

Ivan.

diff -urpN 2.5.55/drivers/hotplug/acpiphp_glue.c linux/drivers/hotplug/acpiphp_glue.c
--- 2.5.55/drivers/hotplug/acpiphp_glue.c Thu Jan 9 07:03:59 2003
+++ linux/drivers/hotplug/acpiphp_glue.c Thu Jan 9 15:33:29 2003
@@ -947,6 +947,7 @@ static int enable_device (struct acpiphp
pci_read_config_byte(dev, PCI_SECONDARY_BUS, &bus);
child = (struct pci_bus*) pci_add_new_bus(dev->bus, dev, bus);
pci_do_scan_bus(child);
+ pci_probe_resources(child);
}

/* associate pci_dev to our representation */
diff -urpN 2.5.55/drivers/hotplug/cpci_hotplug_pci.c linux/drivers/hotplug/cpci_hotplug_pci.c
--- 2.5.55/drivers/hotplug/cpci_hotplug_pci.c Thu Jan 9 07:04:17 2003
+++ linux/drivers/hotplug/cpci_hotplug_pci.c Thu Jan 9 15:59:12 2003
@@ -395,6 +395,7 @@ static int cpci_configure_bridge(struct
/* Scan behind bridge */
n = pci_scan_bridge(bus, dev, max, 2);
child = pci_find_bus(max + 1);
+ pci_probe_resources(child);
#ifdef CONFIG_PROC_FS
pci_proc_attach_bus(child);
#endif
diff -urpN 2.5.55/drivers/hotplug/cpqphp_pci.c linux/drivers/hotplug/cpqphp_pci.c
--- 2.5.55/drivers/hotplug/cpqphp_pci.c Thu Jan 9 07:04:25 2003
+++ linux/drivers/hotplug/cpqphp_pci.c Thu Jan 9 15:34:07 2003
@@ -284,7 +284,7 @@ int cpqhp_configure_device (struct contr
pci_read_config_byte(func->pci_dev, PCI_SECONDARY_BUS, &bus);
child = (struct pci_bus*) pci_add_new_bus(func->pci_dev->bus, (func->pci_dev), bus);
pci_do_scan_bus(child);
-
+ pci_probe_resources(child);
}

temp = func->pci_dev;
diff -urpN 2.5.55/drivers/hotplug/ibmphp_core.c linux/drivers/hotplug/ibmphp_core.c
--- 2.5.55/drivers/hotplug/ibmphp_core.c Thu Jan 9 07:04:28 2003
+++ linux/drivers/hotplug/ibmphp_core.c Thu Jan 9 15:38:25 2003
@@ -1071,6 +1071,7 @@ static int ibm_configure_device (struct
pci_read_config_byte (func->dev, PCI_SECONDARY_BUS, &bus);
child = (struct pci_bus *) pci_add_new_bus (func->dev->bus, (func->dev), bus);
pci_do_scan_bus (child);
+ pci_probe_resources (child);
}

temp = func->dev;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/