RE: bare pci configuration access functions ?

From: Kai Germaschewski (kai@tp1.ruhr-uni-bochum.de)
Date: Thu Oct 31 2002 - 18:40:34 EST


On Thu, 31 Oct 2002, Grover, Andrew wrote:

> > From: Lee, Jung-Ik [mailto:jung-ik.lee@intel.com]
> > Some kernel drivers/components such as hotplug
> > pci/io-node drivers,
> > ACPI driver, some console drivers, etc **need bare pci
> > configuration space
> > access** before either pci driver is initialized or struct pci_dev is
> > constructed.
> >
> > ACPI needs this for ACPI/PCI population, hotplug pci driver
> > for populating
> > hot-added pci hierarchy. As more drivers are cross ported
> > over to wider
> > architectures, this would become wider need. Help me if
> > others need this
> > too.
>
> When the PCI Config stuff got revamped a few months ago, Greg KH, myself,
> and some other people discussed this, and the conclusion seemed to be that
> it was less ugly to make the code that needs bare PCI config access use fake
> structs, than to have the bare functions exposed. Greg, am I remembering
> correctly?

As one of the other people involved, I think the solution which was agreed
on was to have the lower level functions provided with (struct pci_bus *,
u8 dev, u8 fn) since that is what's really needed to implement the config
accesses. The standard PCI config functions, taking struct pci_dev * are
merely a wrapper around these. Greg did a patch to implement it, and it
looks like it got merged.

pci_bus_{read,write}_config_{byte,word,dword}()

--Kai

-
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/



This archive was generated by hypermail 2b29 : Thu Oct 31 2002 - 22:00:57 EST