powerpc: Fix IRQ assignment for some PCIe devices

Currently, some PCIe devices on POWER6 machines do not get interrupts
assigned correctly. The problem is that OF doesn't create an
"interrupt" property for them. The fix is for of_irq_map_pci to fall
back to using the value in the PCI interrupt-pin register in config
space, as we do when there is no OF device-tree node for the device.

I have verified that this works fine with a pair of Squib-E SAS
adapter on a P6-570.

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by Adhemerval Zanella and committed by Paul Mackerras 4b824de9 3f9b5d4d

+5 -2
+5 -2
arch/powerpc/kernel/prom_parse.c
··· 250 * parsing 251 */ 252 dn = pci_device_to_OF_node(pdev); 253 - if (dn) 254 - return of_irq_map_one(dn, 0, out_irq); 255 256 /* Ok, we don't, time to have fun. Let's start by building up an 257 * interrupt spec. we assume #interrupt-cells is 1, which is standard
··· 250 * parsing 251 */ 252 dn = pci_device_to_OF_node(pdev); 253 + if (dn) { 254 + rc = of_irq_map_one(dn, 0, out_irq); 255 + if (!rc) 256 + return rc; 257 + } 258 259 /* Ok, we don't, time to have fun. Let's start by building up an 260 * interrupt spec. we assume #interrupt-cells is 1, which is standard