public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Adam Belay <abelay@novell.com>
To: linux-kernel@vger.kernel.org
Cc: greg@kroah.com
Subject: [RFC][PATCH] PCI bus class driver rewrite for 2.6.13-rc2 [0/9]
Date: Thu, 14 Jul 2005 04:54:56 -0400	[thread overview]
Message-ID: <1121331296.3398.88.camel@localhost.localdomain> (raw)

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



             reply	other threads:[~2005-07-14  9:05 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-14  8:54 Adam Belay [this message]
2005-07-15  2:15 ` [RFC][PATCH] PCI bus class driver rewrite for 2.6.13-rc2 [0/9] Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1121331296.3398.88.camel@localhost.localdomain \
    --to=abelay@novell.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox