* [PATCH v3 0/2] arm: pcibios: remove pci_sys_data domain
@ 2014-11-21 11:29 Lorenzo Pieralisi
2014-11-21 11:29 ` [PATCH v3 1/2] arm: cns3xxx: pci: remove artificial dependency on " Lorenzo Pieralisi
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Lorenzo Pieralisi @ 2014-11-21 11:29 UTC (permalink / raw)
To: linux-pci, linux-arm-kernel
Cc: Lorenzo Pieralisi, Krzysztof Halasa, Arnd Bergmann, Phil Edworthy,
Jason Gunthorpe, Jingoo Han, Bjorn Helgaas, Russell King,
Mohit Kumar
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(-)
--
2.1.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [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-pci, linux-arm-kernel
Cc: Lorenzo Pieralisi, Krzysztof Halasa, Arnd Bergmann
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-pci, linux-arm-kernel
Cc: Lorenzo Pieralisi, Arnd Bergmann, Phil Edworthy, Jason Gunthorpe,
Jingoo Han, Bjorn Helgaas, Russell King, Mohit Kumar
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
* Re: [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: Lorenzo Pieralisi
Cc: linux-pci, linux-arm-kernel, Krzysztof Halasa, Arnd Bergmann,
Phil Edworthy, Jason Gunthorpe, Jingoo Han, Russell King,
Mohit Kumar
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
* Re: [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: Lorenzo Pieralisi
Cc: linux-pci, linux-arm-kernel, Krzysztof Halasa, Arnd Bergmann,
Phil Edworthy, Jason Gunthorpe, Jingoo Han, Russell King,
Mohit Kumar, Jason Cooper, Simon Horman, Thomas Petazzoni
[+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
* Re: [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: Bjorn Helgaas
Cc: Lorenzo Pieralisi, linux-pci, linux-arm-kernel, Krzysztof Halasa,
Arnd Bergmann, Phil Edworthy, Jason Gunthorpe, Jingoo Han,
Mohit Kumar
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
* Re: [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: Lorenzo Pieralisi
Cc: linux-pci, linux-arm-kernel, Arnd Bergmann, Phil Edworthy,
Jingoo Han, Bjorn Helgaas, Russell King, Mohit Kumar
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
* Re: [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: Russell King - ARM Linux
Cc: Lorenzo Pieralisi, linux-pci@vger.kernel.org, linux-arm,
Krzysztof Halasa, Arnd Bergmann, Phil Edworthy, Jason Gunthorpe,
Jingoo Han, Mohit Kumar
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
* Re: [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: Lorenzo Pieralisi
Cc: linux-pci, linux-arm-kernel, Krzysztof Halasa, Arnd Bergmann,
Phil Edworthy, Jason Gunthorpe, Jingoo Han, Bjorn Helgaas,
Russell King, Mohit Kumar
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
* Re: [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: Murali Karicheri
Cc: Lorenzo Pieralisi, linux-pci, linux-arm-kernel, Krzysztof Halasa,
Phil Edworthy, Jason Gunthorpe, Jingoo Han, Bjorn Helgaas,
Russell King, Mohit Kumar
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
* Re: [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: Murali Karicheri
Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
Krzysztof Halasa, Arnd Bergmann, Phil Edworthy, Jason Gunthorpe,
Jingoo Han, Bjorn Helgaas, Russell King, Mohit Kumar
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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [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: Arnd Bergmann
Cc: Lorenzo Pieralisi, linux-pci, linux-arm-kernel, Krzysztof Halasa,
Phil Edworthy, Jason Gunthorpe, Jingoo Han, Bjorn Helgaas,
Russell King, Mohit Kumar
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
end of thread, other threads:[~2014-12-19 15:23 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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-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-15 23:56 ` Bjorn Helgaas
2014-12-16 0:08 ` Russell King - ARM Linux
2014-12-16 0:35 ` Bjorn Helgaas
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).