[PATCH part3 v12 09/10] PCI: Remove pci_bus_assign_domain_nr()

2015-07-20 Thread Yijing Wang
Now we save the domain number in pci_host_bridge, we could remove pci_bus_assign_domain_nr() and clean the domain member in pci_bus. Signed-off-by: Yijing Wang --- drivers/pci/pci.c |5 - drivers/pci/pci.h |9 - drivers/pci/probe.c | 11 +++ include/linux/pci.h

[PATCH part3 v12 06/10] PCI: Make pci_host_bridge hold sysdata in drvdata

2015-07-20 Thread Yijing Wang
Now platform specific sysdata is saved in pci_bus, and pcibios_root_bridge_prepare() need to know the sysdata. Later, we would move pcibios_root_bridge_prepare() prior to root bus creation, so we need to make pci_host_bridge hold sysdata. Signed-off-by: Yijing Wang --- arch/ia64/pci/pci.c

[PATCH part3 v12 05/10] powerpc/PCI: Rename pcibios_root_bridge_prepare() to pcibios_root_bus_prepare()

2015-07-20 Thread Yijing Wang
Pcibios_root_bridge_prepare() in powerpc set root bus speed, it's not the preparation for pci host bridge. For better separation of host bridge and root bus creation, It's need to rename it to another weak function. Signed-off-by: Yijing Wang --- arch/powerpc/include/asm/machdep.h

[PATCH part3 v12 01/10] PCI: Save domain in pci_host_bridge

2015-07-20 Thread Yijing Wang
, so introduce pci_create_root_bus_generic and pci_scan_root_bus_generic() which simply assign domain number to -1. Tested-by: Gregory CLEMENT #mvebu part Signed-off-by: Yijing Wang --- arch/alpha/kernel/pci.c|4 ++-- arch/alpha/kernel/sys_nautilus.c |2 +- arch/arm/kernel

[PATCH part3 v12 04/10] PCI: Introduce pci_host_assign_domain_nr() to assign domain

2015-07-20 Thread Yijing Wang
Introduce pci_host_assign_domain_nr() to assign domain number for pci_host_bridge. Signed-off-by: Yijing Wang --- drivers/pci/pci.c | 24 +++- drivers/pci/pci.h |1 + 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c

[PATCH part3 v12 08/10] PCI: Introduce common pci_domain_nr() and remove platform specific code

2015-07-20 Thread Yijing Wang
Now pci_host_bridge holds the domain number, we could introduce common pci_domain_nr(), and remove platform specific code. Signed-off-by: Yijing Wang --- arch/alpha/include/asm/pci.h |2 -- arch/ia64/include/asm/pci.h |1 - arch/microblaze/include/asm/pci.h |2 -- arch

[PATCH part3 v12 03/10] PCI: Remove declaration for pci_get_new_domain_nr()

2015-07-20 Thread Yijing Wang
pci_get_new_domain_nr() is only used in drivers/pci/pci.c, remove the declaration in include/linux/pci.h. Signed-off-by: Yijing Wang --- drivers/pci/pci.c |4 ++-- include/linux/pci.h |3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci.c b/drivers

[PATCH part3 v12 07/10] PCI: Create pci host bridge prior to root bus

2015-07-20 Thread Yijing Wang
Pci_host_bridge hold the domain number, we need to assign domain number prior to root bus creation, because root bus need to know the domain number to check whether it's alreay exist. Also it's preparation for separating pci_host_bridge creation from pci_create_root_bus(). Signed-off-

[PATCH part3 v12 02/10] PCI: Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h

2015-07-20 Thread Yijing Wang
pci_bus_assign_domain_nr() is only called in probe.c, Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h. Signed-off-by: Yijing Wang --- drivers/pci/pci.h |9 + include/linux/pci.h |6 -- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a

[PATCH part3 v12 10/10] IA64/PCI: Fix build warning found by kbuild test

2015-07-20 Thread Yijing Wang
ci_bus * have opaque sysdata, so IA64 specific pci_domain_nr() could get the pci_controller and return the exact domain number, but now we use common pci_domain_nr() functions, so we should fix this warning. Signed-off-by: Yijing Wang --- arch/ia64/sn/kernel/io_acpi_init.c |6 +++--- arch/i

[PATCH part3 v12 00/10] Cleanup platform pci_domain_nr()

2015-07-20 Thread Yijing Wang
wrap function pci_create_root_bus_generic() and pci_create_root_bus_generic() for arm/arm64 which enable CONFIG_PCI_DOMAINS_GENERIC. Rebased this series based 4.2-rc1 Yijing Wang (10): PCI: Save domain in pci_host_bridge PCI: Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h

[PATCH Part3 v11 3/9] PCI: Remove declaration for pci_get_new_domain_nr()

2015-05-08 Thread Yijing Wang
pci_get_new_domain_nr() is only used in drivers/pci/pci.c, remove the declaration in include/linux/pci.h. Signed-off-by: Yijing Wang --- drivers/pci/pci.c |4 ++-- include/linux/pci.h |3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci.c b/drivers

[PATCH Part3 v11 0/9] Remove platform pci_domain_nr()

2015-05-08 Thread Yijing Wang
github.com/YijingWang/linux-pci.git enumer11 Yijing Wang (9): PCI: Save domain in pci_host_bridge PCI: Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h PCI: Remove declaration for pci_get_new_domain_nr() PCI: Introduce pci_host_assign_domain_nr() to assign domain p

[PATCH Part3 v11 1/9] PCI: Save domain in pci_host_bridge

2015-05-08 Thread Yijing Wang
, so we pass meaningless -1 as the domain number. Tested-by: Gregory CLEMENT #mvebu part Signed-off-by: Yijing Wang --- arch/alpha/kernel/pci.c|4 ++-- arch/alpha/kernel/sys_nautilus.c |2 +- arch/arm/kernel/bios32.c |2 +- arch/arm/mach-dove/pcie.c

[PATCH Part3 v11 6/9] PCI: Make pci_host_bridge hold sysdata in drvdata

2015-05-08 Thread Yijing Wang
Now platform specific sysdata is saved in pci_bus, and pcibios_root_bridge_prepare() need to know the sysdata. Later, we would move pcibios_root_bridge_prepare() prior to root bus creation, so we need to make pci_host_bridge hold sysdata. Signed-off-by: Yijing Wang --- arch/ia64/pci/pci.c

[PATCH Part3 v11 4/9] PCI: Introduce pci_host_assign_domain_nr() to assign domain

2015-05-08 Thread Yijing Wang
Introduce pci_host_assign_domain_nr() to save domain number in pci_host_bridge. Signed-off-by: Yijing Wang --- drivers/pci/pci.c | 24 +++- drivers/pci/pci.h |1 + 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c

[PATCH Part3 v11 8/9] PCI: Remove platform specific pci_domain_nr()

2015-05-08 Thread Yijing Wang
Now pci_host_bridge holds the domain number, so we could eliminate all platform specific pci_domain_nr(). Signed-off-by: Yijing Wang --- arch/alpha/include/asm/pci.h |2 -- arch/ia64/include/asm/pci.h |1 - arch/microblaze/pci/pci-common.c | 11 --- arch/mips/include

[PATCH Part3 v11 5/9] powerpc/PCI: Rename pcibios_root_bridge_prepare() to pcibios_root_bus_prepare()

2015-05-08 Thread Yijing Wang
Pcibios_root_bridge_prepare() in powerpc set root bus speed, it's not the preparation for pci host bridge. For better separation of host bridge and root bus creation, It's need to rename it to another weak function. Signed-off-by: Yijing Wang --- arch/powerpc/include/asm/machdep.h

[PATCH Part3 v11 2/9] PCI: Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h

2015-05-08 Thread Yijing Wang
pci_bus_assign_domain_nr() is only called in probe.c, Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h. Signed-off-by: Yijing Wang --- drivers/pci/pci.h |9 + include/linux/pci.h |6 -- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a

[PATCH Part3 v11 9/9] PCI: Remove pci_bus_assign_domain_nr()

2015-05-08 Thread Yijing Wang
Now we save the domain number in pci_host_bridge, we could remove pci_bus_assign_domain_nr() and clean the domain member in pci_bus. Signed-off-by: Yijing Wang --- drivers/pci/pci.c |5 - drivers/pci/pci.h |9 - drivers/pci/probe.c | 11 +++ include/linux/pci.h

[PATCH Part3 v11 7/9] PCI: Create pci host bridge prior to root bus

2015-05-08 Thread Yijing Wang
Pci_host_bridge hold the domain number, we need to assign domain number prior to root bus creation, because root bus need to know the domain number to check whether it's alreay exist. Signed-off-by: Yijing Wang --- drivers/pci/probe.c | 60 ++--

[PATCH v10 19/29] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-04-21 Thread Yijing Wang
Now we could use pci_scan_host_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Tested-by: Daniel Axtens Signed-off-by: Yijing Wang Reviewed-by: Daniel Axtens CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/kernel/pci-common.c | 62

Re: [PATCH v9 19/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-04-06 Thread Yijing Wang
hanks very much for your test and review. Thanks! Yijing. > > > On Fri, 2015-04-03 at 17:25 +0800, Yijing Wang wrote: >> Now we could use pci_scan_host_bridge() to scan >> pci buses, provide powerpc specific pci_host_bridge_ops. >> >> Sign

[PATCH v9 19/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-04-03 Thread Yijing Wang
Now we could use pci_scan_host_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/kernel/pci-common.c | 62 +++-- 1 files changed

Re: [PATCH v8 19/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-25 Thread Yijing Wang
> pci_host_ops.pci_ops = hose->ops; > > > Basically, the changes in PowerPC need to be quite a bit more through > just to get the changes to build. > > I'm keen to work on simplifying PCI code in PowerPC, but at this point, > it will need a lot more work befor

Re: [PATCH v8 19/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-25 Thread Yijing Wang
On 2015/3/26 6:13, Daniel Axtens wrote: > Hi Yijing, > > I wasn't quite sure I understood your comments, so I was trying to apply > your patch series and test it, but patch 3 doesn't apply cleanly to > 4.0-rc5 or master. Can you respin the series? Hi Daniel, Could you pull the series from Bjor

Re: [PATCH v8 19/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-25 Thread Yijing Wang
On 2015/3/25 7:58, Daniel Axtens wrote: > On Tue, 2015-03-24 at 11:34 +0800, Yijing Wang wrote: >> Now we could use pci_scan_host_bridge() to scan >> pci buses, provide powerpc specific pci_host_bridge_ops. >> >> Signed-off-by: Yijing Wang >> CC: Benjamin H

[PATCH v8 19/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-23 Thread Yijing Wang
Now we could use pci_scan_host_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/kernel/pci-common.c | 60 +++-- 1 files changed

[PATCH v7 19/31] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-23 Thread Yijing Wang
Now we could use pci_scan_host_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/kernel/pci-common.c | 60 +++-- 1 files changed

Re: [PATCH v6 07/30] PCI: Pass PCI domain number combined with root bus number

2015-03-12 Thread Yijing Wang
On 2015/3/12 9:34, Bjorn Helgaas wrote: > On Mon, Mar 09, 2015 at 10:34:04AM +0800, Yijing Wang wrote: >> Now we could pass PCI domain combined with bus number >> in u32 argu. Because in arm/arm64, PCI domain number >> is assigned by pci_bus_assign_domain_nr(). So we leave

[PATCH v6 07/30] PCI: Pass PCI domain number combined with root bus number

2015-03-08 Thread Yijing Wang
arm/arm64 to assign domain number in later patch. Signed-off-by: Yijing Wang CC: Richard Henderson CC: Ivan Kokshaysky CC: Matt Turner CC: Tony Luck CC: Fenghua Yu CC: Michal Simek CC: Ralf Baechle CC: Benjamin Herrenschmidt CC: Paul Mackerras CC: Michael Ellerman CC: Sebastian Ott CC

[PATCH v6 17/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-08 Thread Yijing Wang
Now we could use pci_scan_host_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Suggested-by: Arnd Bergmann Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org Signed-off-by: Bjorn Helgaas --- arch/powerpc/include/asm/machdep.h

Re: [PATCH v5 16/29] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-08 Thread Yijing Wang
On 2015/3/6 22:19, Rob Herring wrote: > On Fri, Mar 6, 2015 at 3:33 AM, Yijing Wang wrote: >> Now we could use pci_scan_host_bridge() to scan >> pci buses, provide powerpc specific pci_host_bridge_ops. >> >> Suggested-by: Arnd Bergmann >> Signed-off-by: Yijing Wa

[PATCH v6 16/30] powerpc/pci: Rename pcibios_root_bridge_prepare()

2015-03-08 Thread Yijing Wang
Pcibios_root_bridge_prepare() in powerpc is used to set root bus speed. Rename it to pcibios_set_root_bus_speed() for better readability. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org Signed-off-by: Bjorn Helgaas --- arch/powerpc/include/asm/machdep.h

[PATCH v5 06/29] PCI: Pass PCI domain number combined with root bus number

2015-03-06 Thread Yijing Wang
arm/arm64 to assign domain number in later patch. Signed-off-by: Yijing Wang CC: Richard Henderson CC: Ivan Kokshaysky CC: Matt Turner CC: Tony Luck CC: Fenghua Yu CC: Michal Simek CC: Ralf Baechle CC: Benjamin Herrenschmidt CC: Paul Mackerras CC: Michael Ellerman CC: Sebastian Ott CC

[PATCH v5 16/29] powerpc/pci: Use pci_scan_host_bridge() for simplicity

2015-03-06 Thread Yijing Wang
Now we could use pci_scan_host_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Suggested-by: Arnd Bergmann Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org Signed-off-by: Bjorn Helgaas --- arch/powerpc/include/asm/machdep.h

[PATCH v5 15/29] powerpc/pci: Rename pcibios_root_bridge_prepare()

2015-03-06 Thread Yijing Wang
Pcibios_root_bridge_prepare() in powerpc is used to set root bus speed. Rename it to pcibios_set_root_bus_speed() for better readability. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org Signed-off-by: Bjorn Helgaas --- arch/powerpc/include/asm/machdep.h

[PATCH v4 07/30] PCI: Pass PCI domain number combined with root bus number

2015-02-26 Thread Yijing Wang
arm/arm64 to assign domain number in later patch. Signed-off-by: Yijing Wang CC: Richard Henderson CC: Ivan Kokshaysky CC: Matt Turner CC: Tony Luck CC: Fenghua Yu CC: Michal Simek CC: Ralf Baechle CC: Benjamin Herrenschmidt CC: Paul Mackerras CC: Michael Ellerman CC: Sebastian Ott CC

[PATCH v4 18/30] PCI/powerpc: Use pci_scan_root_bridge() for simplicity

2015-02-26 Thread Yijing Wang
Now we could use pci_scan_root_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Suggested-by: Arnd Bergmann Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/include/asm/machdep.h |2 +- arch/powerpc

[PATCH v4 17/30] PCI/powerpc: Rename pcibios_root_bridge_prepare()

2015-02-26 Thread Yijing Wang
Pcibios_root_bridge_prepare() in powerpc is used to set root bus speed. Rename it to pcibios_set_root_bus_speed() for better readability. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/include/asm/machdep.h |2 +- arch/powerpc

[PATCH v3 18/30] PCI/powerpc: Use pci_scan_root_bridge() for simplicity

2015-02-25 Thread Yijing Wang
Now we could use pci_scan_root_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Suggested-by: Arnd Bergmann Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/include/asm/machdep.h |2 +- arch/powerpc

[PATCH v3 17/30] PCI/powerpc: Rename pcibios_root_bridge_prepare()

2015-02-25 Thread Yijing Wang
Pcibios_root_bridge_prepare() in powerpc is used to set root bus speed. Rename it to pcibios_set_root_bus_speed() for better readability. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/include/asm/machdep.h |2 +- arch/powerpc

[PATCH v3 07/30] PCI: Pass PCI domain number combined with root bus number

2015-02-25 Thread Yijing Wang
arm/arm64 to assign domain number in later patch. Signed-off-by: Yijing Wang CC: Richard Henderson CC: Ivan Kokshaysky CC: Matt Turner CC: Tony Luck CC: Fenghua Yu CC: Michal Simek CC: Ralf Baechle CC: Benjamin Herrenschmidt CC: Paul Mackerras CC: Michael Ellerman CC: Sebastian Ott CC

[PATCH v2 07/30] PCI: Pass PCI domain number combined with root bus number

2015-01-20 Thread Yijing Wang
arm/arm64 to assign domain number in later patch. Signed-off-by: Yijing Wang CC: Richard Henderson CC: Ivan Kokshaysky CC: Matt Turner CC: Tony Luck CC: Fenghua Yu CC: Michal Simek CC: Ralf Baechle CC: Benjamin Herrenschmidt CC: Paul Mackerras CC: Michael Ellerman CC: Sebastian Ott CC

[PATCH v2 17/30] PCI/powerpc: Rename pcibios_root_bridge_prepare()

2015-01-20 Thread Yijing Wang
Pcibios_root_bridge_prepare() in powerpc is used to set root bus speed. Rename it to pcibios_set_root_bus_speed() for better readability. Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/include/asm/machdep.h |2 +- arch/powerpc

[PATCH v2 18/30] PCI/powerpc: Use pci_scan_root_bridge() for simplicity

2015-01-20 Thread Yijing Wang
Now we could use pci_scan_root_bridge() to scan pci buses, provide powerpc specific pci_host_bridge_ops. Suggested-by: Arnd Bergmann Signed-off-by: Yijing Wang CC: Benjamin Herrenschmidt CC: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/include/asm/machdep.h |2 +- arch/powerpc

Re: [RFC PATCH 00/16] Refine PCI host bridge scan interfaces

2014-11-20 Thread Yijing Wang
gt;>>> On Monday 17 November 2014 18:21:34 Yijing Wang wrote: >>>>>> This series is based Linux 3.18-rc1 and Lorenzo Pieralisi's >>>>>> arm PCI domain cleanup patches, link: >>>>>> https://patchwork.ozlabs.org/patch/407585/ >>

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-20 Thread Yijing Wang
>>> pci_create_host_bridge() can get pci_host_bridge ops while >>> pci_create_root_bus() gets >>> the bus ops. For find out the MSI controller, the domain number and any >>> other HB >>> specific stuff, you use the HB ops. For config R/W acceses you use bus ops. >>> >> >> I want to unexport pci_c

Re: [RFC PATCH 08/16] PCI: Introduce pci_scan_host_bridge() and pci_host_info

2014-11-19 Thread Yijing Wang
>> No, in this patch, host drivers pass a pci host bridge resources init hook >> in pci_host_info *info, and we call this info->init_res() in >> pci_create_host_bridge(). >> >> +struct pci_host_info { >> +u8 res_type; >> +void *arg; >> +struct list_head *resources; /*just for build, wi

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-19 Thread Yijing Wang
+static void pci_release_host_bridge_dev(struct device *dev) +{ + struct pci_host_bridge *bridge = to_pci_host_bridge(dev); + + if (bridge->release_fn) + bridge->release_fn(bridge); + pci_free_resource_list(&bridge->windows); +

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-19 Thread Yijing Wang
>>> Something like this: >>> >>> struct pci_controller { >>> struct pci_host_bridge bridge; >>> /* private host bridge data here */ >>> . >>> }; >>> >>> #define PCI_CONTROLLER(bus) ({ >>> struct pci_host_bridge *hb = to_pci_host_bridge(bus->bridge); \ >>> container_of(hb, st

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-18 Thread Yijing Wang
>> We need, some platforms pass NULL pointer as host bridge parent. > > Yijing, > > May I suggest a different approach here? Rather than having to pass an opaque > pointer that gets converted by the host bridge driver back to the private > structure, what about promoting a new style of usage, tha

Re: [RFC PATCH 08/16] PCI: Introduce pci_scan_host_bridge() and pci_host_info

2014-11-18 Thread Yijing Wang
>> struct pci_host_bridge *pci_create_host_bridge( >> -struct device *parent, u32 db, >> -struct pci_ops *ops, void *sysdata, >> -struct list_head *resources) >> +struct device *parent, u32 db, struct pci_ops *ops, >> +struct pci_host_

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-18 Thread Yijing Wang
On 2014/11/18 23:30, Liviu Dudau wrote: > On Mon, Nov 17, 2014 at 10:21:41AM +0000, Yijing Wang wrote: >> There are some common PCI infos like domain, msi_controller, these >> infos are saved in arch PCI sysdata, and lots arch specific functions >> like pci_domain_nr() and p

Re: [RFC PATCH 04/16] PCI: Rip out pci_bus_add_devices() from pci_scan_root_bus()

2014-11-18 Thread Yijing Wang
On 2014/11/18 22:34, Liviu Dudau wrote: > On Mon, Nov 17, 2014 at 10:21:38AM +0000, Yijing Wang wrote: >> Rip out pci_bus_add_devices() from pci_scan_root_bus() >> for following reasons. >> 1. pci_scan_root_bus() means we only do the scan, we should >> not add pci buss

Re: [RFC PATCH 02/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus()

2014-11-18 Thread Yijing Wang
On 2014/11/18 22:28, Liviu Dudau wrote: > On Mon, Nov 17, 2014 at 10:21:36AM +0000, Yijing Wang wrote: >> From: Yijing Wang >> >> Now we could use pci_scan_root_bus() instead of >> pci_scan_bus(), pass NULL resources means use the default >> io/mem. > > A

Re: [RFC PATCH 01/16] PCI: Enhance pci_scan_root_bus() to support default IO/MEM resources

2014-11-18 Thread Yijing Wang
On 2014/11/18 22:23, Liviu Dudau wrote: > On Tue, Nov 18, 2014 at 11:46:06AM +0000, Yijing Wang wrote: >> On 2014/11/18 17:36, Arnd Bergmann wrote: >>> On Tuesday 18 November 2014 15:44:23 Yijing Wang wrote: >>>> On 2014/11/17 18:08, Arnd Bergmann wrote: >>>

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-18 Thread Yijing Wang
We need, some platforms pass NULL pointer as host bridge parent. >>> >>> But those don't have to use the new pci_create_host_bridge() function, >>> right? >> >> As I mentioned in another reply, I hope all pci host drivers could use >> pci_create_host_bridge(), keep different PCI scan interface

Re: [RFC PATCH 00/16] Refine PCI host bridge scan interfaces

2014-11-18 Thread Yijing Wang
On 2014/11/18 19:30, Arnd Bergmann wrote: > On Tuesday 18 November 2014 19:17:32 Yijing Wang wrote: >> On 2014/11/17 22:13, Arnd Bergmann wrote: >>> On Monday 17 November 2014 18:21:34 Yijing Wang wrote: >>>> This series is based Linux 3.18-rc1 and Lorenzo Pieralisi

Re: [RFC PATCH 00/16] Refine PCI host bridge scan interfaces

2014-11-18 Thread Yijing Wang
On 2014/11/18 19:45, Lorenzo Pieralisi wrote: > On Tue, Nov 18, 2014 at 11:30:11AM +, Arnd Bergmann wrote: >> On Tuesday 18 November 2014 19:17:32 Yijing Wang wrote: >>> On 2014/11/17 22:13, Arnd Bergmann wrote: >>>> On Monday 17 November 2014 18:21:34 Yijing Wa

Re: [RFC PATCH 01/16] PCI: Enhance pci_scan_root_bus() to support default IO/MEM resources

2014-11-18 Thread Yijing Wang
On 2014/11/18 17:36, Arnd Bergmann wrote: > On Tuesday 18 November 2014 15:44:23 Yijing Wang wrote: >> On 2014/11/17 18:08, Arnd Bergmann wrote: >>> On Monday 17 November 2014 18:21:35 Yijing Wang wrote: >>>> - list_for_each_entry(window, resources, list) >&g

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-18 Thread Yijing Wang
On 2014/11/18 17:30, Arnd Bergmann wrote: > On Tuesday 18 November 2014 16:32:26 Yijing Wang wrote: > >>>> +static struct resource busn_resource = { >>>> + .name = "PCI busn", >>>> + .start = 0, >>>> + .end= 255, >&g

Re: [RFC PATCH 00/16] Refine PCI host bridge scan interfaces

2014-11-18 Thread Yijing Wang
On 2014/11/17 22:13, Arnd Bergmann wrote: > On Monday 17 November 2014 18:21:34 Yijing Wang wrote: >> This series is based Linux 3.18-rc1 and Lorenzo Pieralisi's >> arm PCI domain cleanup patches, link: >> https://patchwork.ozlabs.org/patch/407585/ >> >

Re: [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-18 Thread Yijing Wang
>> +LIST_HEAD(pci_host_bridge_list); >> +DECLARE_RWSEM(pci_host_bridge_sem); > > Unless the pci_host_bridge_sem is accessed thousands of times per second, > it's normally better to use a simple mutex instead. OK, I will use simple mutex instead. > >> +static struct resource busn_resource = { >

Re: [RFC PATCH 01/16] PCI: Enhance pci_scan_root_bus() to support default IO/MEM resources

2014-11-17 Thread Yijing Wang
On 2014/11/17 18:08, Arnd Bergmann wrote: > On Monday 17 November 2014 18:21:35 Yijing Wang wrote: >> - list_for_each_entry(window, resources, list) >> - if (window->res->flags & IORESOURCE_BUS) { >> - found = true; &

Re: [RFC PATCH 14/16] arm/PCI: Introduce pci_get_domain_nr()

2014-11-17 Thread Yijing Wang
>> >> -bus->domain_nr = domain; >> +void pci_bus_assign_domain_nr(struct pci_bus *bus, struct device *parent) >> +{ >> +bus->domain_nr = pci_get_domain_nr(parent); >> } >> #endif > > This code is superseded by the last patches I sent to move the domain > assignment to PCI core code. >

[RFC PATCH 16/16] powerpc/PCI: Use pci_scan_host_bridge() to scan PCI bus

2014-11-17 Thread Yijing Wang
Signed-off-by: Yijing Wang --- arch/powerpc/kernel/pci-common.c | 81 ++--- 1 files changed, 48 insertions(+), 33 deletions(-) diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index e5dad9a..5b0f078 100644 --- a/arch/powerpc

[RFC PATCH 13/16] ia64/PCI: Use pci_scan_host_bridge() to refactor pci_acpi_scan_root()

2014-11-17 Thread Yijing Wang
Signed-off-by: Yijing Wang --- arch/ia64/pci/pci.c | 84 +++--- 1 files changed, 39 insertions(+), 45 deletions(-) diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index aac3220..c7d97ae 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci

[RFC PATCH 00/16] Refine PCI host bridge scan interfaces

2014-11-17 Thread Yijing Wang
hanks! Yijing. Yijing Wang (16): PCI: Enhance pci_scan_root_bus() to support default IO/MEM resources PCI: Use pci_scan_root_bus() instead of pci_scan_bus() PCI: Clean up pci_scan_bus() PCI: Rip out pci_bus_add_devices() from pci_scan_root_bus() PCI: Use pci_scan_root_bus() inste

[RFC PATCH 14/16] arm/PCI: Introduce pci_get_domain_nr()

2014-11-17 Thread Yijing Wang
Signed-off-by: Yijing Wang --- arch/arm/include/asm/mach/pci.h |9 + arch/arm/kernel/bios32.c|8 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h index f19f627..370b3bd 100644 --- a

[RFC PATCH 15/16] arm/PCI: Use pci_scan_host_bridge() instead of pci_scan_root_bus()

2014-11-17 Thread Yijing Wang
Signed-off-by: Yijing Wang --- arch/arm/include/asm/mach/pci.h |1 + arch/arm/kernel/bios32.c| 52 +++--- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h index 370b3bd

[RFC PATCH 04/16] PCI: Rip out pci_bus_add_devices() from pci_scan_root_bus()

2014-11-17 Thread Yijing Wang
strictly speaking pci_bus_add_devices() should be called after the resources assignment. Signed-off-by: Yijing Wang --- arch/alpha/kernel/pci.c |1 + arch/alpha/kernel/sys_nautilus.c |1 + arch/frv/mb93090-mb00/pci-vdk.c |8 +--- arch/ia64/sn/kernel/io_init.c |2

[RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus()

2014-11-17 Thread Yijing Wang
infos in, then we could eliminate the arch specifc functions. Signed-off-by: Yijing Wang --- drivers/pci/host-bridge.c | 99 + drivers/pci/probe.c | 134 include/linux/pci.h | 11 +++- 3 files changed

[RFC PATCH 11/16] x86/PCI: Use pci_scan_host_bridge() instead of pci_create_root_bus()

2014-11-17 Thread Yijing Wang
Now we could use pci_scan_host_bridge() to refactor pci_acpi_scan_root(). Signed-off-by: Yijing Wang --- arch/x86/pci/acpi.c | 65 ++--- arch/x86/pci/common.c | 23 - 2 files changed, 56 insertions(+), 32 deletions(-) diff --git

[RFC PATCH 06/16] PCI: Use u32 type to combine PCI domain and bus number

2014-11-17 Thread Yijing Wang
ate the arch specific pci_domain_nr(). Signed-off-by: Yijing Wang --- drivers/pci/probe.c | 11 ++- include/linux/pci.h |4 ++-- include/uapi/linux/pci.h |3 +++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c in

[RFC PATCH 12/16] ia64/PCI: Remove the redundant bus variable

2014-11-17 Thread Yijing Wang
Signed-off-by: Yijing Wang --- arch/ia64/pci/pci.c |3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 291a582..aac3220 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c @@ -424,7 +424,6 @@ struct pci_bus

[RFC PATCH 05/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus_parented()

2014-11-17 Thread Yijing Wang
Now we can remove the deprecated pci_scan_bus_parented(), and use pci_scan_root_bus() instead. Signed-off-by: Yijing Wang --- drivers/pci/probe.c| 19 --- drivers/pci/xen-pcifront.c |6 +++--- include/linux/pci.h|2 -- 3 files changed, 3 insertions

[RFC PATCH 08/16] PCI: Introduce pci_scan_host_bridge() and pci_host_info

2014-11-17 Thread Yijing Wang
From: Yijing Wang Now pci_host_bridge has been ripped out from pci root bus creation. Currently pci_scan_root_bus() lacks scalability, so platform host drivers have no proper way to configure pci_host_bridge. E.g we should assign msi_controller to pci_host_bridge, add argument for

[RFC PATCH 02/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus()

2014-11-17 Thread Yijing Wang
From: Yijing Wang Now we could use pci_scan_root_bus() instead of pci_scan_bus(), pass NULL resources means use the default io/mem. Signed-off-by: Yijing Wang --- arch/alpha/include/asm/pci.h |2 +- arch/alpha/kernel/sys_nautilus.c |2 +- arch/cris/include/asm/pci.h |2

[RFC PATCH 03/16] PCI: Clean up pci_scan_bus()

2014-11-17 Thread Yijing Wang
No one uses it, clean up. Signed-off-by: Yijing Wang --- drivers/pci/probe.c | 20 include/linux/pci.h |1 - 2 files changed, 0 insertions(+), 21 deletions(-) diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index fc99e88..0a02fc2 100644 --- a/drivers/pci

[RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge

2014-11-17 Thread Yijing Wang
From: Yijing Wang Signed-off-by: Yijing Wang --- drivers/pci/host-bridge.c |1 + include/linux/pci.h |2 ++ 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c index 49b6c21..872cae1 100644 --- a/drivers/pci/host

[RFC PATCH 10/16] PCI: Add of_scan_bus() to pci_host_info

2014-11-17 Thread Yijing Wang
Add of_scan_bus() to support some platforms scan bus by of_node. Signed-off-by: Yijing Wang --- drivers/pci/host-bridge.c |1 + drivers/pci/probe.c | 10 +++--- include/linux/pci.h |3 +++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/pci/host

[RFC PATCH 01/16] PCI: Enhance pci_scan_root_bus() to support default IO/MEM resources

2014-11-17 Thread Yijing Wang
From: Yijing Wang Pci_scan_root_bus(), pci_scan_bus() and pci_scan_bus_parented() are very similar. But the latter two use the default io/mem resources. Enhance pci_scan_root_bus() to support default io/mem resources, then we could use pci_scan_root_bus() instead of them, and clean them up

[PATCH 12/16] arm/iop13xx/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- arch/arm/mach-iop13xx/include/mach/pci.h |4 arch/arm/mach-iop13xx/iq81340mc.c|3 +++ arch/arm/mach

[PATCH 16/16] PCI/MSI: Clean up unused MSI arch functions

2014-10-27 Thread Yijing Wang
Now we use MSI controller in all platforms to configure MSI/MSI-X. We can clean up the unused arch functions. Signed-off-by: Yijing Wang Reviewed-by: Lucas Stach --- drivers/pci/msi.c | 90 ++ include/linux/msi.h | 11 -- 2 files

[PATCH 15/16] tile/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- arch/tile/include/asm/pci.h |2 ++ arch/tile/kernel/pci_gx.c | 18 -- 2 files changed, 18

[PATCH 14/16] Sparc/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang Acked-by: David S. Miller --- arch/sparc/kernel/pci.c | 20 ++-- arch/sparc/kernel/pci_impl.h |3

[PATCH 08/16] MIPS/Xlp/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X IRQ. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- arch/mips/include/asm/netlogic/xlp-hal/pcibus.h |1 + arch/mips/pci/msi-xlp.c | 11

[PATCH 05/16] x86/MSI: Remove unused MSI weak arch functions

2014-10-27 Thread Yijing Wang
Now we can clean up MSI weak arch functions in x86. Signed-off-by: Yijing Wang --- arch/x86/include/asm/pci.h |5 + arch/x86/include/asm/x86_init.h |4 arch/x86/kernel/apic/io_apic.c | 21 + arch/x86/kernel/x86_init.c | 24

[PATCH 04/16] Irq_remapping/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- drivers/iommu/irq_remapping.c | 11 --- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers

[PATCH 06/16] Mips/MSI: Save MSI controller in pci sysdata

2014-10-27 Thread Yijing Wang
Save MSI controller in pci sysdata, add arch pcibios_msi_controller() to extract out MSI controller. Signed-off-by: Yijing Wang --- arch/mips/include/asm/pci.h |3 +++ arch/mips/pci/pci.c |9 + 2 files changed, 12 insertions(+), 0 deletions(-) diff --git a/arch/mips

[PATCH 00/16] Use MSI controller framework to configure MSI/MSI-X

2014-10-27 Thread Yijing Wang
quot;s390/MSI: Use MSI..". Fix several typo problems found by Lucas. RFC->v1: Updated "[patch 4/21] x86/xen/MSI: Eliminate...", export msi_chip instead of #ifdef to fix MSI bug in xen running in x86. Rename arch_get_match_msi_chip() to arch_find_msi_chip(). Drop use struct devic

[PATCH 10/16] Powerpc/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang Acked-by: Michael Ellerman --- arch/powerpc/include/asm/pci-bridge.h |8 arch/powerpc/kernel/msi.c

[PATCH 09/16] MIPS/Xlr/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- arch/mips/pci/pci-xlr.c | 17 +++-- 1 files changed, 15 insertions(+), 2 deletions(-) diff --git a/arch

[PATCH 07/16] MIPS/Octeon/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- arch/mips/include/asm/octeon/pci-octeon.h |4 +++ arch/mips/pci/msi-octeon.c| 31

[PATCH 01/16] PCI/MSI: Refactor MSI controller to make it become more common

2014-10-27 Thread Yijing Wang
common. Signed-off-by: Yijing Wang Reviewed-by: Lucas Stach --- drivers/pci/msi.c | 15 +++ include/linux/msi.h |8 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 27b6a54..0e1da3e 100644 --- a/drivers/pci

[PATCH 02/16] x86/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- arch/x86/include/asm/pci.h |4 arch/x86/kernel/apic/io_apic.c | 25 + arch/x86/pci

[PATCH 03/16] x86/xen/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang CC: David Vrabel CC: Konrad Rzeszutek Wilk --- arch/x86/pci/xen.c | 45 +++-- 1

[PATCH 13/16] IA64/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang --- arch/ia64/include/asm/pci.h |3 ++- arch/ia64/kernel/msi_ia64.c | 24 ++-- arch/ia64/pci/pci.c

[PATCH 11/16] s390/MSI: Use MSI controller framework to configure MSI/MSI-X irq

2014-10-27 Thread Yijing Wang
Use MSI controller framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang Acked-by: Sebastian Ott --- arch/s390/include/asm/pci.h |1 + arch/s390/pci/pci.c | 19 +-- 2

  1   2   3   4   >