[PATCH v8 0/9] Support for creating generic PCI host bridges from DT

Tanmay Inamdar
2014-07-11T00:44:07Z

Hi,

On Tue, Jul 8, 2014 at 10:18 AM, Liviu Dudau <Liviu.Dudau@arm.com> wrote:
> On Sun, Jul 06, 2014 at 04:23:43PM +0100, Rob Herring wrote:
>> On Tue, Jul 1, 2014 at 1:43 PM, Liviu Dudau <Liviu.Dudau@arm.com> wrote:
>> > This is my resurected attempt at adding support for generic PCI host
>> > bridge controllers that make use of device tree information to
>> > configure themselves. I've tagged it as v8 although the patches
>> > have now been reshuffled in order to ease adoption so referring to
>> > the older versions might be a bit of a hoop jumping exercise.
>> >
>> > Changes from v7:
>> > - Reordered the patches so that fixes and non-controversial patches
>> > from v7 can be accepted more easily. If agreed I can split the
>> > series again into patches that can be upstreamed easily and ones
>> > that still need discussion.
>> > - Moved the of_create_host_bridge() function to drivers/of/of_pci.c
>> > to better reflect its target use.
>> > - Added the function to remap the bus I/O resources that used to be
>> > provided in my arm64 patch series and (re)named it pci_remap_iospace()
>> > - Removed error code checking from parsing and mapping of IRQ from DT
>> > in recognition that some PCI devices will not have legacy IRQ mappings.
>> >
>> > v7 thread here with all the historic information: https://lkml.org/lkml/2014/3/14/279
>>
>> Can you publish a branch for this series please.
>>
>> Rob
>>
>
> Hi Rob,
>
> I have pushed a brach that matches my v8 patchset +1 obvious missing header include
> here: http://www.linux-arm.org/git?p=linux-ld.git;a=shortlog;h=refs/heads/for-upstream/pci_v8
>

I was still getting following compilation error after applying arm64
pci headers. Please let me know if I am missing something.

linux-git/drivers/of/of_pci.c: In function ?pci_host_bridge_of_get_ranges?:
linux-git/drivers/of/of_pci.c:114:22: error: storage size of ?range? isn?t known
struct of_pci_range range;
^
linux-git/drivers/of/of_pci.c:115:29: error: storage size of ?parser?
isn?t known
struct of_pci_range_parser parser;
^
linux-git/drivers/of/of_pci.c:121:2: error: implicit declaration of
function ?of_pci_range_parser_init?
[-Werror=implicit-function-declaration]
err = of_pci_range_parser_init(&parser, dev);

Below patch fixes the errors.

diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c
index 55d8320..da88dac 100644
--- a/drivers/of/of_pci.c
+++ b/drivers/of/of_pci.c
@@ -2,6 +2,7 @@
#include <linux/export.h>
#include <linux/of.h>
#include <linux/of_pci.h>
+#include <linux/of_address.h>

static inline int __of_pci_pci_compare(struct device_node *node,
unsigned int data)

> Best regards,
> Liviu
>
>
> --
> ====================
> | I would like to |
> | fix the world, |
> | but they're not |
> | giving me the |
> \ source code! /
> ---------------
> ?\_(?)_/?
>