Hi all, I'm in the process of overhauling some aspects of the PCI subsystem. This patch series is a rewrite of the PCI probing and detection code. It creates a well defined PCI bus class API and allows a standard PCI driver to bind to PCI bridge devices. This results in the following:
* cleaner code * improved driver core support * the option of adding new PCI bridge drivers * better power management Example from sysfs: (/sys/bus/pci/drivers) |-- pci-bridge | |-- 0000:00:1e.0 -> ../../../../devices/pci0000:00/0000:00:1e.0 | |-- bind | |-- new_id | `-- unbind Summary: drivers/pci/Makefile | 10 drivers/pci/bus.c | 69 --- drivers/pci/bus/Makefile | 9 drivers/pci/bus/bus.c | 144 ++++++ drivers/pci/bus/bus.h | 5 drivers/pci/bus/config.c | 466 ++++++++++++++++++++ drivers/pci/bus/device.c | 187 ++++++++ drivers/pci/bus/pci-bridge.c | 206 ++++++++- drivers/pci/bus/probe.c | 512 +++++++++++++++++++++- drivers/pci/probe.c | 971 ------------------------------------------- drivers/pci/remove.c | 122 ----- include/linux/pci.h | 4 12 files changed, 1501 insertions(+), 1204 deletions(-) For these changes to be fully effective, the following code (some of which was broken by these changes) will need to be fixed: 1.) PCI resource management and bus numbers - We need to utilize ACPI provided PCI root bridge resource information. - Lazy allocation should be used for device resource assignments. - The PCI bus resource assignment API needs to be refined. - We need smarter bus number assignment algorithms that maintain BIOS configuration when possible. 2.) PCI Hotplug - Hotplug drivers should use PCI subsystem resource assignment and configuration code whenever possible (e.g. the recent changes to ACPI PCI hotplug were a step in the right direction). - I have some changes planned for device registration. 3.) ACPI - The new probing code breaks _PRT handling. - We need to register ACPI devices in the /sys/devices tree so we can bind to the root bridge device. 4.) Platform Specific PCI support - I'd like to improve the "pcibios" API. 5.) PCMCIA/Cardbus - This needs to use the new PCI bus class driver. I'm currently working on these issues. I look forward to any comments or suggestions. Cheers, Adam - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/