Re: [PATCH v3] of/irq: provide more wrappers for !CONFIG_OF

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

 




On Tue, Jun 3, 2014 at 9:47 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> The pci-rcar driver is enabled for compile tests, and this has
> now shown that the driver cannot build without CONFIG_OF,
> following the inclusion of f8f2fe7355fb "PCI: rcar: Use new OF
> interrupt mapping when possible":
>
> drivers/built-in.o: In function `rcar_pci_map_irq':
> :(.text+0x1cc7c): undefined reference to `of_irq_parse_and_map_pci'
> pci/host/pcie-rcar.c: In function 'pci_dma_range_parser_init':
> pci/host/pcie-rcar.c:875:2: error: implicit declaration of function 'of_n_addr_cells' [-Werror=implicit-function-declaration]
>
> As pointed out by Ben Dooks and Geert Uytterhoeven, this is actually
> supposed to build fine, which we can achieve if we make the
> declaration of of_irq_parse_and_map_pci conditional on CONFIG_OF
> and provide an empty inline function otherwise, as we do for
> a lot of other of interfaces.
>
> This lets us build the rcar_pci driver again without CONFIG_OF
> for build testing. All platforms using this driver select OF,
> so this doesn't change anything for the users.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: devicetree@xxxxxxxxxxxxxxx
> Cc: Rob Herring <robh+dt@xxxxxxxxxx>
> Cc: Grant Likely <grant.likely@xxxxxxxxxx>
> Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> Cc: Magnus Damm <damm@xxxxxxxxxxxxx>
> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> Cc: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx>
> Cc: linux-pci@xxxxxxxxxxxxxxx
> Cc: linux-sh@xxxxxxxxxxxxxxx
> ----
>
> This replaces "[PATCH v2] of/irq: provide int of_irq_parse_and_map_pci
> wrapper", since now the same driver requires additional interfaces.
> We still want to be able to build the driver with CONFIG_OF disabled,
> but now we need three functions instead of just one.
>
> Rob, Grant, can you apply this as a bug fix, or provide comments?
>
> diff --git a/include/linux/of.h b/include/linux/of.h
> index 196b34c..7c29e6c 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -511,6 +511,9 @@ static inline struct device_node *of_get_cpu_node(int cpu,
>         return NULL;
>  }
>
> +static inline int of_n_addr_cells(struct device_node *np) { return 0; }
> +static inline int of_n_size_cells(struct device_node *np) { return 0; }

I'm fine with the rest, but I think these should always be used within
some higher level function.

I can't seem to find where this is used by rcar. BTW, why does rcar
pci DT support fail to have any ranges property?

Looking at one use in mvebu pci only confirms my position. An
of_for_each_ranges helper would be useful in that case.

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