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: Fri, 11 Jan 2013 13:34:36 -0700	[thread overview]
Message-ID: <50F0775C.5050204@wwwdotorg.org> (raw)
In-Reply-To: <20130111035246.GB28094@avionic-0098.adnet.avionic-design.de>

On 01/10/2013 08:52 PM, Thierry Reding wrote:
> On Thu, Jan 10, 2013 at 05:48:46PM -0700, Stephen Warren wrote:
>> 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 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.
> 
> Yes, the plan was to eventually derive the disable bits from the
> port status and setup the XBAR_CONFIG field based on the
> combination of nvidia,num-lanes properties.
> 
> I assume we should simply fail if the configuration specified by 
> nvidia,num-lanes is invalid?

Makes sense to me.

>>> +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.
> 
> Yeah, I think they can't return NULL, right? In that case I can
> just drop the extra checks in tegra_pcie_power_{on,off}().

It looks like NULL can be returned if !CONFIG_REGULATOR. The comment
in the dummy implementation implies that drivers should treat a NULL
value as valid regulator in most cases.

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: Fri, 11 Jan 2013 13:34:36 -0700	[thread overview]
Message-ID: <50F0775C.5050204@wwwdotorg.org> (raw)
In-Reply-To: <20130111035246.GB28094@avionic-0098.adnet.avionic-design.de>

On 01/10/2013 08:52 PM, Thierry Reding wrote:
> On Thu, Jan 10, 2013 at 05:48:46PM -0700, Stephen Warren wrote:
>> 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 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.
> 
> Yes, the plan was to eventually derive the disable bits from the
> port status and setup the XBAR_CONFIG field based on the
> combination of nvidia,num-lanes properties.
> 
> I assume we should simply fail if the configuration specified by 
> nvidia,num-lanes is invalid?

Makes sense to me.

>>> +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.
> 
> Yeah, I think they can't return NULL, right? In that case I can
> just drop the extra checks in tegra_pcie_power_{on,off}().

It looks like NULL can be returned if !CONFIG_REGULATOR. The comment
in the dummy implementation implies that drivers should treat a NULL
value as valid regulator in most cases.

  reply	other threads:[~2013-01-11 20:34 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
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 [this message]
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=50F0775C.5050204@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.