All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Thierry Reding <thierry.reding@avionic-design.de>
Cc: linux-tegra@vger.kernel.org,
	Grant Likely <grant.likely@secretlab.ca>,
	Rob Herring <rob.herring@calxeda.com>,
	Russell King <linux@arm.linux.org.uk>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Andrew Murray <andrew.murray@arm.com>,
	Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	devicetree-discuss@lists.ozlabs.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH 10/14] PCI: tegra: Move PCIe driver to drivers/pci/host
Date: Thu, 10 Jan 2013 17:48:46 -0700	[thread overview]
Message-ID: <50EF616E.7040609@wwwdotorg.org> (raw)
In-Reply-To: <1357764194-12677-11-git-send-email-thierry.reding@avionic-design.de>

On 01/09/2013 01:43 PM, Thierry Reding wrote:
> Move the PCIe driver from arch/arm/mach-tegra into the drivers/pci/host
> directory. The motivation is to collect various host controller drivers
> in the same location in order to facilitate refactoring.
> 
> The Tegra PCIe driver has been largely rewritten, both in order to turn
> it into a proper platform driver and to add MSI (based on code by
> Krishna Kishore <kthota@nvidia.com>) as well as device tree support.

> diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c

>  static void __init trimslice_init(void)
>  {
>  #ifdef CONFIG_TEGRA_PCI
> -	int ret;
> -
> -	ret = tegra_pcie_init(true, true);
> -	if (ret)
> -		pr_err("tegra_pci_init() failed: %d\n", ret);
> +	platform_device_register(&tegra_pcie_device);

That struct doesn't actually exist anywhere; only an extern definition
is added (and that extern definition isn't removed by patch 14 either).

> diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig

> +config PCI_TEGRA
> +	bool "NVIDIA Tegra PCIe controller"
> +	depends on ARCH_TEGRA_2x_SOC

Perhaps depend on ARCH_TEGRA; that will save churn once this is ported
to Tegra30, and shouldn't cause any problems before then.

> diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c

> +#define AFI_INTR_CODE		0xb8
> +#define  AFI_INTR_CODE_MASK	0xf
> +#define  AFI_INTR_MASTER_ABORT	4
> +#define  AFI_INTR_LEGACY	6

Adding defines for at least some other codes here, would help further
below ...

> +static irqreturn_t tegra_pcie_isr(int irq, void *arg)

> +	if (code == AFI_INTR_MASTER_ABORT) {
> +		dev_dbg(pcie->dev, "%s, signature: %08x\n", err_msg[code],
> +			signature);
> +	} else
> +		dev_err(pcie->dev, "%s, signature: %08x\n", err_msg[code],
> +			signature);
> +
> +	if (code == 3 || code == 4 || code == 7) {

... i.e. here.

> +		u32 fpci = afi_readl(pcie, AFI_UPPER_FPCI_ADDRESS) & 0xff;
> +		u64 address = (u64)fpci << 32 | (signature & 0xfffffffc);
> +		dev_dbg(pcie->dev, "  FPCI address: %10llx\n", address);

I'd suggest making that dev_err(), or at least something higher than
debug, since the message indicating the error happened is dev_err(), so
the complete details may as well be available since they're small.

> +static int tegra_pcie_enable_controller(struct tegra_pcie *pcie)
> +{
> +	unsigned int timeout;
> +	unsigned long value;
> +
> +	/* enable dual controller and both ports */
> +	value = afi_readl(pcie, AFI_PCIE_CONFIG);
> +	value &= ~(AFI_PCIE_CONFIG_PCIEC0_DISABLE_DEVICE |
> +		   AFI_PCIE_CONFIG_PCIEC1_DISABLE_DEVICE |
> +		   AFI_PCIE_CONFIG_SM2TMS0_XBAR_CONFIG_MASK);
> +	value |= AFI_PCIE_CONFIG_SM2TMS0_XBAR_CONFIG_DUAL;
> +	afi_writel(pcie, value, AFI_PCIE_CONFIG);

Eventually, we should probably derive the port enables from the state of
the root port DT nodes, so that we can disable some and presumably save
a little power. Also, I notice that the nvidia,num-lanes property isn't
implemented yet. Still, we can probably take care of this later.

> +static void tegra_pcie_power_off(struct tegra_pcie *pcie)

> +	if (!IS_ERR_OR_NULL(pcie->pex_clk_supply)) {

Hmm. I think we should make supplies mandatory; it doesn't make sense
for regulator support to be disabled on Tegra, and where a specific
board doesn't actually have a regulator, you're supposed to provide a
dummy fixed regulator so the driver doesn't have to care.

The same comment obviously applies to tegra_pcie_power_on() and wherever
regulator_get() happens.

> +static int tegra_pcie_parse_dt(struct tegra_pcie *pcie)

> +	pcie->vdd_supply = devm_regulator_get(pcie->dev, "vdd");
> +	if (IS_ERR(pcie->vdd_supply))
> +		return PTR_ERR(pcie->vdd_supply);
> +
> +	pcie->pex_clk_supply = devm_regulator_get(pcie->dev, "pex-clk");
> +	if (IS_ERR(pcie->pex_clk_supply))
> +		return PTR_ERR(pcie->pex_clk_supply);

Oh, I guess the regulator_get() calls are already strict.

> +static int tegra_pcie_add_port(struct tegra_pcie *pcie, struct device_node *np)

> +	port = devm_kzalloc(pcie->dev, sizeof(*port), GFP_KERNEL);
> +	if (!port)
> +		return -ENOMEM;
> +
> +	INIT_LIST_HEAD(&port->list);
> +	port->index = index;
> +	port->pcie = pcie;
> +
> +	port->base = devm_request_and_ioremap(pcie->dev, &regs);
> +	if (!port->base)
> +		return -EADDRNOTAVAIL;
> +
> +	if (!tegra_pcie_port_check_link(port)) {
> +		dev_info(pcie->dev, "link %u down, ignoring\n", port->index);

Perhaps devm_kfree(port)? Not a big leak, but equally if you don't, it's
an unreferenced memory block.

> +		return -ENODEV;
> +	}
> +
> +	list_add_tail(&port->list, &pcie->ports);
> +
> +	return 0;
> +}

WARNING: multiple messages have this Message-ID (diff)
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Thierry Reding
	<thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Grant Likely
	<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
	Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Andrew Murray <andrew.murray-5wv7dgnIgG8@public.gmane.org>,
	Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>,
	Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Thomas Petazzoni
	<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 10/14] PCI: tegra: Move PCIe driver to drivers/pci/host
Date: Thu, 10 Jan 2013 17:48:46 -0700	[thread overview]
Message-ID: <50EF616E.7040609@wwwdotorg.org> (raw)
In-Reply-To: <1357764194-12677-11-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>

On 01/09/2013 01:43 PM, Thierry Reding wrote:
> Move the PCIe driver from arch/arm/mach-tegra into the drivers/pci/host
> directory. The motivation is to collect various host controller drivers
> in the same location in order to facilitate refactoring.
> 
> The Tegra PCIe driver has been largely rewritten, both in order to turn
> it into a proper platform driver and to add MSI (based on code by
> Krishna Kishore <kthota-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>) as well as device tree support.

> diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c

>  static void __init trimslice_init(void)
>  {
>  #ifdef CONFIG_TEGRA_PCI
> -	int ret;
> -
> -	ret = tegra_pcie_init(true, true);
> -	if (ret)
> -		pr_err("tegra_pci_init() failed: %d\n", ret);
> +	platform_device_register(&tegra_pcie_device);

That struct doesn't actually exist anywhere; only an extern definition
is added (and that extern definition isn't removed by patch 14 either).

> diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig

> +config PCI_TEGRA
> +	bool "NVIDIA Tegra PCIe controller"
> +	depends on ARCH_TEGRA_2x_SOC

Perhaps depend on ARCH_TEGRA; that will save churn once this is ported
to Tegra30, and shouldn't cause any problems before then.

> diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c

> +#define AFI_INTR_CODE		0xb8
> +#define  AFI_INTR_CODE_MASK	0xf
> +#define  AFI_INTR_MASTER_ABORT	4
> +#define  AFI_INTR_LEGACY	6

Adding defines for at least some other codes here, would help further
below ...

> +static irqreturn_t tegra_pcie_isr(int irq, void *arg)

> +	if (code == AFI_INTR_MASTER_ABORT) {
> +		dev_dbg(pcie->dev, "%s, signature: %08x\n", err_msg[code],
> +			signature);
> +	} else
> +		dev_err(pcie->dev, "%s, signature: %08x\n", err_msg[code],
> +			signature);
> +
> +	if (code == 3 || code == 4 || code == 7) {

... i.e. here.

> +		u32 fpci = afi_readl(pcie, AFI_UPPER_FPCI_ADDRESS) & 0xff;
> +		u64 address = (u64)fpci << 32 | (signature & 0xfffffffc);
> +		dev_dbg(pcie->dev, "  FPCI address: %10llx\n", address);

I'd suggest making that dev_err(), or at least something higher than
debug, since the message indicating the error happened is dev_err(), so
the complete details may as well be available since they're small.

> +static int tegra_pcie_enable_controller(struct tegra_pcie *pcie)
> +{
> +	unsigned int timeout;
> +	unsigned long value;
> +
> +	/* enable dual controller and both ports */
> +	value = afi_readl(pcie, AFI_PCIE_CONFIG);
> +	value &= ~(AFI_PCIE_CONFIG_PCIEC0_DISABLE_DEVICE |
> +		   AFI_PCIE_CONFIG_PCIEC1_DISABLE_DEVICE |
> +		   AFI_PCIE_CONFIG_SM2TMS0_XBAR_CONFIG_MASK);
> +	value |= AFI_PCIE_CONFIG_SM2TMS0_XBAR_CONFIG_DUAL;
> +	afi_writel(pcie, value, AFI_PCIE_CONFIG);

Eventually, we should probably derive the port enables from the state of
the root port DT nodes, so that we can disable some and presumably save
a little power. Also, I notice that the nvidia,num-lanes property isn't
implemented yet. Still, we can probably take care of this later.

> +static void tegra_pcie_power_off(struct tegra_pcie *pcie)

> +	if (!IS_ERR_OR_NULL(pcie->pex_clk_supply)) {

Hmm. I think we should make supplies mandatory; it doesn't make sense
for regulator support to be disabled on Tegra, and where a specific
board doesn't actually have a regulator, you're supposed to provide a
dummy fixed regulator so the driver doesn't have to care.

The same comment obviously applies to tegra_pcie_power_on() and wherever
regulator_get() happens.

> +static int tegra_pcie_parse_dt(struct tegra_pcie *pcie)

> +	pcie->vdd_supply = devm_regulator_get(pcie->dev, "vdd");
> +	if (IS_ERR(pcie->vdd_supply))
> +		return PTR_ERR(pcie->vdd_supply);
> +
> +	pcie->pex_clk_supply = devm_regulator_get(pcie->dev, "pex-clk");
> +	if (IS_ERR(pcie->pex_clk_supply))
> +		return PTR_ERR(pcie->pex_clk_supply);

Oh, I guess the regulator_get() calls are already strict.

> +static int tegra_pcie_add_port(struct tegra_pcie *pcie, struct device_node *np)

> +	port = devm_kzalloc(pcie->dev, sizeof(*port), GFP_KERNEL);
> +	if (!port)
> +		return -ENOMEM;
> +
> +	INIT_LIST_HEAD(&port->list);
> +	port->index = index;
> +	port->pcie = pcie;
> +
> +	port->base = devm_request_and_ioremap(pcie->dev, &regs);
> +	if (!port->base)
> +		return -EADDRNOTAVAIL;
> +
> +	if (!tegra_pcie_port_check_link(port)) {
> +		dev_info(pcie->dev, "link %u down, ignoring\n", port->index);

Perhaps devm_kfree(port)? Not a big leak, but equally if you don't, it's
an unreferenced memory block.

> +		return -ENODEV;
> +	}
> +
> +	list_add_tail(&port->list, &pcie->ports);
> +
> +	return 0;
> +}

WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 10/14] PCI: tegra: Move PCIe driver to drivers/pci/host
Date: Thu, 10 Jan 2013 17:48:46 -0700	[thread overview]
Message-ID: <50EF616E.7040609@wwwdotorg.org> (raw)
In-Reply-To: <1357764194-12677-11-git-send-email-thierry.reding@avionic-design.de>

On 01/09/2013 01:43 PM, Thierry Reding wrote:
> Move the PCIe driver from arch/arm/mach-tegra into the drivers/pci/host
> directory. The motivation is to collect various host controller drivers
> in the same location in order to facilitate refactoring.
> 
> The Tegra PCIe driver has been largely rewritten, both in order to turn
> it into a proper platform driver and to add MSI (based on code by
> Krishna Kishore <kthota@nvidia.com>) as well as device tree support.

> diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c

>  static void __init trimslice_init(void)
>  {
>  #ifdef CONFIG_TEGRA_PCI
> -	int ret;
> -
> -	ret = tegra_pcie_init(true, true);
> -	if (ret)
> -		pr_err("tegra_pci_init() failed: %d\n", ret);
> +	platform_device_register(&tegra_pcie_device);

That struct doesn't actually exist anywhere; only an extern definition
is added (and that extern definition isn't removed by patch 14 either).

> diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig

> +config PCI_TEGRA
> +	bool "NVIDIA Tegra PCIe controller"
> +	depends on ARCH_TEGRA_2x_SOC

Perhaps depend on ARCH_TEGRA; that will save churn once this is ported
to Tegra30, and shouldn't cause any problems before then.

> diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c

> +#define AFI_INTR_CODE		0xb8
> +#define  AFI_INTR_CODE_MASK	0xf
> +#define  AFI_INTR_MASTER_ABORT	4
> +#define  AFI_INTR_LEGACY	6

Adding defines for at least some other codes here, would help further
below ...

> +static irqreturn_t tegra_pcie_isr(int irq, void *arg)

> +	if (code == AFI_INTR_MASTER_ABORT) {
> +		dev_dbg(pcie->dev, "%s, signature: %08x\n", err_msg[code],
> +			signature);
> +	} else
> +		dev_err(pcie->dev, "%s, signature: %08x\n", err_msg[code],
> +			signature);
> +
> +	if (code == 3 || code == 4 || code == 7) {

... i.e. here.

> +		u32 fpci = afi_readl(pcie, AFI_UPPER_FPCI_ADDRESS) & 0xff;
> +		u64 address = (u64)fpci << 32 | (signature & 0xfffffffc);
> +		dev_dbg(pcie->dev, "  FPCI address: %10llx\n", address);

I'd suggest making that dev_err(), or at least something higher than
debug, since the message indicating the error happened is dev_err(), so
the complete details may as well be available since they're small.

> +static int tegra_pcie_enable_controller(struct tegra_pcie *pcie)
> +{
> +	unsigned int timeout;
> +	unsigned long value;
> +
> +	/* enable dual controller and both ports */
> +	value = afi_readl(pcie, AFI_PCIE_CONFIG);
> +	value &= ~(AFI_PCIE_CONFIG_PCIEC0_DISABLE_DEVICE |
> +		   AFI_PCIE_CONFIG_PCIEC1_DISABLE_DEVICE |
> +		   AFI_PCIE_CONFIG_SM2TMS0_XBAR_CONFIG_MASK);
> +	value |= AFI_PCIE_CONFIG_SM2TMS0_XBAR_CONFIG_DUAL;
> +	afi_writel(pcie, value, AFI_PCIE_CONFIG);

Eventually, we should probably derive the port enables from the state of
the root port DT nodes, so that we can disable some and presumably save
a little power. Also, I notice that the nvidia,num-lanes property isn't
implemented yet. Still, we can probably take care of this later.

> +static void tegra_pcie_power_off(struct tegra_pcie *pcie)

> +	if (!IS_ERR_OR_NULL(pcie->pex_clk_supply)) {

Hmm. I think we should make supplies mandatory; it doesn't make sense
for regulator support to be disabled on Tegra, and where a specific
board doesn't actually have a regulator, you're supposed to provide a
dummy fixed regulator so the driver doesn't have to care.

The same comment obviously applies to tegra_pcie_power_on() and wherever
regulator_get() happens.

> +static int tegra_pcie_parse_dt(struct tegra_pcie *pcie)

> +	pcie->vdd_supply = devm_regulator_get(pcie->dev, "vdd");
> +	if (IS_ERR(pcie->vdd_supply))
> +		return PTR_ERR(pcie->vdd_supply);
> +
> +	pcie->pex_clk_supply = devm_regulator_get(pcie->dev, "pex-clk");
> +	if (IS_ERR(pcie->pex_clk_supply))
> +		return PTR_ERR(pcie->pex_clk_supply);

Oh, I guess the regulator_get() calls are already strict.

> +static int tegra_pcie_add_port(struct tegra_pcie *pcie, struct device_node *np)

> +	port = devm_kzalloc(pcie->dev, sizeof(*port), GFP_KERNEL);
> +	if (!port)
> +		return -ENOMEM;
> +
> +	INIT_LIST_HEAD(&port->list);
> +	port->index = index;
> +	port->pcie = pcie;
> +
> +	port->base = devm_request_and_ioremap(pcie->dev, &regs);
> +	if (!port->base)
> +		return -EADDRNOTAVAIL;
> +
> +	if (!tegra_pcie_port_check_link(port)) {
> +		dev_info(pcie->dev, "link %u down, ignoring\n", port->index);

Perhaps devm_kfree(port)? Not a big leak, but equally if you don't, it's
an unreferenced memory block.

> +		return -ENODEV;
> +	}
> +
> +	list_add_tail(&port->list, &pcie->ports);
> +
> +	return 0;
> +}

  parent reply	other threads:[~2013-01-11  0:48 UTC|newest]

Thread overview: 250+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-09 20:43 [PATCH 00/14] Rewrite Tegra PCIe driver Thierry Reding
2013-01-09 20:43 ` Thierry Reding
2013-01-09 20:43 ` [PATCH 01/14] of/pci: Provide support for parsing PCI DT ranges property Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-11  0:06   ` Stephen Warren
2013-01-11  0:06     ` Stephen Warren
2013-01-11  4:02     ` Thierry Reding
2013-01-11  4:02       ` Thierry Reding
2013-01-11  4:02       ` Thierry Reding
2013-01-09 20:43 ` [PATCH 02/14] of/pci: Add of_pci_get_devfn() function Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-11  0:09   ` Stephen Warren
2013-01-11  0:09     ` Stephen Warren
2013-01-11  0:09     ` Stephen Warren
2013-01-11  4:06     ` Thierry Reding
2013-01-11  4:06       ` Thierry Reding
2013-01-09 20:43 ` [PATCH 03/14] of/pci: Add of_pci_get_bus() function Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43 ` [PATCH 04/14] of/pci: Add of_pci_parse_bus_range() function Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43 ` [PATCH 05/14] lib: Add I/O map cache implementation Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 21:19   ` Arnd Bergmann
2013-01-09 21:19     ` Arnd Bergmann
2013-01-09 21:19     ` Arnd Bergmann
2013-01-09 21:54     ` Thierry Reding
2013-01-09 21:54       ` Thierry Reding
2013-01-09 22:10       ` Arnd Bergmann
2013-01-09 22:10         ` Arnd Bergmann
2013-01-09 22:10         ` Arnd Bergmann
2013-01-09 23:12         ` Stephen Warren
2013-01-09 23:12           ` Stephen Warren
2013-01-09 23:12           ` Stephen Warren
2013-01-09 23:17           ` Jason Gunthorpe
2013-01-09 23:17             ` Jason Gunthorpe
2013-01-10  7:19             ` Thierry Reding
2013-01-10  7:19               ` Thierry Reding
2013-01-10  7:19               ` Thierry Reding
2013-01-10  9:17               ` Arnd Bergmann
2013-01-10  9:17                 ` Arnd Bergmann
2013-01-10  9:17                 ` Arnd Bergmann
2013-01-10 10:25                 ` Thierry Reding
2013-01-10 10:25                   ` Thierry Reding
2013-01-10 10:25                   ` Thierry Reding
2013-01-10 18:20                   ` Jason Gunthorpe
2013-01-10 18:20                     ` Jason Gunthorpe
2013-01-10 18:20                     ` Jason Gunthorpe
2013-01-10 18:55                     ` Thierry Reding
2013-01-10 18:55                       ` Thierry Reding
2013-01-10 18:55                       ` Thierry Reding
2013-01-10 19:03                       ` Thierry Reding
2013-01-10 19:03                         ` Thierry Reding
2013-01-10 19:24                         ` Jason Gunthorpe
2013-01-10 19:24                           ` Jason Gunthorpe
2013-01-10 20:20                           ` Thierry Reding
2013-01-10 20:20                             ` Thierry Reding
2013-01-10 20:20                             ` Thierry Reding
2013-01-10 21:06                             ` Jason Gunthorpe
2013-01-10 21:06                               ` Jason Gunthorpe
2013-01-10 21:06                               ` Jason Gunthorpe
2013-01-16 10:18                           ` Thierry Reding
2013-01-16 10:18                             ` Thierry Reding
2013-01-16 10:18                             ` Thierry Reding
2013-01-16 11:25                             ` Russell King - ARM Linux
2013-01-16 11:25                               ` Russell King - ARM Linux
2013-01-16 11:25                               ` Russell King - ARM Linux
2013-01-16 11:52                               ` Thierry Reding
2013-01-16 11:52                                 ` Thierry Reding
2013-01-16 11:52                                 ` Thierry Reding
2013-01-10 18:26                   ` Arnd Bergmann
2013-01-10 18:26                     ` Arnd Bergmann
2013-01-10 18:26                     ` Arnd Bergmann
2013-01-10 18:57                     ` Thierry Reding
2013-01-10 18:57                       ` Thierry Reding
2013-01-10 18:57                       ` Thierry Reding
2013-01-10  7:10         ` Thierry Reding
2013-01-10  7:10           ` Thierry Reding
2013-01-10  7:10           ` Thierry Reding
2013-01-09 21:28   ` Russell King - ARM Linux
2013-01-09 21:28     ` Russell King - ARM Linux
2013-01-09 21:28     ` Russell King - ARM Linux
2013-01-09 21:57     ` Thierry Reding
2013-01-09 21:57       ` Thierry Reding
2013-01-09 21:57       ` Thierry Reding
2013-01-09 20:43 ` [PATCH 06/14] ARM: pci: Keep pci_common_init() around after init Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-02-05 20:41   ` Thierry Reding
2013-02-05 20:41     ` Thierry Reding
2013-02-05 20:41     ` Thierry Reding
2013-02-06 16:30     ` Russell King - ARM Linux
2013-02-06 16:30       ` Russell King - ARM Linux
2013-02-06 16:30       ` Russell King - ARM Linux
2013-02-06 19:35       ` Thierry Reding
2013-02-06 19:35         ` Thierry Reding
2013-02-06 19:35         ` Thierry Reding
2013-02-06  8:36   ` Thomas Petazzoni
2013-02-06  8:36     ` Thomas Petazzoni
2013-02-06  8:36     ` Thomas Petazzoni
2013-02-06 16:38   ` Linus Walleij
2013-02-06 16:38     ` Linus Walleij
2013-02-06 16:38     ` Linus Walleij
2013-02-07  0:54     ` Arnd Bergmann
2013-02-07  0:54       ` Arnd Bergmann
2013-02-06 17:07       ` Linus Walleij
2013-02-06 17:07         ` Linus Walleij
2013-02-06 17:07         ` Linus Walleij
2013-02-07  1:20         ` Arnd Bergmann
2013-02-07  1:20           ` Arnd Bergmann
2013-02-07  1:20           ` Arnd Bergmann
2013-01-09 20:43 ` [PATCH 07/14] ARM: pci: Allow passing per-controller private data Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43 ` [PATCH 08/14] ARM: tegra: Move tegra_pcie_xclk_clamp() to PMC Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43 ` [PATCH 09/14] ARM: tegra: Move pmc.h to include/mach Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-11  0:15   ` Stephen Warren
2013-01-11  0:15     ` Stephen Warren
2013-01-11  0:15     ` Stephen Warren
2013-01-11  4:08     ` Thierry Reding
2013-01-11  4:08       ` Thierry Reding
2013-01-11  4:08       ` Thierry Reding
2013-01-09 20:43 ` [PATCH 10/14] PCI: tegra: Move PCIe driver to drivers/pci/host Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 21:22   ` Arnd Bergmann
2013-01-09 21:22     ` Arnd Bergmann
2013-01-09 21:22     ` Arnd Bergmann
2013-01-09 21:58     ` Thierry Reding
2013-01-09 21:58       ` Thierry Reding
2013-01-09 21:58       ` Thierry Reding
2013-01-09 22:03       ` Arnd Bergmann
2013-01-09 22:03         ` Arnd Bergmann
2013-01-10 23:54   ` Stephen Warren
2013-01-10 23:54     ` Stephen Warren
2013-01-11  3:40     ` Thierry Reding
2013-01-11  3:40       ` Thierry Reding
2013-01-11 15:36       ` Arnd Bergmann
2013-01-11 15:36         ` Arnd Bergmann
2013-01-11 15:36         ` Arnd Bergmann
2013-01-11 15:45         ` Thierry Reding
2013-01-11 15:45           ` Thierry Reding
2013-01-11 15:45           ` Thierry Reding
2013-01-12 12:36           ` Thierry Reding
2013-01-12 12:36             ` Thierry Reding
2013-01-12 12:36             ` Thierry Reding
2013-01-12 21:12             ` Arnd Bergmann
2013-01-12 21:12               ` Arnd Bergmann
2013-01-13  9:58               ` Thierry Reding
2013-01-13  9:58                 ` Thierry Reding
2013-01-14  9:57                 ` Andrew Murray
2013-01-14  9:57                   ` Andrew Murray
2013-01-14  9:57                   ` Andrew Murray
2013-01-15 12:08                   ` Thierry Reding
2013-01-15 12:08                     ` Thierry Reding
2013-01-15 12:08                     ` Thierry Reding
2013-01-15 12:44                     ` Arnd Bergmann
2013-01-15 12:44                       ` Arnd Bergmann
2013-01-15 15:40                       ` Andrew Murray
2013-01-15 15:40                         ` Andrew Murray
2013-01-15 15:40                         ` Andrew Murray
2013-01-15 21:14                         ` Thierry Reding
2013-01-15 21:14                           ` Thierry Reding
2013-01-15 21:14                           ` Thierry Reding
2013-01-16 14:00                           ` Arnd Bergmann
2013-01-16 14:00                             ` Arnd Bergmann
2013-01-16 16:17                             ` Andrew Murray
2013-01-16 16:17                               ` Andrew Murray
2013-01-16 18:31                               ` Thierry Reding
2013-01-16 18:31                                 ` Thierry Reding
2013-01-17 15:42                                 ` Andrew Murray
2013-01-17 15:42                                   ` Andrew Murray
2013-01-17 16:05                                   ` Thierry Reding
2013-01-17 16:05                                     ` Thierry Reding
2013-01-17 16:05                                     ` Thierry Reding
2013-01-17 16:22                                     ` Andrew Murray
2013-01-17 16:22                                       ` Andrew Murray
2013-01-17 20:30                                       ` Thierry Reding
2013-01-17 20:30                                         ` Thierry Reding
2013-01-17 20:30                                         ` Thierry Reding
2013-01-18  9:18                                         ` Andrew Murray
2013-01-18  9:18                                           ` Andrew Murray
2013-01-22 19:29                                       ` Jason Gunthorpe
2013-01-22 19:29                                         ` Jason Gunthorpe
2013-01-22 19:29                                         ` Jason Gunthorpe
2013-01-29 13:31                                         ` Andrew Murray
2013-01-29 13:31                                           ` Andrew Murray
2013-01-11  0:48   ` Stephen Warren [this message]
2013-01-11  0:48     ` Stephen Warren
2013-01-11  0:48     ` Stephen Warren
2013-01-11  3:52     ` Thierry Reding
2013-01-11  3:52       ` Thierry Reding
2013-01-11  3:52       ` Thierry Reding
2013-01-11 20:34       ` Stephen Warren
2013-01-11 20:34         ` Stephen Warren
2013-01-18  9:56   ` Andrew Murray
2013-01-18  9:56     ` Andrew Murray
2013-01-18 10:09     ` Thierry Reding
2013-01-18 10:09       ` Thierry Reding
2013-01-18 10:09       ` Thierry Reding
2013-02-13 23:11   ` Thomas Petazzoni
2013-02-13 23:11     ` Thomas Petazzoni
2013-02-13 23:11     ` Thomas Petazzoni
2013-01-09 20:43 ` [PATCH 11/14] ARM: tegra: tamonten: Add PCIe support Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 21:23   ` Arnd Bergmann
2013-01-09 21:23     ` Arnd Bergmann
2013-01-09 21:23     ` Arnd Bergmann
2013-01-10 20:21     ` Thierry Reding
2013-01-10 20:21       ` Thierry Reding
2013-01-10 20:21       ` Thierry Reding
2013-01-09 20:43 ` [PATCH 12/14] ARM: tegra: tec: " Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-11  0:22   ` Stephen Warren
2013-01-11  0:22     ` Stephen Warren
2013-01-11  0:22     ` Stephen Warren
2013-01-11  4:34     ` Thierry Reding
2013-01-11  4:34       ` Thierry Reding
2013-01-09 20:43 ` [PATCH 13/14] ARM: tegra: harmony: Initialize PCIe from DT Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-10 23:58   ` Stephen Warren
2013-01-10 23:58     ` Stephen Warren
2013-01-10 23:58     ` Stephen Warren
2013-01-09 20:43 ` [PATCH 14/14] ARM: tegra: trimslice: " Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-09 20:43   ` Thierry Reding
2013-01-10 23:56   ` Stephen Warren
2013-01-10 23:56     ` Stephen Warren
2013-01-10 23:56     ` Stephen Warren
2013-01-11 18:48     ` Thierry Reding
2013-01-11 18:48       ` Thierry Reding
2013-01-11 18:48       ` Thierry Reding
2013-01-09 21:25 ` [PATCH 00/14] Rewrite Tegra PCIe driver Thomas Petazzoni
2013-01-09 21:25   ` Thomas Petazzoni
2013-01-09 21:25   ` Thomas Petazzoni
2013-01-10  6:55   ` Thierry Reding
2013-01-10  6:55     ` Thierry Reding
2013-01-10  6:55     ` Thierry Reding
2013-01-10  8:34     ` Thomas Petazzoni
2013-01-10  8:34       ` Thomas Petazzoni
2013-01-28 18:15 ` Bjorn Helgaas
2013-01-28 18:15   ` Bjorn Helgaas
     [not found] ` <1357764194-12677-1-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2013-03-06 18:16   ` Murali Karicheri

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=50EF616E.7040609@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=andrew.murray@arm.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=rob.herring@calxeda.com \
    --cc=thierry.reding@avionic-design.de \
    --cc=thomas.petazzoni@free-electrons.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.