Message ID | 1455680668-23298-3-git-send-email-gwshan@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On 02/17/2016 02:43 PM, Gavin Shan wrote: > This overrides pcibios_setup_bridge() that is called to update PCI > bridge windows when PCI resource assignment is completed, to assign > PE and setup various (resource) mapping for the PE in subsequent > patches. > > Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> > --- > arch/powerpc/include/asm/pci-bridge.h | 2 ++ > arch/powerpc/kernel/pci-common.c | 8 ++++++++ > 2 files changed, 10 insertions(+) > > diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h > index 9f165e8..b688d04 100644 > --- a/arch/powerpc/include/asm/pci-bridge.h > +++ b/arch/powerpc/include/asm/pci-bridge.h > @@ -33,6 +33,8 @@ struct pci_controller_ops { > > /* Called during PCI resource reassignment */ > resource_size_t (*window_alignment)(struct pci_bus *, unsigned long type); > + void (*setup_bridge)(struct pci_bus *bus, > + unsigned long type); > void (*reset_secondary_bus)(struct pci_dev *dev); > > #ifdef CONFIG_PCI_MSI > diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c > index 0f7a60f..40df3a5 100644 > --- a/arch/powerpc/kernel/pci-common.c > +++ b/arch/powerpc/kernel/pci-common.c > @@ -124,6 +124,14 @@ resource_size_t pcibios_window_alignment(struct pci_bus *bus, > return 1; > } > > +void pcibios_setup_bridge(struct pci_bus *bus, unsigned long type) > +{ > + struct pci_controller *hose = pci_bus_to_host(bus); > + > + if (hose->controller_ops.setup_bridge) > + hose->controller_ops.setup_bridge(bus, type); > +} > + > void pcibios_reset_secondary_bus(struct pci_dev *dev) > { > struct pci_controller *phb = pci_bus_to_host(dev->bus); >
diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 9f165e8..b688d04 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -33,6 +33,8 @@ struct pci_controller_ops { /* Called during PCI resource reassignment */ resource_size_t (*window_alignment)(struct pci_bus *, unsigned long type); + void (*setup_bridge)(struct pci_bus *bus, + unsigned long type); void (*reset_secondary_bus)(struct pci_dev *dev); #ifdef CONFIG_PCI_MSI diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 0f7a60f..40df3a5 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c @@ -124,6 +124,14 @@ resource_size_t pcibios_window_alignment(struct pci_bus *bus, return 1; } +void pcibios_setup_bridge(struct pci_bus *bus, unsigned long type) +{ + struct pci_controller *hose = pci_bus_to_host(bus); + + if (hose->controller_ops.setup_bridge) + hose->controller_ops.setup_bridge(bus, type); +} + void pcibios_reset_secondary_bus(struct pci_dev *dev) { struct pci_controller *phb = pci_bus_to_host(dev->bus);
This overrides pcibios_setup_bridge() that is called to update PCI bridge windows when PCI resource assignment is completed, to assign PE and setup various (resource) mapping for the PE in subsequent patches. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> --- arch/powerpc/include/asm/pci-bridge.h | 2 ++ arch/powerpc/kernel/pci-common.c | 8 ++++++++ 2 files changed, 10 insertions(+)