Subject: [PATCH v13 00/12] Support for creating generic PCI host bridges from DT

From: [email-masked] (Bjorn Helgaas)
Date: Tue, 30 Sep 2014 10:18:05 -0600

On Tue, Sep 30, 2014 at 11:39:42AM +0100, Liviu Dudau wrote:
> On Mon, Sep 29, 2014 at 08:43:35PM +0100, Bjorn Helgaas wrote:
> > On Mon, Sep 29, 2014 at 03:29:19PM +0100, Liviu Dudau wrote:
> > > This is my version 13 of the attempt at adding support for generic PCI host
> > > bridge controllers. It contains only cleanups to make it play nice with the
> > > linux-next tree as of 09/25. If Bjorn deems it safe, now that it looks like
> > > asm-generic is going to revert some of its more aggresive patches, he has the
> > > choice of queueing it into linux-next again.
> > > ...
> > 
> > These patches above were already on my pci/host-generic branch and in
> > linux-next:
> > 
> >    asm-generic/io.h: Fix ioport_map() for !CONFIG_GENERIC_IOMAP
> This ^ ...
> 
> >    of/pci: Add pci_register_io_range() and pci_pio_to_address()
> >    ARM: Define PCI_IOBASE as the base of virtual PCI IO space
> 
> and this ^ need to be refreshed from my series otherwise we will get conflicts with
> asm-generic branch (either now or in the future). While the asm-generic/io.h
> cast is arguably superflous, we need to define PCI_IOBASE as a void __iomem* to
> match all other standard declarations of PCI_IOBASE.
> 
> >    of/pci: Define of_pci_range_to_resource() only when CONFIG_PCI=y
> >    of/pci: Move of_pci_range_to_resources() to of/address.c
> >    of/pci: Fix the conversion of IO ranges into IO resources
> > 
> > I added these three patches to my pci/host-generic branch:
> > 
> >    PCI: Add generic domain handling
> >    of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()
> >    of/pci: Add support for parsing PCI host bridge resources from DT
> 
> I can see these patches added to pci/host-generic but not on pci/next.

Right.  I leave things on topic branches for a day or two to give a chance
for Fengguang's auto-builder to find problems before I merge them into the
more public "next" or "for-linus" branches.

> > Yinghai pointed out a problem with this one, so I omitted it:
> > 
> >    PCI: Assign unassigned bus resources in pci_scan_root_bus()
> 
> Thats fine, host bridge drivers will have to work around pci_scan_root_bus() reduced
> functionality for now.

Well, it's not really "reduced functionality."  It is unchanged by this
series and host bridge drivers can continue using it the same way they have
in the past.  It's just that we'd like to make it smarter someday.

> > I added this one to my pci/host-generic branch:
> > 
> >    PCI: Add pci_remap_iospace() to map bus I/O resources
> > 
> > I assume this depends on the pci_scan_root_bus() change (if not, let me
> > know), so I omitted this one:
> > 
> >    arm64: Add architectural support for PCI
> 
> No, there is no dependency there on pci_scan_root_bus(), it can go in the series.
> The only thing that depends on a feature rich pci_scan_root_bus() is the host
> bridge driver in order to be able to use only one line to process the root bus.

OK, I rebuilt pci/host-generic from scratch.  It consists of your v13
patches + Arnd's build fix for pci_pio_to_address() in !CONFIG_OF configs.

Bjorn