From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ig0-f176.google.com ([209.85.213.176]:42973 "EHLO mail-ig0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753373AbaJNS10 (ORCPT ); Tue, 14 Oct 2014 14:27:26 -0400 Received: by mail-ig0-f176.google.com with SMTP id hn15so15754773igb.3 for ; Tue, 14 Oct 2014 11:27:26 -0700 (PDT) Date: Tue, 14 Oct 2014 12:27:22 -0600 From: Bjorn Helgaas To: matt@masarand.com Cc: linux-pci@vger.kernel.org Subject: Re: [PATCH 06/18] Delayed alpha setup of PCI IRQs to bus scan time Message-ID: <20141014182722.GF10125@google.com> References: <1412222866-21068-1-git-send-email-matt@masarand.com> <1412222866-21068-7-git-send-email-matt@masarand.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1412222866-21068-7-git-send-email-matt@masarand.com> Sender: linux-pci-owner@vger.kernel.org List-ID: On Thu, Oct 02, 2014 at 05:07:34AM +0100, matt@masarand.com wrote: > From: Matthew Minter > > PCI IRQ initialisation is currently run during the boot code on alpha, > this has the issue that firstly an extra pass over the PCI bus is > required and second hot-plugged devices which are added after boot have > no way to be assigned an IRQ. This patch set fixes this by defering the > assignment of PCI IRQs untill device enable time which should solve > both of these issues. > > Signed-off-by: Matthew Minter > > --- > arch/alpha/kernel/pci.c | 16 ++++++++++------ > arch/alpha/kernel/sys_nautilus.c | 1 - > 2 files changed, 10 insertions(+), 7 deletions(-) > > diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c > index 076c35c..338537c 100644 > --- a/arch/alpha/kernel/pci.c > +++ b/arch/alpha/kernel/pci.c > @@ -28,7 +28,7 @@ > > > /* > - * Some string constants used by the various core logics. > + * Some string constants used by the various core logics. > */ > > const char *const pci_io_names[] = { > @@ -247,7 +247,7 @@ void pcibios_fixup_bus(struct pci_bus *bus) > if (pci_has_flag(PCI_PROBE_ONLY) && dev && > (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) { > pci_read_bridge_bases(bus); > - } > + } > > list_for_each_entry(dev, &bus->devices, bus_list) { > pdev_save_srm_config(dev); > @@ -338,7 +338,7 @@ common_init_pci(void) > hose->need_domain_info = need_domain_info; > next_busno = bus->busn_res.end + 1; > /* Don't allow 8-bit bus number overflow inside the hose - > - reserve some space for bridges. */ > + reserve some space for bridges. */ Extraneous whitespace changes above. > if (next_busno > 224) { > next_busno = 0; > need_domain_info = 1; > @@ -346,11 +346,15 @@ common_init_pci(void) > } > > pcibios_claim_console_setup(); > - > pci_assign_unassigned_resources(); > - pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq); > } > > +int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) > +{ > + bridge->swizzle_irq = alpha_mv.pci_swizzle; > + bridge->map_irq = alpha_mv.pci_map_irq; > + return 0; > +} > > struct pci_controller * __init > alloc_pci_controller(void) > @@ -387,7 +391,7 @@ sys_pciconfig_iobase(long which, unsigned long bus, unsigned long dfn) > > /* from hose or from bus.devfn */ > if (which & IOBASE_FROM_HOSE) { > - for(hose = hose_head; hose; hose = hose->next) > + for(hose = hose_head; hose; hose = hose->next) Extraneous whitespace change. If you fix this in a separate patch, also add a space after "for". > if (hose->index == bus) break; > if (!hose) return -ENODEV; > } else { > diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c > index 837c0fa..7fb4d51 100644 > --- a/arch/alpha/kernel/sys_nautilus.c > +++ b/arch/alpha/kernel/sys_nautilus.c > @@ -252,7 +252,6 @@ nautilus_init_pci(void) > /* pci_common_swizzle() relies on bus->self being NULL > for the root bus, so just clear it. */ > bus->self = NULL; > - pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq); > } > > /* > -- > 2.1.0 >