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/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
|
|