Message ID | 1446642770-4681-3-git-send-email-gwshan@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
Gavin Shan <gwshan@linux.vnet.ibm.com> writes: > > +void pcibios_setup_bridge(struct pci_bus *bus, unsigned long type) > +{ > + struct pci_controller *hose = pci_bus_to_host(bus); Very much a nit-pick, but I thought we were trying to move towards using phb instead of hose in new code? Apart from that this looks good. I would probably have merged it with the previous patch, but I know Alexey has been suggesting a lot of splitting and merging previously, so whatever he prefers here is OK. > + > + 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); > -- > 2.1.0 > > -- > 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
On Fri, Nov 06, 2015 at 09:27:42AM +1100, Daniel Axtens wrote: >Gavin Shan <gwshan@linux.vnet.ibm.com> writes: > >> >> +void pcibios_setup_bridge(struct pci_bus *bus, unsigned long type) >> +{ >> + struct pci_controller *hose = pci_bus_to_host(bus); >Very much a nit-pick, but I thought we were trying to move towards using >phb instead of hose in new code? > Take PowerNV platform as an example, "hose" means "struct pci_controller", but "phb" means "struct pnv_phb". We don't have the movement to use "phb" to represent "struct pci_controller". >Apart from that this looks good. I would probably have merged it with >the previous patch, but I know Alexey has been suggesting a lot of >splitting and merging previously, so whatever he prefers here is OK. > I'd like to keep them separate as they're for different subsystem: PCI generic subsystem and PowerPC subsystem. Separate maintainers for them can pick them as they will. >> + >> + 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); >> -- >> 2.1.0 >> >> -- >> 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 -- 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
diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 843dd3a2..6076116 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(+)