diff options
-rw-r--r-- | arch/arm/mach-integrator/pci_v3.c | 2 | ||||
-rw-r--r-- | arch/microblaze/pci/pci-common.c | 2 | ||||
-rw-r--r-- | arch/mips/pci/fixup-lantiq.c | 2 | ||||
-rw-r--r-- | arch/mips/pci/pci-rt3883.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci-common.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/celleb_scc_pciex.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/celleb_scc_sio.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spider-pic.c | 7 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spu_manage.c | 3 | ||||
-rw-r--r-- | arch/powerpc/platforms/fsl_uli1575.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/event_sources.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/devicetree.c | 2 | ||||
-rw-r--r-- | drivers/of/irq.c | 2 | ||||
-rw-r--r-- | drivers/pci/host/pci-mvebu.c | 2 | ||||
-rw-r--r-- | include/linux/of_irq.h | 4 | ||||
-rw-r--r-- | kernel/irq/irqdomain.c | 13 |
16 files changed, 22 insertions, 30 deletions
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c index 2d6b4da90fb4..bb3aeb31a54e 100644 --- a/arch/arm/mach-integrator/pci_v3.c +++ b/arch/arm/mach-integrator/pci_v3.c | |||
@@ -847,7 +847,7 @@ static int __init pci_v3_map_irq_dt(const struct pci_dev *dev, u8 slot, u8 pin) | |||
847 | return 0; | 847 | return 0; |
848 | } | 848 | } |
849 | 849 | ||
850 | return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 850 | return irq_create_of_mapping(&oirq); |
851 | } | 851 | } |
852 | 852 | ||
853 | static int __init pci_v3_dtprobe(struct platform_device *pdev, | 853 | static int __init pci_v3_dtprobe(struct platform_device *pdev, |
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c index c9302c4f8a57..60b386c72c57 100644 --- a/arch/microblaze/pci/pci-common.c +++ b/arch/microblaze/pci/pci-common.c | |||
@@ -246,7 +246,7 @@ int pci_read_irq_line(struct pci_dev *pci_dev) | |||
246 | oirq.args_count, oirq.args[0], oirq.args[1], | 246 | oirq.args_count, oirq.args[0], oirq.args[1], |
247 | of_node_full_name(oirq.np)); | 247 | of_node_full_name(oirq.np)); |
248 | 248 | ||
249 | virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 249 | virq = irq_create_of_mapping(&oirq); |
250 | } | 250 | } |
251 | if (!virq) { | 251 | if (!virq) { |
252 | pr_debug(" Failed to map !\n"); | 252 | pr_debug(" Failed to map !\n"); |
diff --git a/arch/mips/pci/fixup-lantiq.c b/arch/mips/pci/fixup-lantiq.c index 81ff0b5e6efa..aef60e75003e 100644 --- a/arch/mips/pci/fixup-lantiq.c +++ b/arch/mips/pci/fixup-lantiq.c | |||
@@ -33,7 +33,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | |||
33 | slot, pin); | 33 | slot, pin); |
34 | return 0; | 34 | return 0; |
35 | } | 35 | } |
36 | irq = irq_create_of_mapping(dev_irq.np, dev_irq.args, dev_irq.args_count); | 36 | irq = irq_create_of_mapping(&dev_irq); |
37 | dev_info(&dev->dev, "SLOT:%d PIN:%d IRQ:%d\n", slot, pin, irq); | 37 | dev_info(&dev->dev, "SLOT:%d PIN:%d IRQ:%d\n", slot, pin, irq); |
38 | return irq; | 38 | return irq; |
39 | } | 39 | } |
diff --git a/arch/mips/pci/pci-rt3883.c b/arch/mips/pci/pci-rt3883.c index 0f08a5ba0b2a..eadc4310cd36 100644 --- a/arch/mips/pci/pci-rt3883.c +++ b/arch/mips/pci/pci-rt3883.c | |||
@@ -594,7 +594,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | |||
594 | return 0; | 594 | return 0; |
595 | } | 595 | } |
596 | 596 | ||
597 | irq = irq_create_of_mapping(dev_irq.np, dev_irq.args, dev_irq.args_count); | 597 | irq = irq_create_of_mapping(&dev_irq); |
598 | 598 | ||
599 | if (irq == 0) | 599 | if (irq == 0) |
600 | pr_crit("pci %s: no irq found for pin %u\n", | 600 | pr_crit("pci %s: no irq found for pin %u\n", |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 96c46235fda2..a1e3e40ca3fd 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -266,7 +266,7 @@ static int pci_read_irq_line(struct pci_dev *pci_dev) | |||
266 | oirq.args_count, oirq.args[0], oirq.args[1], | 266 | oirq.args_count, oirq.args[0], oirq.args[1], |
267 | of_node_full_name(oirq.np)); | 267 | of_node_full_name(oirq.np)); |
268 | 268 | ||
269 | virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 269 | virq = irq_create_of_mapping(&oirq); |
270 | } | 270 | } |
271 | if(virq == NO_IRQ) { | 271 | if(virq == NO_IRQ) { |
272 | pr_debug(" Failed to map !\n"); | 272 | pr_debug(" Failed to map !\n"); |
diff --git a/arch/powerpc/platforms/cell/celleb_scc_pciex.c b/arch/powerpc/platforms/cell/celleb_scc_pciex.c index e8d34d1f640d..b3ea96db5b06 100644 --- a/arch/powerpc/platforms/cell/celleb_scc_pciex.c +++ b/arch/powerpc/platforms/cell/celleb_scc_pciex.c | |||
@@ -511,7 +511,7 @@ static __init int celleb_setup_pciex(struct device_node *node, | |||
511 | pr_err("PCIEXC:Failed to map irq\n"); | 511 | pr_err("PCIEXC:Failed to map irq\n"); |
512 | goto error; | 512 | goto error; |
513 | } | 513 | } |
514 | virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 514 | virq = irq_create_of_mapping(&oirq); |
515 | if (request_irq(virq, pciex_handle_internal_irq, | 515 | if (request_irq(virq, pciex_handle_internal_irq, |
516 | 0, "pciex", (void *)phb)) { | 516 | 0, "pciex", (void *)phb)) { |
517 | pr_err("PCIEXC:Failed to request irq\n"); | 517 | pr_err("PCIEXC:Failed to request irq\n"); |
diff --git a/arch/powerpc/platforms/cell/celleb_scc_sio.c b/arch/powerpc/platforms/cell/celleb_scc_sio.c index 06046d512130..c8eb57193826 100644 --- a/arch/powerpc/platforms/cell/celleb_scc_sio.c +++ b/arch/powerpc/platforms/cell/celleb_scc_sio.c | |||
@@ -66,7 +66,7 @@ static int __init txx9_serial_init(void) | |||
66 | #ifdef CONFIG_SERIAL_TXX9_CONSOLE | 66 | #ifdef CONFIG_SERIAL_TXX9_CONSOLE |
67 | req.membase = ioremap(req.mapbase, 0x24); | 67 | req.membase = ioremap(req.mapbase, 0x24); |
68 | #endif | 68 | #endif |
69 | req.irq = irq_create_of_mapping(irq.np, irq.args, irq.args_count); | 69 | req.irq = irq_create_of_mapping(&irq); |
70 | req.flags |= UPF_IOREMAP | UPF_BUGGY_UART | 70 | req.flags |= UPF_IOREMAP | UPF_BUGGY_UART |
71 | /*HAVE_CTS_LINE*/; | 71 | /*HAVE_CTS_LINE*/; |
72 | req.uartclk = 83300000; | 72 | req.uartclk = 83300000; |
diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c index 6e842fdbfcab..d20680446174 100644 --- a/arch/powerpc/platforms/cell/spider-pic.c +++ b/arch/powerpc/platforms/cell/spider-pic.c | |||
@@ -236,11 +236,8 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic) | |||
236 | * tree in case the device-tree is ever fixed | 236 | * tree in case the device-tree is ever fixed |
237 | */ | 237 | */ |
238 | struct of_phandle_args oirq; | 238 | struct of_phandle_args oirq; |
239 | if (of_irq_parse_one(pic->host->of_node, 0, &oirq) == 0) { | 239 | if (of_irq_parse_one(pic->host->of_node, 0, &oirq) == 0) |
240 | virq = irq_create_of_mapping(oirq.np, oirq.args, | 240 | return irq_create_of_mapping(&oirq); |
241 | oirq.args_count); | ||
242 | return virq; | ||
243 | } | ||
244 | 241 | ||
245 | /* Now do the horrible hacks */ | 242 | /* Now do the horrible hacks */ |
246 | tmp = of_get_property(pic->host->of_node, "#interrupt-cells", NULL); | 243 | tmp = of_get_property(pic->host->of_node, "#interrupt-cells", NULL); |
diff --git a/arch/powerpc/platforms/cell/spu_manage.c b/arch/powerpc/platforms/cell/spu_manage.c index e9eb4f83b1d5..c3327f3d8cf7 100644 --- a/arch/powerpc/platforms/cell/spu_manage.c +++ b/arch/powerpc/platforms/cell/spu_manage.c | |||
@@ -190,8 +190,7 @@ static int __init spu_map_interrupts(struct spu *spu, struct device_node *np) | |||
190 | ret = -EINVAL; | 190 | ret = -EINVAL; |
191 | pr_debug(" irq %d no 0x%x on %s\n", i, oirq.args[0], | 191 | pr_debug(" irq %d no 0x%x on %s\n", i, oirq.args[0], |
192 | oirq.np->full_name); | 192 | oirq.np->full_name); |
193 | spu->irqs[i] = irq_create_of_mapping(oirq.np, | 193 | spu->irqs[i] = irq_create_of_mapping(&oirq); |
194 | oirq.args, oirq.args_count); | ||
195 | if (spu->irqs[i] == NO_IRQ) { | 194 | if (spu->irqs[i] == NO_IRQ) { |
196 | pr_debug("spu_new: failed to map it !\n"); | 195 | pr_debug("spu_new: failed to map it !\n"); |
197 | goto err; | 196 | goto err; |
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c index 288226deffa3..8904046556ad 100644 --- a/arch/powerpc/platforms/fsl_uli1575.c +++ b/arch/powerpc/platforms/fsl_uli1575.c | |||
@@ -334,7 +334,7 @@ static void hpcd_final_uli5288(struct pci_dev *dev) | |||
334 | laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8); | 334 | laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8); |
335 | laddr[1] = laddr[2] = 0; | 335 | laddr[1] = laddr[2] = 0; |
336 | of_irq_parse_raw(hosenode, &pin, 1, laddr, &oirq); | 336 | of_irq_parse_raw(hosenode, &pin, 1, laddr, &oirq); |
337 | dev->irq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 337 | dev->irq = irq_create_of_mapping(&oirq); |
338 | } | 338 | } |
339 | 339 | ||
340 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, hpcd_quirk_uli1575); | 340 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, hpcd_quirk_uli1575); |
diff --git a/arch/powerpc/platforms/pseries/event_sources.c b/arch/powerpc/platforms/pseries/event_sources.c index 6dcf9cc38ffb..18380e8f6dfe 100644 --- a/arch/powerpc/platforms/pseries/event_sources.c +++ b/arch/powerpc/platforms/pseries/event_sources.c | |||
@@ -59,8 +59,7 @@ void request_event_sources_irqs(struct device_node *np, | |||
59 | index++) { | 59 | index++) { |
60 | if (count > 15) | 60 | if (count > 15) |
61 | break; | 61 | break; |
62 | virqs[count] = irq_create_of_mapping(oirq.np, oirq.args, | 62 | virqs[count] = irq_create_of_mapping(&oirq); |
63 | oirq.args_count); | ||
64 | if (virqs[count] == NO_IRQ) { | 63 | if (virqs[count] == NO_IRQ) { |
65 | pr_err("event-sources: Unable to allocate " | 64 | pr_err("event-sources: Unable to allocate " |
66 | "interrupt number for %s\n", | 65 | "interrupt number for %s\n", |
diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c index 00986988a10e..d39948f654a0 100644 --- a/arch/x86/kernel/devicetree.c +++ b/arch/x86/kernel/devicetree.c | |||
@@ -120,7 +120,7 @@ static int x86_of_pci_irq_enable(struct pci_dev *dev) | |||
120 | if (ret) | 120 | if (ret) |
121 | return ret; | 121 | return ret; |
122 | 122 | ||
123 | virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 123 | virq = irq_create_of_mapping(&oirq); |
124 | if (virq == 0) | 124 | if (virq == 0) |
125 | return -EINVAL; | 125 | return -EINVAL; |
126 | dev->irq = virq; | 126 | dev->irq = virq; |
diff --git a/drivers/of/irq.c b/drivers/of/irq.c index a7db38a63403..84184c44e8db 100644 --- a/drivers/of/irq.c +++ b/drivers/of/irq.c | |||
@@ -41,7 +41,7 @@ unsigned int irq_of_parse_and_map(struct device_node *dev, int index) | |||
41 | if (of_irq_parse_one(dev, index, &oirq)) | 41 | if (of_irq_parse_one(dev, index, &oirq)) |
42 | return 0; | 42 | return 0; |
43 | 43 | ||
44 | return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 44 | return irq_create_of_mapping(&oirq); |
45 | } | 45 | } |
46 | EXPORT_SYMBOL_GPL(irq_of_parse_and_map); | 46 | EXPORT_SYMBOL_GPL(irq_of_parse_and_map); |
47 | 47 | ||
diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c index c5e57f82b9af..3a8d01ec50f7 100644 --- a/drivers/pci/host/pci-mvebu.c +++ b/drivers/pci/host/pci-mvebu.c | |||
@@ -654,7 +654,7 @@ static int __init mvebu_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | |||
654 | if (ret) | 654 | if (ret) |
655 | return ret; | 655 | return ret; |
656 | 656 | ||
657 | return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); | 657 | return irq_create_of_mapping(&oirq); |
658 | } | 658 | } |
659 | 659 | ||
660 | static struct pci_bus *mvebu_pcie_scan_bus(int nr, struct pci_sys_data *sys) | 660 | static struct pci_bus *mvebu_pcie_scan_bus(int nr, struct pci_sys_data *sys) |
diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h index 8d9f85560d48..3bbba8d6adc8 100644 --- a/include/linux/of_irq.h +++ b/include/linux/of_irq.h | |||
@@ -37,9 +37,7 @@ extern int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec, | |||
37 | struct of_phandle_args *out_irq); | 37 | struct of_phandle_args *out_irq); |
38 | extern int of_irq_parse_one(struct device_node *device, int index, | 38 | extern int of_irq_parse_one(struct device_node *device, int index, |
39 | struct of_phandle_args *out_irq); | 39 | struct of_phandle_args *out_irq); |
40 | extern unsigned int irq_create_of_mapping(struct device_node *controller, | 40 | extern unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data); |
41 | const u32 *intspec, | ||
42 | unsigned int intsize); | ||
43 | extern int of_irq_to_resource(struct device_node *dev, int index, | 41 | extern int of_irq_to_resource(struct device_node *dev, int index, |
44 | struct resource *r); | 42 | struct resource *r); |
45 | extern int of_irq_count(struct device_node *dev); | 43 | extern int of_irq_count(struct device_node *dev); |
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c index 706724e9835d..cf68bb36fe58 100644 --- a/kernel/irq/irqdomain.c +++ b/kernel/irq/irqdomain.c | |||
@@ -465,27 +465,26 @@ int irq_create_strict_mappings(struct irq_domain *domain, unsigned int irq_base, | |||
465 | } | 465 | } |
466 | EXPORT_SYMBOL_GPL(irq_create_strict_mappings); | 466 | EXPORT_SYMBOL_GPL(irq_create_strict_mappings); |
467 | 467 | ||
468 | unsigned int irq_create_of_mapping(struct device_node *controller, | 468 | unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data) |
469 | const u32 *intspec, unsigned int intsize) | ||
470 | { | 469 | { |
471 | struct irq_domain *domain; | 470 | struct irq_domain *domain; |
472 | irq_hw_number_t hwirq; | 471 | irq_hw_number_t hwirq; |
473 | unsigned int type = IRQ_TYPE_NONE; | 472 | unsigned int type = IRQ_TYPE_NONE; |
474 | unsigned int virq; | 473 | unsigned int virq; |
475 | 474 | ||
476 | domain = controller ? irq_find_host(controller) : irq_default_domain; | 475 | domain = irq_data->np ? irq_find_host(irq_data->np) : irq_default_domain; |
477 | if (!domain) { | 476 | if (!domain) { |
478 | pr_warn("no irq domain found for %s !\n", | 477 | pr_warn("no irq domain found for %s !\n", |
479 | of_node_full_name(controller)); | 478 | of_node_full_name(irq_data->np)); |
480 | return 0; | 479 | return 0; |
481 | } | 480 | } |
482 | 481 | ||
483 | /* If domain has no translation, then we assume interrupt line */ | 482 | /* If domain has no translation, then we assume interrupt line */ |
484 | if (domain->ops->xlate == NULL) | 483 | if (domain->ops->xlate == NULL) |
485 | hwirq = intspec[0]; | 484 | hwirq = irq_data->args[0]; |
486 | else { | 485 | else { |
487 | if (domain->ops->xlate(domain, controller, intspec, intsize, | 486 | if (domain->ops->xlate(domain, irq_data->np, irq_data->args, |
488 | &hwirq, &type)) | 487 | irq_data->args_count, &hwirq, &type)) |
489 | return 0; | 488 | return 0; |
490 | } | 489 | } |
491 | 490 | ||