From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: bhelgaas@google.com, linux-pci@vger.kernel.org,
Gavin Shan <gwshan@linux.vnet.ibm.com>
Subject: [PATCH v3 01/21] pci: Add pcibios_setup_bridge()
Date: Mon, 27 Apr 2015 16:37:33 +1000 [thread overview]
Message-ID: <1430116673-22500-2-git-send-email-gwshan@linux.vnet.ibm.com> (raw)
In-Reply-To: <1430116673-22500-1-git-send-email-gwshan@linux.vnet.ibm.com>
Currently, PowerPC PowerNV platform utilizes ppc_md.pcibios_fixup(),
which is called for once after PCI probing and resource assignment
are completed, to allocate platform required resources for PCI devices:
PE#, IO and MMIO mapping, DMA address translation (TCE) table etc.
Obviously, it's not hotplug friendly.
The patch adds weak function pcibios_setup_bridge(), which is called
by pci_setup_bridge(). PowerPC PowerNV platform will reuse the function
to assign above platform required resources to newly added PCI devices,
in order to support PCI hotplug on PowerPC PowerNV platform.
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
drivers/pci/setup-bus.c | 12 +++++++++---
include/linux/pci.h | 1 +
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 4fd0cac..a7d0c3c 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -674,7 +674,8 @@ static void pci_setup_bridge_mmio_pref(struct pci_dev *bridge)
pci_write_config_dword(bridge, PCI_PREF_LIMIT_UPPER32, lu);
}
-static void __pci_setup_bridge(struct pci_bus *bus, unsigned long type)
+
+void pci_setup_bridge_resources(struct pci_bus *bus, unsigned long type)
{
struct pci_dev *bridge = bus->self;
@@ -693,12 +694,17 @@ static void __pci_setup_bridge(struct pci_bus *bus, unsigned long type)
pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, bus->bridge_ctl);
}
+void __weak pcibios_setup_bridge(struct pci_bus *bus, unsigned long type)
+{
+ pci_setup_bridge_resources(bus, type);
+}
+
void pci_setup_bridge(struct pci_bus *bus)
{
unsigned long type = IORESOURCE_IO | IORESOURCE_MEM |
IORESOURCE_PREFETCH;
- __pci_setup_bridge(bus, type);
+ pcibios_setup_bridge(bus, type);
}
@@ -1467,7 +1473,7 @@ static void pci_bridge_release_resources(struct pci_bus *bus,
/* avoiding touch the one without PREF */
if (type & IORESOURCE_PREFETCH)
type = IORESOURCE_PREFETCH;
- __pci_setup_bridge(bus, type);
+ pci_setup_bridge_resources(bus, type);
/* for next child res under same bridge */
r->flags = old_flags;
}
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 353db8d..68c5ef9 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1175,6 +1175,7 @@ void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
void *userdata);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
+void pci_setup_bridge_resources(struct pci_bus *bus, unsigned long type);
void pci_setup_bridge(struct pci_bus *bus);
resource_size_t pcibios_window_alignment(struct pci_bus *bus,
unsigned long type);
--
2.1.0
next prev parent reply other threads:[~2015-04-27 6:38 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-27 6:37 [PATCH v3 00/21] PowerPC/PowerNV: PCI Slot Management Gavin Shan
2015-04-27 6:37 ` Gavin Shan [this message]
2015-04-27 6:37 ` [PATCH v3 02/21] powerpc/powernv: Enable M64 on P7IOC Gavin Shan
2015-04-27 6:37 ` [PATCH v3 03/21] powerpc/powernv: M64 support improvement Gavin Shan
2015-04-27 6:37 ` [PATCH v3 04/21] powerpc/powernv: Improve IO and M32 mapping Gavin Shan
2015-04-27 6:37 ` [PATCH v3 05/21] powerpc/powernv: Improve DMA32 segment assignment Gavin Shan
2015-04-27 6:37 ` [PATCH v3 06/21] powerpc/powernv: Create PEs dynamically Gavin Shan
2015-04-27 6:37 ` [PATCH v3 07/21] powerpc/powernv: Release " Gavin Shan
2015-04-27 6:37 ` [PATCH v3 08/21] powerpc/powernv: Drop pnv_ioda_setup_dev_PE() Gavin Shan
2015-04-27 6:37 ` [PATCH v3 09/21] powerpc/eeh: Delay probing EEH device during hotplug Gavin Shan
2015-04-27 6:37 ` [PATCH v3 10/21] powerpc/powernv: Use PCI slot reset infrastructure Gavin Shan
2015-04-27 6:37 ` [PATCH v3 11/21] powerpc/powernv: Fundamental reset for PCI bus reset Gavin Shan
2015-04-27 6:37 ` [PATCH v3 12/21] powerpc/pci: Don't scan empty slot Gavin Shan
2015-04-27 6:37 ` [PATCH v3 13/21] powerpc/pci: Move pcibios_find_pci_bus() around Gavin Shan
2015-04-27 6:37 ` [PATCH v3 14/21] powerpc/powernv: Introduce pnv_pci_poll() Gavin Shan
2015-04-27 6:37 ` [PATCH v3 15/21] powerpc/powernv: Functions to get/reset PCI slot status Gavin Shan
2015-04-27 6:37 ` [PATCH v3 16/21] powerpc/pci: Delay creating pci_dn Gavin Shan
2015-04-27 6:37 ` [PATCH v3 17/21] powerpc/pci: Create eeh_dev while " Gavin Shan
2015-04-27 6:37 ` [PATCH v3 18/21] powerpc/pci: Export traverse_pci_device_nodes() Gavin Shan
2015-04-27 6:37 ` [PATCH v3 19/21] powerpc/pci: Update bridge windows on PCI plugging Gavin Shan
2015-04-27 6:37 ` [PATCH v3 20/21] powerpc/powernv: Select OF_DYNAMIC Gavin Shan
2015-04-27 6:37 ` [PATCH v3 21/21] pci/hotplug: PowerPC PowerNV PCI hotplug driver Gavin Shan
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=1430116673-22500-2-git-send-email-gwshan@linux.vnet.ibm.com \
--to=gwshan@linux.vnet.ibm.com \
--cc=bhelgaas@google.com \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).