* [PATCH v3 1/2] arm: cns3xxx: pci: remove artificial dependency on pci_sys_data domain
2014-11-21 11:29 [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Lorenzo Pieralisi
@ 2014-11-21 11:29 ` Lorenzo Pieralisi
2014-11-21 11:29 ` [PATCH v3 2/2] arm: pcibios: move to generic PCI domains Lorenzo Pieralisi
` (2 subsequent siblings)
3 siblings, 0 replies; 12+ messages in thread
From: Lorenzo Pieralisi @ 2014-11-21 11:29 UTC (permalink / raw)
To: linux-arm-kernel
On cns3xxx platforms the PCI controller probing code relies on an
artificial dependency on the domain number to look-up the internal
data structures.
This patch reworks the host controller control data structure and
adds a domain equivalent field named port in it so that the dependency on
pci_sys_data domain field can be eventually removed.
Acked-by: Krzysztof Ha?asa <khalasa@piap.pl>
Cc: Krzysztof Halasa <khalasa@piap.pl>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[lp: added commit log, removed pci_sys_data domain references]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
---
arch/arm/mach-cns3xxx/pcie.c | 40 +++++++++++++++++-----------------------
1 file changed, 17 insertions(+), 23 deletions(-)
diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
index 45d6bd0..f6bf9f6 100644
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -30,18 +30,15 @@ struct cns3xxx_pcie {
unsigned int irqs[2];
struct resource res_io;
struct resource res_mem;
- struct hw_pci hw_pci;
-
+ int port;
bool linked;
};
-static struct cns3xxx_pcie cns3xxx_pcie[]; /* forward decl. */
-
static struct cns3xxx_pcie *sysdata_to_cnspci(void *sysdata)
{
struct pci_sys_data *root = sysdata;
- return &cns3xxx_pcie[root->domain];
+ return root->private_data;
}
static struct cns3xxx_pcie *pdev_to_cnspci(const struct pci_dev *dev)
@@ -192,13 +189,7 @@ static struct cns3xxx_pcie cns3xxx_pcie[] = {
.flags = IORESOURCE_MEM,
},
.irqs = { IRQ_CNS3XXX_PCIE0_RC, IRQ_CNS3XXX_PCIE0_DEVICE, },
- .hw_pci = {
- .domain = 0,
- .nr_controllers = 1,
- .ops = &cns3xxx_pcie_ops,
- .setup = cns3xxx_pci_setup,
- .map_irq = cns3xxx_pcie_map_irq,
- },
+ .port = 0,
},
[1] = {
.host_regs = (void __iomem *)CNS3XXX_PCIE1_HOST_BASE_VIRT,
@@ -217,19 +208,13 @@ static struct cns3xxx_pcie cns3xxx_pcie[] = {
.flags = IORESOURCE_MEM,
},
.irqs = { IRQ_CNS3XXX_PCIE1_RC, IRQ_CNS3XXX_PCIE1_DEVICE, },
- .hw_pci = {
- .domain = 1,
- .nr_controllers = 1,
- .ops = &cns3xxx_pcie_ops,
- .setup = cns3xxx_pci_setup,
- .map_irq = cns3xxx_pcie_map_irq,
- },
+ .port = 1,
},
};
static void __init cns3xxx_pcie_check_link(struct cns3xxx_pcie *cnspci)
{
- int port = cnspci->hw_pci.domain;
+ int port = cnspci->port;
u32 reg;
unsigned long time;
@@ -260,9 +245,9 @@ static void __init cns3xxx_pcie_check_link(struct cns3xxx_pcie *cnspci)
static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci)
{
- int port = cnspci->hw_pci.domain;
+ int port = cnspci->port;
struct pci_sys_data sd = {
- .domain = port,
+ .private_data = cnspci,
};
struct pci_bus bus = {
.number = 0,
@@ -323,6 +308,14 @@ static int cns3xxx_pcie_abort_handler(unsigned long addr, unsigned int fsr,
void __init cns3xxx_pcie_init_late(void)
{
int i;
+ void *private_data;
+ struct hw_pci hw_pci = {
+ .nr_controllers = 1,
+ .ops = &cns3xxx_pcie_ops,
+ .setup = cns3xxx_pci_setup,
+ .map_irq = cns3xxx_pcie_map_irq,
+ .private_data = &private_data,
+ };
pcibios_min_io = 0;
pcibios_min_mem = 0;
@@ -335,7 +328,8 @@ void __init cns3xxx_pcie_init_late(void)
cns3xxx_pwr_soft_rst(0x1 << PM_SOFT_RST_REG_OFFST_PCIE(i));
cns3xxx_pcie_check_link(&cns3xxx_pcie[i]);
cns3xxx_pcie_hw_init(&cns3xxx_pcie[i]);
- pci_common_init(&cns3xxx_pcie[i].hw_pci);
+ private_data = &cns3xxx_pcie[i];
+ pci_common_init(&hw_pci);
}
pci_assign_unassigned_resources();
--
2.1.2
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v3 2/2] arm: pcibios: move to generic PCI domains
2014-11-21 11:29 [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Lorenzo Pieralisi
2014-11-21 11:29 ` [PATCH v3 1/2] arm: cns3xxx: pci: remove artificial dependency on " Lorenzo Pieralisi
@ 2014-11-21 11:29 ` Lorenzo Pieralisi
2014-12-16 0:18 ` Jason Gunthorpe
2014-12-15 23:52 ` [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Bjorn Helgaas
2014-12-18 23:12 ` Murali Karicheri
3 siblings, 1 reply; 12+ messages in thread
From: Lorenzo Pieralisi @ 2014-11-21 11:29 UTC (permalink / raw)
To: linux-arm-kernel
Most if not all ARM PCI host controller device drivers either ignore the
domain field in the pci_sys_data structure or just increment it every
time a host controller is probed, using it as a domain counter.
Therefore, instead of relying on pci_sys_data to stash the domain number
in a standard location, ARM pcibios code can be moved to the newly
introduced generic PCI domains code, implemented in commits:
commit 41e5c0f81d3e676d671d96a0a1fafb27abfbd9
("of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()")
commit 670ba0c8883b576d0aec28bd7a838358a4be1
("PCI: Add generic domain handling")
ARM code is made to select PCI_DOMAINS_GENERIC by default, which
builds core PCI code that assigns the domain number through the
generic function:
void pci_bus_assign_domain_nr(...)
that relies on a DT property to define the domain number or falls back to
a counter according to a predefined logic; its usage replaces the current
domain assignment code in PCI host controllers present in the kernel.
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Phil Edworthy <phil.edworthy@renesas.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Phil Edworthy <phil.edworthy@renesas.com>
Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Jingoo Han <jg1.han@samsung.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Mohit Kumar <mohit.kumar@st.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tested-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Yijing Wang <wangyijing@huawei.com>
---
arch/arm/Kconfig | 3 +++
arch/arm/include/asm/mach/pci.h | 6 ------
arch/arm/include/asm/pci.h | 7 -------
arch/arm/kernel/bios32.c | 3 ---
drivers/pci/host/pci-mvebu.c | 15 ++-------------
drivers/pci/host/pcie-designware.c | 3 ---
drivers/pci/host/pcie-rcar.c | 3 ---
7 files changed, 5 insertions(+), 35 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 89c4b5c..29544f0 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1292,6 +1292,9 @@ config PCI_DOMAINS
bool
depends on PCI
+config PCI_DOMAINS_GENERIC
+ def_bool PCI_DOMAINS
+
config PCI_NANOENGINE
bool "BSE nanoEngine PCI support"
depends on SA1100_NANOENGINE
diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h
index 7fc4278..112b770 100644
--- a/arch/arm/include/asm/mach/pci.h
+++ b/arch/arm/include/asm/mach/pci.h
@@ -19,9 +19,6 @@ struct pci_bus;
struct device;
struct hw_pci {
-#ifdef CONFIG_PCI_DOMAINS
- int domain;
-#endif
struct pci_ops *ops;
int nr_controllers;
void **private_data;
@@ -44,9 +41,6 @@ struct hw_pci {
* Per-controller structure
*/
struct pci_sys_data {
-#ifdef CONFIG_PCI_DOMAINS
- int domain;
-#endif
struct list_head node;
int busnr; /* primary bus number */
u64 mem_offset; /* bus->cpu memory mapping offset */
diff --git a/arch/arm/include/asm/pci.h b/arch/arm/include/asm/pci.h
index 7e95d85..585dc33 100644
--- a/arch/arm/include/asm/pci.h
+++ b/arch/arm/include/asm/pci.h
@@ -18,13 +18,6 @@ static inline int pcibios_assign_all_busses(void)
}
#ifdef CONFIG_PCI_DOMAINS
-static inline int pci_domain_nr(struct pci_bus *bus)
-{
- struct pci_sys_data *root = bus->sysdata;
-
- return root->domain;
-}
-
static inline int pci_proc_domain(struct pci_bus *bus)
{
return pci_domain_nr(bus);
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index 17a26c1..76a76ec 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -468,9 +468,6 @@ static void pcibios_init_hw(struct device *parent, struct hw_pci *hw,
if (!sys)
panic("PCI: unable to allocate sys data!");
-#ifdef CONFIG_PCI_DOMAINS
- sys->domain = hw->domain;
-#endif
sys->busnr = busnr;
sys->swizzle = hw->swizzle;
sys->map_irq = hw->map_irq;
diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c
index b1315e1..dc2ed4d 100644
--- a/drivers/pci/host/pci-mvebu.c
+++ b/drivers/pci/host/pci-mvebu.c
@@ -101,9 +101,7 @@ struct mvebu_pcie {
struct mvebu_pcie_port *ports;
struct msi_chip *msi;
struct resource io;
- char io_name[30];
struct resource realio;
- char mem_name[30];
struct resource mem;
struct resource busn;
int nports;
@@ -722,18 +720,9 @@ static int mvebu_pcie_setup(int nr, struct pci_sys_data *sys)
{
struct mvebu_pcie *pcie = sys_to_pcie(sys);
int i;
- int domain = 0;
-#ifdef CONFIG_PCI_DOMAINS
- domain = sys->domain;
-#endif
-
- snprintf(pcie->mem_name, sizeof(pcie->mem_name), "PCI MEM %04x",
- domain);
- pcie->mem.name = pcie->mem_name;
-
- snprintf(pcie->io_name, sizeof(pcie->io_name), "PCI I/O %04x", domain);
- pcie->realio.name = pcie->io_name;
+ pcie->mem.name = "PCI MEM";
+ pcie->realio.name = "PCI I/O";
if (request_resource(&iomem_resource, &pcie->mem))
return 0;
diff --git a/drivers/pci/host/pcie-designware.c b/drivers/pci/host/pcie-designware.c
index dfed00a..6790b87 100644
--- a/drivers/pci/host/pcie-designware.c
+++ b/drivers/pci/host/pcie-designware.c
@@ -502,9 +502,6 @@ int __init dw_pcie_host_init(struct pcie_port *pp)
dw_pci.private_data = (void **)&pp;
pci_common_init_dev(pp->dev, &dw_pci);
-#ifdef CONFIG_PCI_DOMAINS
- dw_pci.domain++;
-#endif
return 0;
}
diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
index 61158e0..b6b859e 100644
--- a/drivers/pci/host/pcie-rcar.c
+++ b/drivers/pci/host/pcie-rcar.c
@@ -404,9 +404,6 @@ static void rcar_pcie_enable(struct rcar_pcie *pcie)
rcar_pci.private_data = (void **)&pcie;
pci_common_init_dev(&pdev->dev, &rcar_pci);
-#ifdef CONFIG_PCI_DOMAINS
- rcar_pci.domain++;
-#endif
}
static int phy_wait_for_ack(struct rcar_pcie *pcie)
--
2.1.2
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v3 2/2] arm: pcibios: move to generic PCI domains
2014-11-21 11:29 ` [PATCH v3 2/2] arm: pcibios: move to generic PCI domains Lorenzo Pieralisi
@ 2014-12-16 0:18 ` Jason Gunthorpe
0 siblings, 0 replies; 12+ messages in thread
From: Jason Gunthorpe @ 2014-12-16 0:18 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Nov 21, 2014 at 11:29:26AM +0000, Lorenzo Pieralisi wrote:
> diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c
> index b1315e1..dc2ed4d 100644
> +++ b/drivers/pci/host/pci-mvebu.c
> @@ -101,9 +101,7 @@ struct mvebu_pcie {
> struct mvebu_pcie_port *ports;
> struct msi_chip *msi;
> struct resource io;
> - char io_name[30];
> struct resource realio;
> - char mem_name[30];
> struct resource mem;
> struct resource busn;
> int nports;
> @@ -722,18 +720,9 @@ static int mvebu_pcie_setup(int nr, struct pci_sys_data *sys)
> {
> struct mvebu_pcie *pcie = sys_to_pcie(sys);
> int i;
> - int domain = 0;
>
> -#ifdef CONFIG_PCI_DOMAINS
> - domain = sys->domain;
> -#endif
> -
> - snprintf(pcie->mem_name, sizeof(pcie->mem_name), "PCI MEM %04x",
> - domain);
> - pcie->mem.name = pcie->mem_name;
> -
> - snprintf(pcie->io_name, sizeof(pcie->io_name), "PCI I/O %04x", domain);
> - pcie->realio.name = pcie->io_name;
> + pcie->mem.name = "PCI MEM";
> + pcie->realio.name = "PCI I/O";
>
> if (request_resource(&iomem_resource, &pcie->mem))
> return 0;
For the mvebu section:
Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Jason
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-11-21 11:29 [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Lorenzo Pieralisi
2014-11-21 11:29 ` [PATCH v3 1/2] arm: cns3xxx: pci: remove artificial dependency on " Lorenzo Pieralisi
2014-11-21 11:29 ` [PATCH v3 2/2] arm: pcibios: move to generic PCI domains Lorenzo Pieralisi
@ 2014-12-15 23:52 ` Bjorn Helgaas
2014-12-15 23:56 ` Bjorn Helgaas
2014-12-16 0:08 ` Russell King - ARM Linux
2014-12-18 23:12 ` Murali Karicheri
3 siblings, 2 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2014-12-15 23:52 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Nov 21, 2014 at 11:29:24AM +0000, Lorenzo Pieralisi wrote:
> This patchset is a v3 of a previous posting:
>
> http://www.spinics.net/lists/linux-pci/msg36502.html
>
> v2 => v3
>
> - Rebased on top of this patch dependency
> http://www.spinics.net/lists/linux-pci/msg36631.html
>
> v1 => v2 changelog
>
> - Removed stale hw_pci domain member
> - Reworked pci-mvebu domain handling according to review
> - Rebased against 3.18-rc3 and updated the logs
> - Dropped RFC status
>
> Original cover letter:
> ----
> This patchset is a first RFC stab at removing the dependency on pci_sys_data
> domain field on ARM platforms and by replacing it with generic code that
> stashes the domain value in the pci_bus control structure, introduced in
>
> commit 41e5c0f81d3e676d671d96a0a1fafb27abfbd9
> ("of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()")
>
> commit 670ba0c8883b576d0aec28bd7a838358a4be1
> ("PCI: Add generic domain handling")
>
> All the drivers converted (apart from PCIe designware, tested on iMX6SL)
> were only compile tested for lack of HW, so along some comments, testing
> and verifying that patchset does not break any existing platform are
> very appreciated.
>
> Code in drivers/pci/pci-mvebu.c has been changed to add a domain
> number to PCI resources by using the nr value coming from the setup
> pcibios32 callback, which may not be correct and should be considered
> a temporary solution waiting for review comments.
>
> The patchset removes entirely the pci_sys_data.domain field, since its
> usage is removed at the same time in the respective host controllers
> and ARM is made to select the configuration option
> CONFIG_PCI_DOMAINS_GENERIC by default, which compiles a domain_nr in the
> pci_bus structure so that the pci_domain_nr() look-up can rely on it.
>
>
> Lorenzo Pieralisi (2):
> arm: cns3xxx: pci: remove artificial dependency on pci_sys_data domain
> arm: pcibios: move to generic PCI domains
>
> arch/arm/Kconfig | 3 +++
> arch/arm/include/asm/mach/pci.h | 6 ------
> arch/arm/include/asm/pci.h | 7 -------
> arch/arm/kernel/bios32.c | 3 ---
> arch/arm/mach-cns3xxx/pcie.c | 40 ++++++++++++++++----------------------
> drivers/pci/host/pci-mvebu.c | 15 ++------------
> drivers/pci/host/pcie-designware.c | 3 ---
> drivers/pci/host/pcie-rcar.c | 3 ---
> 8 files changed, 22 insertions(+), 58 deletions(-)
I provisionally applied these to my next-pci/domain branch. This will be
rebased after v3.19-rc1.
I'd like to see acks from Thomas and/or Jason for MVEBU, and Simon for
R-Car.
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-12-15 23:52 ` [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Bjorn Helgaas
@ 2014-12-15 23:56 ` Bjorn Helgaas
2014-12-16 0:08 ` Russell King - ARM Linux
1 sibling, 0 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2014-12-15 23:56 UTC (permalink / raw)
To: linux-arm-kernel
[+cc Jason, Thomas, Simon -- no wonder there aren't acks from them :)]
On Mon, Dec 15, 2014 at 04:52:48PM -0700, Bjorn Helgaas wrote:
> On Fri, Nov 21, 2014 at 11:29:24AM +0000, Lorenzo Pieralisi wrote:
> > This patchset is a v3 of a previous posting:
> >
> > http://www.spinics.net/lists/linux-pci/msg36502.html
> >
> > v2 => v3
> >
> > - Rebased on top of this patch dependency
> > http://www.spinics.net/lists/linux-pci/msg36631.html
> >
> > v1 => v2 changelog
> >
> > - Removed stale hw_pci domain member
> > - Reworked pci-mvebu domain handling according to review
> > - Rebased against 3.18-rc3 and updated the logs
> > - Dropped RFC status
> >
> > Original cover letter:
> > ----
> > This patchset is a first RFC stab at removing the dependency on pci_sys_data
> > domain field on ARM platforms and by replacing it with generic code that
> > stashes the domain value in the pci_bus control structure, introduced in
> >
> > commit 41e5c0f81d3e676d671d96a0a1fafb27abfbd9
> > ("of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()")
> >
> > commit 670ba0c8883b576d0aec28bd7a838358a4be1
> > ("PCI: Add generic domain handling")
> >
> > All the drivers converted (apart from PCIe designware, tested on iMX6SL)
> > were only compile tested for lack of HW, so along some comments, testing
> > and verifying that patchset does not break any existing platform are
> > very appreciated.
> >
> > Code in drivers/pci/pci-mvebu.c has been changed to add a domain
> > number to PCI resources by using the nr value coming from the setup
> > pcibios32 callback, which may not be correct and should be considered
> > a temporary solution waiting for review comments.
> >
> > The patchset removes entirely the pci_sys_data.domain field, since its
> > usage is removed at the same time in the respective host controllers
> > and ARM is made to select the configuration option
> > CONFIG_PCI_DOMAINS_GENERIC by default, which compiles a domain_nr in the
> > pci_bus structure so that the pci_domain_nr() look-up can rely on it.
> >
> >
> > Lorenzo Pieralisi (2):
> > arm: cns3xxx: pci: remove artificial dependency on pci_sys_data domain
> > arm: pcibios: move to generic PCI domains
> >
> > arch/arm/Kconfig | 3 +++
> > arch/arm/include/asm/mach/pci.h | 6 ------
> > arch/arm/include/asm/pci.h | 7 -------
> > arch/arm/kernel/bios32.c | 3 ---
> > arch/arm/mach-cns3xxx/pcie.c | 40 ++++++++++++++++----------------------
> > drivers/pci/host/pci-mvebu.c | 15 ++------------
> > drivers/pci/host/pcie-designware.c | 3 ---
> > drivers/pci/host/pcie-rcar.c | 3 ---
> > 8 files changed, 22 insertions(+), 58 deletions(-)
>
> I provisionally applied these to my next-pci/domain branch. This will be
> rebased after v3.19-rc1.
>
> I'd like to see acks from Thomas and/or Jason for MVEBU, and Simon for
> R-Car.
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-12-15 23:52 ` [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Bjorn Helgaas
2014-12-15 23:56 ` Bjorn Helgaas
@ 2014-12-16 0:08 ` Russell King - ARM Linux
2014-12-16 0:35 ` Bjorn Helgaas
1 sibling, 1 reply; 12+ messages in thread
From: Russell King - ARM Linux @ 2014-12-16 0:08 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Dec 15, 2014 at 04:52:48PM -0700, Bjorn Helgaas wrote:
> I provisionally applied these to my next-pci/domain branch. This will be
> rebased after v3.19-rc1.
>
> I'd like to see acks from Thomas and/or Jason for MVEBU, and Simon for
> R-Car.
And you should also have my acked-by for the core ARM code:
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
--
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-12-16 0:08 ` Russell King - ARM Linux
@ 2014-12-16 0:35 ` Bjorn Helgaas
0 siblings, 0 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2014-12-16 0:35 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Dec 15, 2014 at 5:08 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Mon, Dec 15, 2014 at 04:52:48PM -0700, Bjorn Helgaas wrote:
>> I provisionally applied these to my next-pci/domain branch. This will be
>> rebased after v3.19-rc1.
>>
>> I'd like to see acks from Thomas and/or Jason for MVEBU, and Simon for
>> R-Car.
>
> And you should also have my acked-by for the core ARM code:
>
> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Right, thanks! Sorry I didn't notice that.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-11-21 11:29 [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Lorenzo Pieralisi
` (2 preceding siblings ...)
2014-12-15 23:52 ` [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain Bjorn Helgaas
@ 2014-12-18 23:12 ` Murali Karicheri
2014-12-18 23:25 ` Arnd Bergmann
2014-12-19 9:19 ` Lorenzo Pieralisi
3 siblings, 2 replies; 12+ messages in thread
From: Murali Karicheri @ 2014-12-18 23:12 UTC (permalink / raw)
To: linux-arm-kernel
On 11/21/2014 06:29 AM, Lorenzo Pieralisi wrote:
> This patchset is a v3 of a previous posting:
>
> http://www.spinics.net/lists/linux-pci/msg36502.html
>
> v2 => v3
>
> - Rebased on top of this patch dependency
> http://www.spinics.net/lists/linux-pci/msg36631.html
>
> v1 => v2 changelog
>
> - Removed stale hw_pci domain member
> - Reworked pci-mvebu domain handling according to review
> - Rebased against 3.18-rc3 and updated the logs
> - Dropped RFC status
>
> Original cover letter:
> ----
> This patchset is a first RFC stab at removing the dependency on pci_sys_data
> domain field on ARM platforms and by replacing it with generic code that
> stashes the domain value in the pci_bus control structure, introduced in
>
> commit 41e5c0f81d3e676d671d96a0a1fafb27abfbd9
> ("of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()")
>
> commit 670ba0c8883b576d0aec28bd7a838358a4be1
> ("PCI: Add generic domain handling")
>
> All the drivers converted (apart from PCIe designware, tested on iMX6SL)
> were only compile tested for lack of HW, so along some comments, testing
> and verifying that patchset does not break any existing platform are
> very appreciated.
>
> Code in drivers/pci/pci-mvebu.c has been changed to add a domain
> number to PCI resources by using the nr value coming from the setup
> pcibios32 callback, which may not be correct and should be considered
> a temporary solution waiting for review comments.
>
> The patchset removes entirely the pci_sys_data.domain field, since its
> usage is removed at the same time in the respective host controllers
> and ARM is made to select the configuration option
> CONFIG_PCI_DOMAINS_GENERIC by default, which compiles a domain_nr in the
> pci_bus structure so that the pci_domain_nr() look-up can rely on it.
>
Lorenzo,
I am assuming this is transparent to the user drivers of designware core
such as pci-keystone as CONFIG_PCI_DOMAINS_GENERIC is enabled by default
by ARM. Is this true ?
Murali
>
> Lorenzo Pieralisi (2):
> arm: cns3xxx: pci: remove artificial dependency on pci_sys_data domain
> arm: pcibios: move to generic PCI domains
>
> arch/arm/Kconfig | 3 +++
> arch/arm/include/asm/mach/pci.h | 6 ------
> arch/arm/include/asm/pci.h | 7 -------
> arch/arm/kernel/bios32.c | 3 ---
> arch/arm/mach-cns3xxx/pcie.c | 40 ++++++++++++++++----------------------
> drivers/pci/host/pci-mvebu.c | 15 ++------------
> drivers/pci/host/pcie-designware.c | 3 ---
> drivers/pci/host/pcie-rcar.c | 3 ---
> 8 files changed, 22 insertions(+), 58 deletions(-)
>
--
Murali Karicheri
Linux Kernel, Texas Instruments
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-12-18 23:12 ` Murali Karicheri
@ 2014-12-18 23:25 ` Arnd Bergmann
2014-12-19 15:22 ` Murali Karicheri
2014-12-19 9:19 ` Lorenzo Pieralisi
1 sibling, 1 reply; 12+ messages in thread
From: Arnd Bergmann @ 2014-12-18 23:25 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday 18 December 2014 18:12:58 Murali Karicheri wrote:
>
> I am assuming this is transparent to the user drivers of designware core
> such as pci-keystone as CONFIG_PCI_DOMAINS_GENERIC is enabled by default
> by ARM. Is this true ?
One difference is that you can now specify the domain number in DT,
but if you don't do that, it should behave exactly as befor.
Arnd
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-12-18 23:25 ` Arnd Bergmann
@ 2014-12-19 15:22 ` Murali Karicheri
0 siblings, 0 replies; 12+ messages in thread
From: Murali Karicheri @ 2014-12-19 15:22 UTC (permalink / raw)
To: linux-arm-kernel
On 12/18/2014 06:25 PM, Arnd Bergmann wrote:
> On Thursday 18 December 2014 18:12:58 Murali Karicheri wrote:
>>
>> I am assuming this is transparent to the user drivers of designware core
>> such as pci-keystone as CONFIG_PCI_DOMAINS_GENERIC is enabled by default
>> by ARM. Is this true ?
>
> One difference is that you can now specify the domain number in DT,
> but if you don't do that, it should behave exactly as befor.
>
> Arnd
Arnd,
Great! Thanks.
--
Murali Karicheri
Linux Kernel, Texas Instruments
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
2014-12-18 23:12 ` Murali Karicheri
2014-12-18 23:25 ` Arnd Bergmann
@ 2014-12-19 9:19 ` Lorenzo Pieralisi
1 sibling, 0 replies; 12+ messages in thread
From: Lorenzo Pieralisi @ 2014-12-19 9:19 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Dec 18, 2014 at 11:12:58PM +0000, Murali Karicheri wrote:
> On 11/21/2014 06:29 AM, Lorenzo Pieralisi wrote:
> > This patchset is a v3 of a previous posting:
> >
> > http://www.spinics.net/lists/linux-pci/msg36502.html
> >
> > v2 => v3
> >
> > - Rebased on top of this patch dependency
> > http://www.spinics.net/lists/linux-pci/msg36631.html
> >
> > v1 => v2 changelog
> >
> > - Removed stale hw_pci domain member
> > - Reworked pci-mvebu domain handling according to review
> > - Rebased against 3.18-rc3 and updated the logs
> > - Dropped RFC status
> >
> > Original cover letter:
> > ----
> > This patchset is a first RFC stab at removing the dependency on pci_sys_data
> > domain field on ARM platforms and by replacing it with generic code that
> > stashes the domain value in the pci_bus control structure, introduced in
> >
> > commit 41e5c0f81d3e676d671d96a0a1fafb27abfbd9
> > ("of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()")
> >
> > commit 670ba0c8883b576d0aec28bd7a838358a4be1
> > ("PCI: Add generic domain handling")
> >
> > All the drivers converted (apart from PCIe designware, tested on iMX6SL)
> > were only compile tested for lack of HW, so along some comments, testing
> > and verifying that patchset does not break any existing platform are
> > very appreciated.
> >
> > Code in drivers/pci/pci-mvebu.c has been changed to add a domain
> > number to PCI resources by using the nr value coming from the setup
> > pcibios32 callback, which may not be correct and should be considered
> > a temporary solution waiting for review comments.
> >
> > The patchset removes entirely the pci_sys_data.domain field, since its
> > usage is removed at the same time in the respective host controllers
> > and ARM is made to select the configuration option
> > CONFIG_PCI_DOMAINS_GENERIC by default, which compiles a domain_nr in the
> > pci_bus structure so that the pci_domain_nr() look-up can rely on it.
> >
> Lorenzo,
>
> I am assuming this is transparent to the user drivers of designware core
> such as pci-keystone as CONFIG_PCI_DOMAINS_GENERIC is enabled by default
> by ARM. Is this true ?
See Arnd's reply. Testing and relative tag very appreciated if you have
time.
Thank you !
Lorenzo
>
> Murali
>
> >
> > Lorenzo Pieralisi (2):
> > arm: cns3xxx: pci: remove artificial dependency on pci_sys_data domain
> > arm: pcibios: move to generic PCI domains
> >
> > arch/arm/Kconfig | 3 +++
> > arch/arm/include/asm/mach/pci.h | 6 ------
> > arch/arm/include/asm/pci.h | 7 -------
> > arch/arm/kernel/bios32.c | 3 ---
> > arch/arm/mach-cns3xxx/pcie.c | 40 ++++++++++++++++----------------------
> > drivers/pci/host/pci-mvebu.c | 15 ++------------
> > drivers/pci/host/pcie-designware.c | 3 ---
> > drivers/pci/host/pcie-rcar.c | 3 ---
> > 8 files changed, 22 insertions(+), 58 deletions(-)
> >
>
>
> --
> Murali Karicheri
> Linux Kernel, Texas Instruments
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 12+ messages in thread