On Wed, Mar 05, 2014 at 01:53:55AM +0000, Tanmay Inamdar wrote: > Hello, > > Thanks for the patch set. > > On Tue, Mar 4, 2014 at 7:49 AM, Liviu Dudau <Liviu.Dudau@xxxxxxx> wrote: > > This is v5 of my attempt to add support for a generic pci_host_bridge controller created > > from a description passed in the device tree. > > > > Changes from v4: > > - Export pci_find_host_bridge() to be used by arch code. There is scope for > > making the arch/arm64 version of pci_domain_nr the default weak implementation > > but that would double the size of this series in order to handle all #define > > versions of the pci_domain_nr() function, so I suggest keeping that for a separate > > cleanup series. > > > > Changes from v3: > > - Dynamically allocate bus_range resource in of_create_pci_host_bridge() > > - Fix the domain number used when creating child busses. > > - Changed domain number allocator to use atomic operations. > > - Use ERR_PTR() to propagate the error out of pci_create_root_bus_in_domain() > > and of_create_pci_host_bridge(). > > > > Changes from v2: > > - Use range->cpu_addr when calling pci_address_to_pio() > > - Introduce pci_register_io_range() helper function in order to register > > io ranges ahead of their conversion to PIO values. This is needed as no > > information is being stored yet regarding the range mapping, making > > pci_address_to_pio() fail. Default weak implementation does nothing, > > to cover the default weak implementation of pci_address_to_pio() that > > expects direct mapping of physical addresses into PIO values (x86 view). > > > > Changes from v1: > > - Add patch to fix conversion of IO ranges into IO resources. > > - Added a domain_nr member to pci_host_bridge structure, and a new function > > to create a root bus in a given domain number. In order to facilitate that > > I propose changing the order of initialisation between pci_host_bridge and > > it's related bus in pci_create_root_bus() as sort of a rever of 7b5436635800. > > This is done in patch 1/4 and 2/4. > > - Added a simple allocator of domain numbers in drivers/pci/host-bridge.c. The > > code will first try to get a domain id from of_alias_get_id(..., "pci-domain") > > and if that fails assign the next unallocated domain id. > > - Changed the name of the function that creates the generic host bridge from > > pci_host_bridge_of_init to of_create_pci_host_bridge and exported as GPL symbol. > > > > > > v4 thread here: https://lkml.org/lkml/2014/3/3/301 > > v3 thread here: https://lkml.org/lkml/2014/2/28/216 > > v2 thread here: https://lkml.org/lkml/2014/2/27/245 > > v1 thread here: https://lkml.org/lkml/2014/2/3/380 > > > > Best regards, > > Liviu > > > > Liviu Dudau (7): > > pci: Introduce pci_register_io_range() helper function. > > pci: OF: Fix the conversion of IO ranges into IO resources. > > pci: Create pci_host_bridge before its associated bus in pci_create_root_bus. > > pci: Introduce a domain number for pci_host_bridge. > > pci: Use parent domain number when allocating child busses. > > pci: Export find_pci_host_bridge() function. > > pci: Add support for creating a generic host_bridge from device tree > > > > drivers/of/address.c | 39 +++++++++++++ > > drivers/pci/host-bridge.c | 142 ++++++++++++++++++++++++++++++++++++++++++++- > > drivers/pci/probe.c | 72 +++++++++++++++-------- > > include/linux/of_address.h | 14 +---- > > include/linux/pci.h | 17 ++++++ > > 5 files changed, 248 insertions(+), 36 deletions(-) > > > > -- > > 1.9.0 > > > > This series is working fine on X-Gene with multiple PCIe ports. You > can add my Tested-by if you want. Cheers! Any ETA on your updated patches? I might get the required signatures on the legal approval next week and then I will publish my host controller driver. Best regards, Liviu > > Thanks, > Tanmay > -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ¯\_(ツ)_/¯ -- 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