From: Gavin Shan <gwshan-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> To: linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Cc: linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org, mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org, aik-sLpHqDYs0B2HXe+LvDLADg@public.gmane.org, bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, panto-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org, frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Gavin Shan <gwshan-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> Subject: [PATCH v7 19/50] powerpc/powernv: Track DMA32 segment consumption Date: Thu, 5 Nov 2015 00:12:19 +1100 [thread overview] Message-ID: <1446642770-4681-20-git-send-email-gwshan@linux.vnet.ibm.com> (raw) In-Reply-To: <1446642770-4681-1-git-send-email-gwshan-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> Similar to the mechanism tracking consumed IO/M32/M64 segments, this introduces an array for each PHB to track the consumed DMA32 segments, which are going to be released on PCI unplugging time. The index of the array is the DMA32 segment number while the value stored in the element is the assigned PE number. Signed-off-by: Gavin Shan <gwshan-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> --- arch/powerpc/platforms/powernv/pci-ioda.c | 30 +++++++++++++++++++++--------- arch/powerpc/platforms/powernv/pci.h | 7 ++++--- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index 20ebe6e..fdbc012 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c @@ -1885,6 +1885,10 @@ static void pnv_pci_ioda1_setup_dma_pe(struct pnv_phb *phb, } } + /* Setup TCE32 segment mapping */ + for (i = base; i < base + segs; i++) + phb->ioda.dma32_segmap[i] = pe->pe_number; + /* Setup linux iommu table */ pnv_pci_setup_iommu_table(tbl, addr, tce32_segsz * segs, base * PNV_IODA1_DMA32_SEGSIZE, @@ -2378,13 +2382,13 @@ static void pnv_pci_ioda1_setup_dma(struct pnv_phb *phb) * then we assign at least one segment per PE, plus more based * on the amount of devices under that PE */ - if (dma_pe_count > phb->ioda.tce32_count) + if (dma_pe_count > phb->ioda.dma32_count) residual = 0; else - residual = phb->ioda.tce32_count - dma_pe_count; + residual = phb->ioda.dma32_count - dma_pe_count; pr_info("PCI: Domain %04x has %ld available 32-bit DMA segments\n", - hose->global_number, phb->ioda.tce32_count); + hose->global_number, phb->ioda.dma32_count); pr_info("PCI: %d PE# for a total weight of %d\n", dma_pe_count, total_weight); @@ -2394,7 +2398,7 @@ static void pnv_pci_ioda1_setup_dma(struct pnv_phb *phb) * out one base segment plus any residual segments based on * weight */ - remaining = phb->ioda.tce32_count; + remaining = phb->ioda.dma32_count; base = 0; list_for_each_entry(pe, &phb->ioda.pe_list, list) { weight = pnv_pci_ioda_pe_dma_weight(pe); @@ -3094,7 +3098,8 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, { struct pci_controller *hose; struct pnv_phb *phb; - unsigned long size, m64map_off, m32map_off, pemap_off, iomap_off = 0; + unsigned long size, m64map_off, m32map_off, pemap_off; + unsigned long iomap_off = 0, dma32map_off = 0; const __be64 *prop64; const __be32 *prop32; int i, len; @@ -3177,6 +3182,10 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, phb->ioda.io_segsize = phb->ioda.io_size / phb->ioda.total_pe_num; phb->ioda.io_pci_base = 0; /* XXX calculate this ? */ + /* Calculate how many 32-bit TCE segments we have */ + phb->ioda.dma32_count = phb->ioda.m32_pci_base / + PNV_IODA1_DMA32_SEGSIZE; + /* Allocate aux data & arrays. We don't have IO ports on PHB3 */ size = _ALIGN_UP(phb->ioda.total_pe_num / 8, sizeof(unsigned long)); m64map_off = size; @@ -3186,6 +3195,9 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, if (phb->type == PNV_PHB_IODA1) { iomap_off = size; size += phb->ioda.total_pe_num * sizeof(phb->ioda.io_segmap[0]); + dma32map_off = size; + size += phb->ioda.dma32_count * + sizeof(phb->ioda.dma32_segmap[0]); } pemap_off = size; size += phb->ioda.total_pe_num * sizeof(struct pnv_ioda_pe); @@ -3201,6 +3213,10 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, phb->ioda.io_segmap = aux + iomap_off; for (i = 0; i < phb->ioda.total_pe_num; i++) phb->ioda.io_segmap[i] = IODA_INVALID_PE; + + phb->ioda.dma32_segmap = aux + dma32map_off; + for (i = 0; i < phb->ioda.dma32_count; i++) + phb->ioda.dma32_segmap[i] = IODA_INVALID_PE; } phb->ioda.pe_array = aux + pemap_off; set_bit(phb->ioda.reserved_pe_idx, phb->ioda.pe_alloc); @@ -3208,10 +3224,6 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, INIT_LIST_HEAD(&phb->ioda.pe_list); mutex_init(&phb->ioda.pe_list_mutex); - /* Calculate how many 32-bit TCE segments we have */ - phb->ioda.tce32_count = phb->ioda.m32_pci_base / - PNV_IODA1_DMA32_SEGSIZE; - #if 0 /* We should really do that ... */ rc = opal_pci_set_phb_mem_window(opal->phb_id, window_type, diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h index 2038ef2..0802fcd 100644 --- a/arch/powerpc/platforms/powernv/pci.h +++ b/arch/powerpc/platforms/powernv/pci.h @@ -148,6 +148,10 @@ struct pnv_phb { int *m32_segmap; int *io_segmap; + /* DMA32 segment maps - IODA1 only */ + unsigned long dma32_count; + int *dma32_segmap; + /* IRQ chip */ int irq_chip_init; struct irq_chip irq_chip; @@ -164,9 +168,6 @@ struct pnv_phb { */ unsigned char pe_rmap[0x10000]; - /* 32-bit TCE tables allocation */ - unsigned long tce32_count; - /* TCE cache invalidate registers (physical and * remapped) */ -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Gavin Shan <gwshan@linux.vnet.ibm.com> To: linuxppc-dev@lists.ozlabs.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, benh@kernel.crashing.org, mpe@ellerman.id.au, aik@ozlabs.ru, bhelgaas@google.com, grant.likely@linaro.org, robherring2@gmail.com, panto@antoniou-consulting.com, frowand.list@gmail.com, Gavin Shan <gwshan@linux.vnet.ibm.com> Subject: [PATCH v7 19/50] powerpc/powernv: Track DMA32 segment consumption Date: Thu, 5 Nov 2015 00:12:19 +1100 [thread overview] Message-ID: <1446642770-4681-20-git-send-email-gwshan@linux.vnet.ibm.com> (raw) In-Reply-To: <1446642770-4681-1-git-send-email-gwshan@linux.vnet.ibm.com> Similar to the mechanism tracking consumed IO/M32/M64 segments, this introduces an array for each PHB to track the consumed DMA32 segments, which are going to be released on PCI unplugging time. The index of the array is the DMA32 segment number while the value stored in the element is the assigned PE number. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> --- arch/powerpc/platforms/powernv/pci-ioda.c | 30 +++++++++++++++++++++--------- arch/powerpc/platforms/powernv/pci.h | 7 ++++--- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index 20ebe6e..fdbc012 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c @@ -1885,6 +1885,10 @@ static void pnv_pci_ioda1_setup_dma_pe(struct pnv_phb *phb, } } + /* Setup TCE32 segment mapping */ + for (i = base; i < base + segs; i++) + phb->ioda.dma32_segmap[i] = pe->pe_number; + /* Setup linux iommu table */ pnv_pci_setup_iommu_table(tbl, addr, tce32_segsz * segs, base * PNV_IODA1_DMA32_SEGSIZE, @@ -2378,13 +2382,13 @@ static void pnv_pci_ioda1_setup_dma(struct pnv_phb *phb) * then we assign at least one segment per PE, plus more based * on the amount of devices under that PE */ - if (dma_pe_count > phb->ioda.tce32_count) + if (dma_pe_count > phb->ioda.dma32_count) residual = 0; else - residual = phb->ioda.tce32_count - dma_pe_count; + residual = phb->ioda.dma32_count - dma_pe_count; pr_info("PCI: Domain %04x has %ld available 32-bit DMA segments\n", - hose->global_number, phb->ioda.tce32_count); + hose->global_number, phb->ioda.dma32_count); pr_info("PCI: %d PE# for a total weight of %d\n", dma_pe_count, total_weight); @@ -2394,7 +2398,7 @@ static void pnv_pci_ioda1_setup_dma(struct pnv_phb *phb) * out one base segment plus any residual segments based on * weight */ - remaining = phb->ioda.tce32_count; + remaining = phb->ioda.dma32_count; base = 0; list_for_each_entry(pe, &phb->ioda.pe_list, list) { weight = pnv_pci_ioda_pe_dma_weight(pe); @@ -3094,7 +3098,8 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, { struct pci_controller *hose; struct pnv_phb *phb; - unsigned long size, m64map_off, m32map_off, pemap_off, iomap_off = 0; + unsigned long size, m64map_off, m32map_off, pemap_off; + unsigned long iomap_off = 0, dma32map_off = 0; const __be64 *prop64; const __be32 *prop32; int i, len; @@ -3177,6 +3182,10 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, phb->ioda.io_segsize = phb->ioda.io_size / phb->ioda.total_pe_num; phb->ioda.io_pci_base = 0; /* XXX calculate this ? */ + /* Calculate how many 32-bit TCE segments we have */ + phb->ioda.dma32_count = phb->ioda.m32_pci_base / + PNV_IODA1_DMA32_SEGSIZE; + /* Allocate aux data & arrays. We don't have IO ports on PHB3 */ size = _ALIGN_UP(phb->ioda.total_pe_num / 8, sizeof(unsigned long)); m64map_off = size; @@ -3186,6 +3195,9 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, if (phb->type == PNV_PHB_IODA1) { iomap_off = size; size += phb->ioda.total_pe_num * sizeof(phb->ioda.io_segmap[0]); + dma32map_off = size; + size += phb->ioda.dma32_count * + sizeof(phb->ioda.dma32_segmap[0]); } pemap_off = size; size += phb->ioda.total_pe_num * sizeof(struct pnv_ioda_pe); @@ -3201,6 +3213,10 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, phb->ioda.io_segmap = aux + iomap_off; for (i = 0; i < phb->ioda.total_pe_num; i++) phb->ioda.io_segmap[i] = IODA_INVALID_PE; + + phb->ioda.dma32_segmap = aux + dma32map_off; + for (i = 0; i < phb->ioda.dma32_count; i++) + phb->ioda.dma32_segmap[i] = IODA_INVALID_PE; } phb->ioda.pe_array = aux + pemap_off; set_bit(phb->ioda.reserved_pe_idx, phb->ioda.pe_alloc); @@ -3208,10 +3224,6 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, INIT_LIST_HEAD(&phb->ioda.pe_list); mutex_init(&phb->ioda.pe_list_mutex); - /* Calculate how many 32-bit TCE segments we have */ - phb->ioda.tce32_count = phb->ioda.m32_pci_base / - PNV_IODA1_DMA32_SEGSIZE; - #if 0 /* We should really do that ... */ rc = opal_pci_set_phb_mem_window(opal->phb_id, window_type, diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h index 2038ef2..0802fcd 100644 --- a/arch/powerpc/platforms/powernv/pci.h +++ b/arch/powerpc/platforms/powernv/pci.h @@ -148,6 +148,10 @@ struct pnv_phb { int *m32_segmap; int *io_segmap; + /* DMA32 segment maps - IODA1 only */ + unsigned long dma32_count; + int *dma32_segmap; + /* IRQ chip */ int irq_chip_init; struct irq_chip irq_chip; @@ -164,9 +168,6 @@ struct pnv_phb { */ unsigned char pe_rmap[0x10000]; - /* 32-bit TCE tables allocation */ - unsigned long tce32_count; - /* TCE cache invalidate registers (physical and * remapped) */ -- 2.1.0
next prev parent reply other threads:[~2015-11-04 13:12 UTC|newest] Thread overview: 201+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-11-04 13:12 [PATCH v7 00/50] powerpc/powernv: PCI hotplug support Gavin Shan 2015-11-04 13:12 ` [PATCH v7 01/50] PCI: Add pcibios_setup_bridge() Gavin Shan 2015-11-04 13:12 ` [PATCH v7 02/50] powerpc/pci: Override pcibios_setup_bridge() Gavin Shan 2015-11-05 22:27 ` Daniel Axtens 2015-11-05 22:27 ` Daniel Axtens 2015-11-05 23:44 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 04/50] powerpc/powernv: Cleanup on pnv_pci_ioda_controller_ops Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-05 22:28 ` Daniel Axtens 2015-11-05 22:28 ` Daniel Axtens 2015-11-06 1:09 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 05/50] powerpc/powernv: Drop pnv_ioda_setup_dev_PE() Gavin Shan 2015-11-04 13:12 ` [PATCH v7 07/50] powerpc/powernv: Reorder fields in struct pnv_phb Gavin Shan 2015-11-04 13:12 ` [PATCH v7 08/50] powerpc/powernv: Rename PE# " Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-16 8:01 ` Alexey Kardashevskiy 2015-11-17 1:22 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 09/50] powerpc/powernv: Fix initial IO and M32 segmap Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 12/50] powerpc/powernv: Track M64 segment consumption Gavin Shan 2015-11-12 4:18 ` Daniel Axtens 2015-11-12 4:18 ` Daniel Axtens 2015-11-16 8:01 ` Alexey Kardashevskiy 2015-11-17 1:04 ` Gavin Shan 2015-11-19 0:10 ` Alexey Kardashevskiy 2015-11-23 22:42 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 13/50] powerpc/powernv: Rename M64 related functions Gavin Shan 2015-11-04 13:12 ` [PATCH v7 14/50] powerpc/powernv: M64 support on P7IOC Gavin Shan 2015-11-16 8:01 ` Alexey Kardashevskiy 2015-11-17 1:37 ` Gavin Shan 2015-11-19 0:18 ` Alexey Kardashevskiy 2015-11-22 22:46 ` Gavin Shan 2015-11-16 8:02 ` Alexey Kardashevskiy 2015-11-17 1:38 ` Gavin Shan 2015-11-17 2:11 ` Alexey Kardashevskiy 2015-11-17 2:44 ` Gavin Shan 2015-11-16 8:02 ` Alexey Kardashevskiy 2015-11-17 1:42 ` Gavin Shan 2015-11-17 2:37 ` Alexey Kardashevskiy 2015-11-17 3:04 ` Gavin Shan 2015-11-17 3:40 ` Benjamin Herrenschmidt 2015-11-17 4:43 ` Alexey Kardashevskiy 2015-11-17 8:44 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 15/50] powerpc/powernv: Rename pnv_pci_ioda_setup_dma_pe() Gavin Shan [not found] ` <1446642770-4681-1-git-send-email-gwshan-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> 2015-11-04 13:12 ` [PATCH v7 03/50] powerpc/pci: Cleanup on struct pci_controller_ops Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-05 22:32 ` Daniel Axtens 2015-11-05 22:32 ` Daniel Axtens 2015-11-05 23:45 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 06/50] powerpc/powernv: Drop phb->bdfn_to_pe() Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 10/50] powerpc/powernv: Simplify pnv_ioda_setup_pe_seg() Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-05 22:56 ` Daniel Axtens 2015-11-05 22:56 ` Daniel Axtens 2015-11-05 23:52 ` Gavin Shan 2015-11-16 8:01 ` Alexey Kardashevskiy 2015-11-17 0:54 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 11/50] powerpc/powernv: IO and M32 mapping based on PCI device resources Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-12 3:30 ` Daniel Axtens 2015-11-12 3:30 ` Daniel Axtens 2015-11-12 4:55 ` Gavin Shan 2015-11-16 8:01 ` Alexey Kardashevskiy 2015-11-17 1:33 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 16/50] powerpc/powernv: Define PNV_IODA1_DMA32_SEGSIZE Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-04 13:12 ` Gavin Shan [this message] 2015-11-04 13:12 ` [PATCH v7 19/50] powerpc/powernv: Track DMA32 segment consumption Gavin Shan 2015-11-17 0:28 ` Daniel Axtens 2015-11-17 0:28 ` Daniel Axtens 2015-11-17 1:55 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 22/50] powerpc/powernv: Introduce pnv_ioda_init_pe() Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-17 0:30 ` Daniel Axtens 2015-11-17 0:30 ` Daniel Axtens 2015-11-17 1:58 ` Gavin Shan 2015-11-17 2:37 ` Alexey Kardashevskiy 2015-11-17 2:53 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 24/50] powerpc/powernv: Allocate PE# in reverse order Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 29/50] powerpc/pci: Rename pcibios_find_pci_bus() Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-18 3:59 ` Alexey Kardashevskiy 2015-11-23 23:11 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 33/50] powerpc/pci: Export pci_traverse_device_nodes() Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-18 3:14 ` Alexey Kardashevskiy 2015-11-23 23:23 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 36/50] powerpc/pci: Update bridge windows on PCI plug Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 47/50] drivers/of: Specify parent node in of_fdt_unflatten_tree() Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 49/50] drivers/of: Export OF changeset functions Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-04 16:12 ` Rob Herring 2015-11-04 23:23 ` Gavin Shan 2016-01-13 13:54 ` [v7,49/50] " Wolfram Sang 2016-01-13 21:18 ` Michael Ellerman 2016-01-13 21:18 ` Michael Ellerman [not found] ` <1452719886.8203.1.camel-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org> 2016-01-13 21:20 ` Wolfram Sang 2016-01-13 21:20 ` Wolfram Sang 2016-01-13 23:53 ` Rob Herring [not found] ` <CAL_JsqLaCMYMGLu_2aoXopgMHmT09xU1CSO4NZokMVUOZTPSJg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-01-14 7:28 ` Wolfram Sang 2016-01-14 7:28 ` Wolfram Sang 2015-11-04 13:12 ` [PATCH v7 17/50] powerpc/powernv: Avoid calculating DMA32 segments on PHB3 Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-17 1:07 ` Alexey Kardashevskiy 2015-11-17 8:48 ` Gavin Shan 2015-11-17 23:59 ` Alexey Kardashevskiy 2015-11-04 13:12 ` [PATCH v7 18/50] powerpc/powernv: Remove DMA32 PE list Gavin Shan 2015-11-17 1:54 ` Alexey Kardashevskiy 2015-11-17 2:01 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 20/50] powerpc/powernv: Improve DMA32 segment calculation Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-20 3:14 ` Daniel Axtens 2015-11-20 3:14 ` Daniel Axtens 2015-11-04 13:12 ` [PATCH v7 21/50] powerpc/powernv: Increase PE# capacity Gavin Shan 2015-11-17 0:29 ` Daniel Axtens 2015-11-17 0:29 ` Daniel Axtens 2015-11-17 1:56 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 23/50] powerpc/powernv: Use PE instead of number during setup and release Gavin Shan 2015-11-04 13:12 ` Gavin Shan 2015-11-17 5:08 ` Alexey Kardashevskiy 2015-11-17 9:03 ` Gavin Shan 2015-11-18 0:13 ` Alexey Kardashevskiy 2015-11-22 22:52 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 25/50] powerpc/powernv: Reserve PE for root bus Gavin Shan 2015-11-17 6:04 ` Alexey Kardashevskiy 2015-11-17 9:06 ` Gavin Shan 2015-11-19 0:21 ` Alexey Kardashevskiy 2015-11-04 13:12 ` [PATCH v7 26/50] powerpc/powernv: Create PEs at PCI hot plugging time Gavin Shan 2015-11-17 7:57 ` Alexey Kardashevskiy 2015-11-17 9:12 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 27/50] powerpc/powernv: Dynamically release PEs Gavin Shan 2015-11-18 2:23 ` Alexey Kardashevskiy 2015-11-23 23:06 ` Gavin Shan 2015-11-24 0:22 ` Alexey Kardashevskiy 2015-11-04 13:12 ` [PATCH v7 28/50] powerpc/pci: Rename pcibios_{add,remove}_pci_devices() Gavin Shan 2015-11-04 13:12 ` [PATCH v7 28/50] powerpc/pci: Rename pcibios_{add, remove}_pci_devices() Gavin Shan 2015-11-18 2:43 ` [PATCH v7 28/50] powerpc/pci: Rename pcibios_{add,remove}_pci_devices() Alexey Kardashevskiy 2015-11-23 23:08 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 30/50] powerpc/pci: Move pci_find_bus_by_node() around Gavin Shan 2015-11-04 13:12 ` [PATCH v7 31/50] powerpc/pci: Export pci_add_device_node_info() Gavin Shan 2015-11-04 13:12 ` [PATCH v7 32/50] powerpc/pci: Introduce pci_remove_device_node_info() Gavin Shan 2015-11-04 13:12 ` [PATCH v7 34/50] powerpc/pci: Delay populating pdn Gavin Shan 2015-11-18 4:24 ` Alexey Kardashevskiy 2015-11-23 23:42 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 35/50] powerpc/pci: Don't scan empty slot Gavin Shan 2015-11-04 13:12 ` [PATCH v7 37/50] powerpc/powernv: Simplify pnv_eeh_reset() Gavin Shan 2015-11-12 5:11 ` Daniel Axtens 2015-11-12 5:11 ` Daniel Axtens 2015-11-12 6:11 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 38/50] powerpc/powernv: Exclude root bus in pnv_pci_reset_secondary_bus() Gavin Shan 2015-11-12 22:59 ` Daniel Axtens 2015-11-12 22:59 ` Daniel Axtens 2015-11-12 23:25 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 39/50] powerpc/powernv: Fundamental reset " Gavin Shan 2015-11-12 6:15 ` Gavin Shan 2015-11-13 0:08 ` Daniel Axtens 2015-11-13 0:08 ` Daniel Axtens 2015-11-13 0:20 ` Gavin Shan [not found] ` <87fv0azrpe.fsf-lvn/ZZ/ogF85kJ7NmlRacFaTQe2KTcn/@public.gmane.org> 2015-11-13 0:23 ` Benjamin Herrenschmidt 2015-11-13 0:23 ` Benjamin Herrenschmidt 2015-11-13 0:23 ` Daniel Axtens 2015-11-13 0:23 ` Daniel Axtens 2015-11-04 13:12 ` [PATCH v7 40/50] powerpc/powernv: Support PCI slot ID Gavin Shan 2015-11-04 13:12 ` [PATCH v7 41/50] powerpc/powernv: Use firmware PCI slot reset infrastructure Gavin Shan 2015-11-04 13:12 ` [PATCH v7 42/50] powerpc/powernv: Functions to get/set PCI slot status Gavin Shan 2015-11-04 13:12 ` [PATCH v7 43/50] powerpc/powernv: Select OF_DYNAMIC Gavin Shan 2015-11-04 13:12 ` [PATCH v7 44/50] drivers/of: Split unflatten_dt_node() Gavin Shan 2015-11-04 18:43 ` Rob Herring 2015-11-04 23:05 ` Gavin Shan 2015-11-04 13:12 ` [PATCH v7 45/50] drivers/of: Avoid recursively calling unflatten_dt_node() Gavin Shan 2015-11-04 16:07 ` Rob Herring 2015-11-04 23:23 ` Gavin Shan 2015-11-04 23:26 ` Gavin Shan [not found] ` <CAL_JsqJGpV-+JYyA1g0dw_nEduhmrMEouTH03kHtuCkGSOP57Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-05-13 7:16 ` Geert Uytterhoeven 2016-05-13 7:16 ` Geert Uytterhoeven 2016-05-13 11:31 ` [PATCH] drivers/of: Fix build warning in populate_node() Gavin Shan 2016-05-16 14:11 ` Rob Herring [not found] ` <1446642770-4681-46-git-send-email-gwshan-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> 2015-12-06 20:28 ` [PATCH v7 45/50] drivers/of: Avoid recursively calling unflatten_dt_node() Rob Herring 2015-12-06 20:28 ` Rob Herring [not found] ` <CAL_Jsq+BnPEKkRgQX4+e0MA9dKLVLhy8rVF25Fr9yXL2jp+WLA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-12-06 21:49 ` Guenter Roeck 2015-12-06 21:49 ` Guenter Roeck 2015-12-06 23:54 ` Benjamin Herrenschmidt 2015-12-06 23:54 ` Benjamin Herrenschmidt 2015-12-07 2:21 ` Guenter Roeck 2015-12-07 2:33 ` Rob Herring 2015-12-07 3:40 ` Guenter Roeck 2015-11-04 13:12 ` [PATCH v7 46/50] drivers/of: Rename unflatten_dt_node() Gavin Shan 2015-11-04 13:12 ` [PATCH v7 48/50] drivers/of: Return allocated memory from of_fdt_unflatten_tree() Gavin Shan 2015-11-04 13:12 ` [PATCH v7 50/50] PCI/hotplug: PowerPC PowerNV PCI hotplug driver Gavin Shan [not found] ` <1446642770-4681-51-git-send-email-gwshan-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> 2015-11-18 7:33 ` Alexey Kardashevskiy 2015-11-18 7:33 ` Alexey Kardashevskiy 2015-11-23 23:16 ` Gavin Shan 2015-11-09 3:09 ` [PATCH v7 00/50] powerpc/powernv: PCI hotplug support Gavin Shan 2015-11-09 4:24 ` Pramod Sudheendra 2015-11-09 4:24 ` Pramod Sudheendra 2015-11-09 4:29 ` Gavin Shan 2015-11-09 6:43 ` Benjamin Herrenschmidt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1446642770-4681-20-git-send-email-gwshan@linux.vnet.ibm.com \ --to=gwshan-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \ --cc=aik-sLpHqDYs0B2HXe+LvDLADg@public.gmane.org \ --cc=benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org \ --cc=bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ --cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \ --cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \ --cc=mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org \ --cc=panto-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org \ --cc=robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.