From: Bjorn Helgaas <bhelgaas@google.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: linux-pci <linux-pci@vger.kernel.org>,
Catalin Marinas <Catalin.Marinas@arm.com>,
Will Deacon <Will.Deacon@arm.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Arnd Bergmann <arnd@arndb.de>,
linaro-kernel <linaro-kernel@lists.linaro.org>,
Tanmay Inamdar <tinamdar@apm.com>,
Grant Likely <grant.likely@secretlab.ca>,
Sinan Kaya <okaya@codeaurora.org>,
Jingoo Han <jg1.han@samsung.com>,
Kukjin Kim <kgene.kim@samsung.com>,
Suravee Suthikulanit <suravee.suthikulpanit@amd.com>,
LKML <linux-kernel@vger.kernel.org>,
Device Tree ML <devicetree@vger.kernel.org>,
LAKML <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v8 6/9] pci: Introduce a domain number for pci_host_bridge.
Date: Mon, 7 Jul 2014 18:59:54 -0600 [thread overview]
Message-ID: <20140708005954.GC22939@google.com> (raw)
In-Reply-To: <1404240214-9804-7-git-send-email-Liviu.Dudau@arm.com>
On Tue, Jul 01, 2014 at 07:43:31PM +0100, Liviu Dudau wrote:
> Make it easier to discover the domain number of a bus by storing
> the number in pci_host_bridge for the root bus. Several architectures
> have their own way of storing this information, so it makes sense
> to try to unify the code. While at this, add a new function that
> creates a root bus in a given domain and make pci_create_root_bus()
> a wrapper around this function.
"While at this" is always a good clue that maybe something should be
split into a separate patch :) This is a very good example, since it
adds a new interface that deserves its own changelog.
> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
> Tested-by: Tanmay Inamdar <tinamdar@apm.com>
> ---
> drivers/pci/probe.c | 41 +++++++++++++++++++++++++++++++++--------
> include/linux/pci.h | 4 ++++
> 2 files changed, 37 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 2c92662..abf5e82 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -1748,8 +1748,9 @@ void __weak pcibios_remove_bus(struct pci_bus *bus)
> {
> }
>
> -struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> - struct pci_ops *ops, void *sysdata, struct list_head *resources)
> +struct pci_bus *pci_create_root_bus_in_domain(struct device *parent,
> + int domain, int bus, struct pci_ops *ops, void *sysdata,
> + struct list_head *resources)
I don't think we should do it this way; this makes it possible to have a
host bridge where "bridge->domain_nr != pci_domain_nr(bridge->bus)".
I wonder if it would help to make a weak pci_domain_nr() function that
returns "bridge->domain_nr". Then each arch could individually drop its
pci_domain_nr() definition as it was converted, e.g., something like this:
- Convert every arch pci_domain_nr() from a #define to a non-inline
function
- Add bridge.domain_nr, initialized from pci_domain_nr()
- Add a weak generic pci_domain_nr() that returns bridge.domain_nr
- Add a way to create a host bridge in a specified domain, so we can
initialize bridge.domain_nr without using pci_domain_nr()
- Convert each arch to use the new creation mechanism and drop its
pci_domain_nr() implementation
> {
> int error;
> struct pci_host_bridge *bridge;
> @@ -1762,27 +1763,31 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
>
> bridge = pci_alloc_host_bridge();
> if (!bridge)
> - return NULL;
> + return ERR_PTR(-ENOMEM);
>
> bridge->dev.parent = parent;
> bridge->dev.release = pci_release_host_bridge_dev;
> + bridge->domain_nr = domain;
>
> b = pci_alloc_bus();
> - if (!b)
> + if (!b) {
> + error = -ENOMEM;
> goto err_out;
> + }
>
> b->sysdata = sysdata;
> b->ops = ops;
> b->number = b->busn_res.start = bus;
> - b2 = pci_find_bus(pci_domain_nr(b), bus);
> + b2 = pci_find_bus(bridge->domain_nr, bus);
> if (b2) {
> /* If we already got to this bus through a different bridge, ignore it */
> dev_dbg(&b2->dev, "bus already known\n");
> + error = -EEXIST;
> goto err_bus_out;
> }
>
> bridge->bus = b;
> - dev_set_name(&bridge->dev, "pci%04x:%02x", pci_domain_nr(b), bus);
> + dev_set_name(&bridge->dev, "pci%04x:%02x", bridge->domain_nr, bus);
> error = pcibios_root_bridge_prepare(bridge);
> if (error)
> goto err_out;
> @@ -1801,7 +1806,7 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
>
> b->dev.class = &pcibus_class;
> b->dev.parent = b->bridge;
> - dev_set_name(&b->dev, "%04x:%02x", pci_domain_nr(b), bus);
> + dev_set_name(&b->dev, "%04x:%02x", bridge->domain_nr, bus);
> error = device_register(&b->dev);
> if (error)
> goto class_dev_reg_err;
> @@ -1851,7 +1856,27 @@ err_bus_out:
> kfree(b);
> err_out:
> kfree(bridge);
> - return NULL;
> + return ERR_PTR(error);
> +}
> +
> +struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> + struct pci_ops *ops, void *sysdata, struct list_head *resources)
> +{
> + int domain_nr;
> + struct pci_bus *b = pci_alloc_bus();
> + if (!b)
> + return NULL;
> +
> + b->sysdata = sysdata;
> + domain_nr = pci_domain_nr(b);
> + kfree(b);
> +
> + b = pci_create_root_bus_in_domain(parent, domain_nr, bus,
> + ops, sysdata, resources);
> + if (IS_ERR(b))
> + return NULL;
> +
> + return b;
> }
>
> int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 466bcd1..7e7b939 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -401,6 +401,7 @@ struct pci_host_bridge_window {
> struct pci_host_bridge {
> struct device dev;
> struct pci_bus *bus; /* root bus */
> + int domain_nr;
> struct list_head windows; /* pci_host_bridge_windows */
> void (*release_fn)(struct pci_host_bridge *);
> void *release_data;
> @@ -769,6 +770,9 @@ struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata);
> struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> struct pci_ops *ops, void *sysdata,
> struct list_head *resources);
> +struct pci_bus *pci_create_root_bus_in_domain(struct device *parent,
> + int domain, int bus, struct pci_ops *ops,
> + void *sysdata, struct list_head *resources);
> int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int busmax);
> int pci_bus_update_busn_res_end(struct pci_bus *b, int busmax);
> void pci_bus_release_busn_res(struct pci_bus *b);
> --
> 2.0.0
>
WARNING: multiple messages have this Message-ID (diff)
From: bhelgaas@google.com (Bjorn Helgaas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 6/9] pci: Introduce a domain number for pci_host_bridge.
Date: Mon, 7 Jul 2014 18:59:54 -0600 [thread overview]
Message-ID: <20140708005954.GC22939@google.com> (raw)
In-Reply-To: <1404240214-9804-7-git-send-email-Liviu.Dudau@arm.com>
On Tue, Jul 01, 2014 at 07:43:31PM +0100, Liviu Dudau wrote:
> Make it easier to discover the domain number of a bus by storing
> the number in pci_host_bridge for the root bus. Several architectures
> have their own way of storing this information, so it makes sense
> to try to unify the code. While at this, add a new function that
> creates a root bus in a given domain and make pci_create_root_bus()
> a wrapper around this function.
"While at this" is always a good clue that maybe something should be
split into a separate patch :) This is a very good example, since it
adds a new interface that deserves its own changelog.
> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
> Tested-by: Tanmay Inamdar <tinamdar@apm.com>
> ---
> drivers/pci/probe.c | 41 +++++++++++++++++++++++++++++++++--------
> include/linux/pci.h | 4 ++++
> 2 files changed, 37 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 2c92662..abf5e82 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -1748,8 +1748,9 @@ void __weak pcibios_remove_bus(struct pci_bus *bus)
> {
> }
>
> -struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> - struct pci_ops *ops, void *sysdata, struct list_head *resources)
> +struct pci_bus *pci_create_root_bus_in_domain(struct device *parent,
> + int domain, int bus, struct pci_ops *ops, void *sysdata,
> + struct list_head *resources)
I don't think we should do it this way; this makes it possible to have a
host bridge where "bridge->domain_nr != pci_domain_nr(bridge->bus)".
I wonder if it would help to make a weak pci_domain_nr() function that
returns "bridge->domain_nr". Then each arch could individually drop its
pci_domain_nr() definition as it was converted, e.g., something like this:
- Convert every arch pci_domain_nr() from a #define to a non-inline
function
- Add bridge.domain_nr, initialized from pci_domain_nr()
- Add a weak generic pci_domain_nr() that returns bridge.domain_nr
- Add a way to create a host bridge in a specified domain, so we can
initialize bridge.domain_nr without using pci_domain_nr()
- Convert each arch to use the new creation mechanism and drop its
pci_domain_nr() implementation
> {
> int error;
> struct pci_host_bridge *bridge;
> @@ -1762,27 +1763,31 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
>
> bridge = pci_alloc_host_bridge();
> if (!bridge)
> - return NULL;
> + return ERR_PTR(-ENOMEM);
>
> bridge->dev.parent = parent;
> bridge->dev.release = pci_release_host_bridge_dev;
> + bridge->domain_nr = domain;
>
> b = pci_alloc_bus();
> - if (!b)
> + if (!b) {
> + error = -ENOMEM;
> goto err_out;
> + }
>
> b->sysdata = sysdata;
> b->ops = ops;
> b->number = b->busn_res.start = bus;
> - b2 = pci_find_bus(pci_domain_nr(b), bus);
> + b2 = pci_find_bus(bridge->domain_nr, bus);
> if (b2) {
> /* If we already got to this bus through a different bridge, ignore it */
> dev_dbg(&b2->dev, "bus already known\n");
> + error = -EEXIST;
> goto err_bus_out;
> }
>
> bridge->bus = b;
> - dev_set_name(&bridge->dev, "pci%04x:%02x", pci_domain_nr(b), bus);
> + dev_set_name(&bridge->dev, "pci%04x:%02x", bridge->domain_nr, bus);
> error = pcibios_root_bridge_prepare(bridge);
> if (error)
> goto err_out;
> @@ -1801,7 +1806,7 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
>
> b->dev.class = &pcibus_class;
> b->dev.parent = b->bridge;
> - dev_set_name(&b->dev, "%04x:%02x", pci_domain_nr(b), bus);
> + dev_set_name(&b->dev, "%04x:%02x", bridge->domain_nr, bus);
> error = device_register(&b->dev);
> if (error)
> goto class_dev_reg_err;
> @@ -1851,7 +1856,27 @@ err_bus_out:
> kfree(b);
> err_out:
> kfree(bridge);
> - return NULL;
> + return ERR_PTR(error);
> +}
> +
> +struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> + struct pci_ops *ops, void *sysdata, struct list_head *resources)
> +{
> + int domain_nr;
> + struct pci_bus *b = pci_alloc_bus();
> + if (!b)
> + return NULL;
> +
> + b->sysdata = sysdata;
> + domain_nr = pci_domain_nr(b);
> + kfree(b);
> +
> + b = pci_create_root_bus_in_domain(parent, domain_nr, bus,
> + ops, sysdata, resources);
> + if (IS_ERR(b))
> + return NULL;
> +
> + return b;
> }
>
> int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 466bcd1..7e7b939 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -401,6 +401,7 @@ struct pci_host_bridge_window {
> struct pci_host_bridge {
> struct device dev;
> struct pci_bus *bus; /* root bus */
> + int domain_nr;
> struct list_head windows; /* pci_host_bridge_windows */
> void (*release_fn)(struct pci_host_bridge *);
> void *release_data;
> @@ -769,6 +770,9 @@ struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata);
> struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> struct pci_ops *ops, void *sysdata,
> struct list_head *resources);
> +struct pci_bus *pci_create_root_bus_in_domain(struct device *parent,
> + int domain, int bus, struct pci_ops *ops,
> + void *sysdata, struct list_head *resources);
> int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int busmax);
> int pci_bus_update_busn_res_end(struct pci_bus *b, int busmax);
> void pci_bus_release_busn_res(struct pci_bus *b);
> --
> 2.0.0
>
next prev parent reply other threads:[~2014-07-08 0:59 UTC|newest]
Thread overview: 208+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-01 18:43 [PATCH v8 0/9] Support for creating generic PCI host bridges from DT Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 1/9] Fix ioport_map() for !CONFIG_GENERIC_IOMAP cases Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 2/9] pci: Export find_pci_host_bridge() function Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-02 18:06 ` Tanmay Inamdar
2014-07-02 18:06 ` Tanmay Inamdar
2014-07-02 19:12 ` Arnd Bergmann
2014-07-02 19:12 ` Arnd Bergmann
2014-07-02 20:43 ` Tanmay Inamdar
2014-07-02 20:43 ` Tanmay Inamdar
2014-07-03 9:53 ` Liviu Dudau
2014-07-03 9:53 ` Liviu Dudau
2014-07-03 10:26 ` Arnd Bergmann
2014-07-03 10:26 ` Arnd Bergmann
2014-07-07 23:27 ` Bjorn Helgaas
2014-07-07 23:27 ` Bjorn Helgaas
2014-07-07 23:27 ` Bjorn Helgaas
2014-07-08 10:42 ` Liviu Dudau
2014-07-08 10:42 ` Liviu Dudau
2014-07-08 10:42 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 3/9] pci: Introduce pci_register_io_range() helper function Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 19:36 ` Arnd Bergmann
2014-07-01 19:36 ` Arnd Bergmann
2014-07-01 20:45 ` Liviu Dudau
2014-07-01 20:45 ` Liviu Dudau
2014-07-02 12:30 ` Arnd Bergmann
2014-07-02 12:30 ` Arnd Bergmann
2014-07-02 14:23 ` Liviu Dudau
2014-07-02 14:23 ` Liviu Dudau
2014-07-02 14:23 ` Liviu Dudau
2014-07-02 14:58 ` Arnd Bergmann
2014-07-02 14:58 ` Arnd Bergmann
2014-07-02 11:22 ` Will Deacon
2014-07-02 11:22 ` Will Deacon
2014-07-02 16:00 ` Liviu Dudau
2014-07-02 16:00 ` Liviu Dudau
2014-07-02 12:38 ` Arnd Bergmann
2014-07-02 12:38 ` Arnd Bergmann
2014-07-02 13:20 ` Liviu Dudau
2014-07-02 13:20 ` Liviu Dudau
2014-07-08 0:14 ` Bjorn Helgaas
2014-07-08 0:14 ` Bjorn Helgaas
2014-07-08 7:00 ` Arnd Bergmann
2014-07-08 7:00 ` Arnd Bergmann
2014-07-08 21:29 ` Bjorn Helgaas
2014-07-08 21:29 ` Bjorn Helgaas
2014-07-08 22:45 ` Liviu Dudau
2014-07-08 22:45 ` Liviu Dudau
2014-07-09 6:32 ` Arnd Bergmann
2014-07-09 6:32 ` Arnd Bergmann
2014-07-09 6:32 ` Arnd Bergmann
2014-07-09 9:13 ` Liviu Dudau
2014-07-09 9:13 ` Liviu Dudau
2014-07-09 6:20 ` Arnd Bergmann
2014-07-09 6:20 ` Arnd Bergmann
2014-07-09 9:14 ` Liviu Dudau
2014-07-09 9:14 ` Liviu Dudau
2014-07-09 15:21 ` Bjorn Helgaas
2014-07-09 15:21 ` Bjorn Helgaas
2014-07-08 10:40 ` Liviu Dudau
2014-07-08 10:40 ` Liviu Dudau
2014-07-08 14:14 ` Arnd Bergmann
2014-07-08 14:14 ` Arnd Bergmann
2014-07-09 8:59 ` Liviu Dudau
2014-07-09 8:59 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 4/9] pci: OF: Fix the conversion of IO ranges into IO resources Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-05 19:25 ` Rob Herring
2014-07-05 19:25 ` Rob Herring
2014-07-05 19:25 ` Rob Herring
2014-07-05 20:46 ` Arnd Bergmann
2014-07-05 20:46 ` Arnd Bergmann
2014-07-07 11:11 ` Liviu Dudau
2014-07-07 11:11 ` Liviu Dudau
2014-07-07 21:22 ` Arnd Bergmann
2014-07-07 21:22 ` Arnd Bergmann
2014-07-08 10:03 ` Liviu Dudau
2014-07-08 10:03 ` Liviu Dudau
2014-07-09 8:31 ` Arnd Bergmann
2014-07-09 8:31 ` Arnd Bergmann
2014-07-09 9:27 ` Liviu Dudau
2014-07-09 9:27 ` Liviu Dudau
2014-07-16 14:35 ` Rob Herring
2014-07-16 14:35 ` Rob Herring
2014-07-16 14:47 ` Liviu Dudau
2014-07-16 14:47 ` Liviu Dudau
2014-07-16 14:47 ` Arnd Bergmann
2014-07-16 14:47 ` Arnd Bergmann
2014-07-01 18:43 ` [PATCH v8 5/9] pci: Create pci_host_bridge before its associated bus in pci_create_root_bus Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 6/9] pci: Introduce a domain number for pci_host_bridge Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-08 0:59 ` Bjorn Helgaas [this message]
2014-07-08 0:59 ` Bjorn Helgaas
2014-07-08 10:46 ` Liviu Dudau
2014-07-08 10:46 ` Liviu Dudau
2014-07-08 18:41 ` Bjorn Helgaas
2014-07-08 18:41 ` Bjorn Helgaas
2014-07-08 22:48 ` Liviu Dudau
2014-07-08 22:48 ` Liviu Dudau
2014-07-09 15:10 ` Bjorn Helgaas
2014-07-09 15:10 ` Bjorn Helgaas
2014-07-10 9:47 ` Liviu Dudau
2014-07-10 9:47 ` Liviu Dudau
2014-07-10 22:36 ` Bjorn Helgaas
2014-07-10 22:36 ` Bjorn Helgaas
2014-07-11 9:30 ` Liviu Dudau
2014-07-11 9:30 ` Liviu Dudau
2014-07-11 9:30 ` Liviu Dudau
2014-07-11 14:11 ` Catalin Marinas
2014-07-11 14:11 ` Catalin Marinas
2014-07-11 15:08 ` Liviu Dudau
2014-07-11 15:08 ` Liviu Dudau
2014-07-11 16:09 ` Catalin Marinas
2014-07-11 16:09 ` Catalin Marinas
2014-07-11 17:02 ` Bjorn Helgaas
2014-07-11 17:02 ` Bjorn Helgaas
2014-07-11 18:02 ` Catalin Marinas
2014-07-11 18:02 ` Catalin Marinas
2014-07-14 16:39 ` Catalin Marinas
2014-07-14 16:39 ` Catalin Marinas
2014-07-14 16:39 ` Catalin Marinas
2014-07-22 3:15 ` Bjorn Helgaas
2014-07-22 3:15 ` Bjorn Helgaas
2014-07-25 15:42 ` Catalin Marinas
2014-07-25 15:42 ` Catalin Marinas
2014-07-01 18:43 ` [PATCH v8 7/9] pci: of: Parse and map the IRQ when adding the PCI device Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-02 11:17 ` Will Deacon
2014-07-02 11:17 ` Will Deacon
2014-07-05 19:04 ` Rob Herring
2014-07-05 19:04 ` Rob Herring
2014-07-05 19:04 ` Rob Herring
2014-07-01 18:43 ` [PATCH v8 8/9] pci: Add support for creating a generic host_bridge from device tree Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-01 20:50 ` [RESEND] " Liviu Dudau
2014-07-01 20:50 ` Liviu Dudau
2014-07-01 20:50 ` Liviu Dudau
2014-07-01 21:04 ` Liviu Dudau
2014-07-01 21:04 ` Liviu Dudau
2014-07-01 21:04 ` Liviu Dudau
2014-07-02 11:22 ` Will Deacon
2014-07-02 11:22 ` Will Deacon
2014-07-02 17:23 ` Liviu Dudau
2014-07-02 17:23 ` Liviu Dudau
2014-07-02 17:23 ` Liviu Dudau
2014-07-02 17:31 ` Will Deacon
2014-07-02 17:31 ` Will Deacon
2014-07-02 19:09 ` Arnd Bergmann
2014-07-02 19:09 ` Arnd Bergmann
2014-07-08 1:01 ` Bjorn Helgaas
2014-07-08 1:01 ` Bjorn Helgaas
2014-07-08 10:29 ` Liviu Dudau
2014-07-08 10:29 ` Liviu Dudau
2014-07-08 21:33 ` Bjorn Helgaas
2014-07-08 21:33 ` Bjorn Helgaas
2014-07-08 22:27 ` Liviu Dudau
2014-07-08 22:27 ` Liviu Dudau
2014-07-08 22:37 ` Bjorn Helgaas
2014-07-08 22:37 ` Bjorn Helgaas
2014-07-08 22:37 ` Bjorn Helgaas
2014-07-08 22:57 ` Liviu Dudau
2014-07-08 22:57 ` Liviu Dudau
2014-07-09 6:47 ` Arnd Bergmann
2014-07-09 6:47 ` Arnd Bergmann
2014-07-11 7:43 ` Jingoo Han
2014-07-11 7:43 ` Jingoo Han
2014-07-11 9:08 ` Liviu Dudau
2014-07-11 9:08 ` Liviu Dudau
2014-07-01 18:43 ` [PATCH v8 9/9] pci: Remap I/O bus resources into CPU space with pci_remap_iospace() Liviu Dudau
2014-07-01 18:43 ` Liviu Dudau
2014-07-14 16:54 ` Catalin Marinas
2014-07-14 16:54 ` Catalin Marinas
2014-07-14 16:56 ` Liviu Dudau
2014-07-14 16:56 ` Liviu Dudau
2014-07-14 18:15 ` Arnd Bergmann
2014-07-14 18:15 ` Arnd Bergmann
2014-07-14 18:15 ` Arnd Bergmann
2014-07-15 0:14 ` Liviu Dudau
2014-07-15 0:14 ` Liviu Dudau
2014-07-15 0:14 ` Liviu Dudau
2014-07-15 9:09 ` Catalin Marinas
2014-07-15 9:09 ` Catalin Marinas
2014-07-15 9:09 ` Catalin Marinas
2014-07-06 15:23 ` [PATCH v8 0/9] Support for creating generic PCI host bridges from DT Rob Herring
2014-07-06 15:23 ` Rob Herring
2014-07-06 15:23 ` Rob Herring
2014-07-07 11:12 ` Liviu Dudau
2014-07-07 11:12 ` Liviu Dudau
2014-07-08 17:18 ` Liviu Dudau
2014-07-08 17:18 ` Liviu Dudau
2014-07-11 0:44 ` Tanmay Inamdar
2014-07-11 0:44 ` Tanmay Inamdar
2014-07-11 7:33 ` Jingoo Han
2014-07-11 7:33 ` Jingoo Han
2014-07-11 9:11 ` Liviu Dudau
2014-07-11 9:11 ` Liviu Dudau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140708005954.GC22939@google.com \
--to=bhelgaas@google.com \
--cc=Catalin.Marinas@arm.com \
--cc=Liviu.Dudau@arm.com \
--cc=Will.Deacon@arm.com \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@secretlab.ca \
--cc=jg1.han@samsung.com \
--cc=kgene.kim@samsung.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=okaya@codeaurora.org \
--cc=suravee.suthikulpanit@amd.com \
--cc=tinamdar@apm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.