Message ID | 1445576642-29624-19-git-send-email-matt@masarand.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
Hi Matthew, [auto build test WARNING on v4.3-rc6 -- if it's inappropriate base, please suggest rules for selecting the more suitable base] url: https://github.com/0day-ci/linux/commits/Matthew-Minter/PCI-Build-setup-irq-o-on-all-arches/20151023-131018 config: microblaze-mmu_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=microblaze All warnings (new ones prefixed by >>): arch/microblaze/pci/pci-common.c: In function 'pcibios_root_bridge_prepare': >> arch/microblaze/pci/pci-common.c:863:18: warning: assignment from incompatible pointer type bridge->map_irq = of_irq_parse_and_map_pci; ^ vim +863 arch/microblaze/pci/pci-common.c 847 pr_debug("PCI: Fixup bus devices %d (%s)\n", 848 bus->number, bus->self ? pci_name(bus->self) : "PHB"); 849 850 list_for_each_entry(dev, &bus->devices, bus_list) { 851 /* Setup OF node pointer in archdata */ 852 dev->dev.of_node = pci_device_to_OF_node(dev); 853 854 /* Fixup NUMA node as it may not be setup yet by the generic 855 * code and is needed by the DMA init 856 */ 857 set_dev_node(&dev->dev, pcibus_to_node(dev->bus)); 858 } 859 } 860 861 int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) 862 { > 863 bridge->map_irq = of_irq_parse_and_map_pci; 864 return 0; 865 } 866 867 void pcibios_fixup_bus(struct pci_bus *bus) 868 { 869 /* When called from the generic PCI probe, read PCI<->PCI bridge 870 * bases. This is -not- called when generating the PCI tree from 871 * the OF device-tree. --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c index ae838ed..99ea108 100644 --- a/arch/microblaze/pci/pci-common.c +++ b/arch/microblaze/pci/pci-common.c @@ -855,12 +855,15 @@ void pcibios_setup_bus_devices(struct pci_bus *bus) * code and is needed by the DMA init */ set_dev_node(&dev->dev, pcibus_to_node(dev->bus)); - - /* Read default IRQs and fixup if necessary */ - dev->irq = of_irq_parse_and_map_pci(dev, 0, 0); } } +int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) +{ + bridge->map_irq = of_irq_parse_and_map_pci; + return 0; +} + void pcibios_fixup_bus(struct pci_bus *bus) { /* When called from the generic PCI probe, read PCI<->PCI bridge
Currently microblaze assigns PCI IRQs during the pcibios phase, this means that devices connected after boot will not be assigned an IRQ, instead the boot code now registers IRQ assignment functions to be called later by the device enable code paths. Signed-off-by: Matthew Minter <matt@masarand.com> --- arch/microblaze/pci/pci-common.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)