Re: [RFC] Architecture independent pcibios?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




[+cc Grant, Rob, devicetree list]

On Tue, Oct 8, 2013 at 8:42 AM, Liviu Dudau <Liviu.Dudau@xxxxxxx> wrote:
> Hello,
>
> I am working on adding PCIe support for a new architecture and looking
> at various existing implementations of pcibios functions I've realised
> that some architectures share a lot of common code. As I don't like to
> repeat the pattern again without any good reasons, I am wondering if
> there is any appetite for carving out those common functions into
> a generic place under drivers/pci/pcibios.c where they can be reused.
>
> Things that I am specifically looking at are pcibios_{alloc,free}_controller,
> pci_process_bridge_OF_ranges and anything that will make adding support
> for PCI/PCIe in a new architecture easier. Candidates for promoting
> to a generic place are the functions found in both powerpc and microblaze
> as they seem to be mostly identical, they support DT bindings and are
> 64bits ready.

I'm very much in favor of unifying code to reduce duplication across
architectures.

In general, the pcibios_*() interfaces are things used by the PCI core
(drivers/pci) but implemented by the architecture.  The specific cases
you mentioned are not actually used by the PCI core, so my inclination
would be to name them something else and possibly put them somewhere
other than drivers/pci.

I wonder if pci_process_bridge_OF_ranges() would fit somewhere in
drivers/of?  The implementations I looked at are mostly concerned with
parsing OF resources, and they don't have much to do with PCI
directly.

pcibios_alloc_controller() is implemented by microblaze, powerpc, and
xtensa.  Each of those arches defines its own "struct pci_controller",
so it won't be completely trivial to unify this.  I tried to start
some unification with the "struct pci_host_bridge" in the core, but
haven't made much progress there.

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux