Commit 530210c7 authored by Grant Likely's avatar Grant Likely

of/irq: Replace of_irq with of_phandle_args

struct of_irq and struct of_phandle_args are exactly the same structure.
This patch makes the kernel use of_phandle_args everywhere. This in
itself isn't a big deal, but it makes some follow-on patches simpler.
Signed-off-by: default avatarGrant Likely <grant.likely@linaro.org>
Acked-by: default avatarMichal Simek <monstr@monstr.eu>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
parent 0c02c800
...@@ -837,7 +837,7 @@ static struct hw_pci pci_v3 __initdata = { ...@@ -837,7 +837,7 @@ static struct hw_pci pci_v3 __initdata = {
static int __init pci_v3_map_irq_dt(const struct pci_dev *dev, u8 slot, u8 pin) static int __init pci_v3_map_irq_dt(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
struct of_irq oirq; struct of_phandle_args oirq;
int ret; int ret;
ret = of_irq_parse_pci(dev, &oirq); ret = of_irq_parse_pci(dev, &oirq);
...@@ -847,8 +847,7 @@ static int __init pci_v3_map_irq_dt(const struct pci_dev *dev, u8 slot, u8 pin) ...@@ -847,8 +847,7 @@ static int __init pci_v3_map_irq_dt(const struct pci_dev *dev, u8 slot, u8 pin)
return 0; return 0;
} }
return irq_create_of_mapping(oirq.controller, oirq.specifier, return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
} }
static int __init pci_v3_dtprobe(struct platform_device *pdev, static int __init pci_v3_dtprobe(struct platform_device *pdev,
......
...@@ -199,7 +199,7 @@ void pcibios_set_master(struct pci_dev *dev) ...@@ -199,7 +199,7 @@ void pcibios_set_master(struct pci_dev *dev)
*/ */
int pci_read_irq_line(struct pci_dev *pci_dev) int pci_read_irq_line(struct pci_dev *pci_dev)
{ {
struct of_irq oirq; struct of_phandle_args oirq;
unsigned int virq; unsigned int virq;
/* The current device-tree that iSeries generates from the HV /* The current device-tree that iSeries generates from the HV
...@@ -243,11 +243,10 @@ int pci_read_irq_line(struct pci_dev *pci_dev) ...@@ -243,11 +243,10 @@ int pci_read_irq_line(struct pci_dev *pci_dev)
irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW); irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW);
} else { } else {
pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n",
oirq.size, oirq.specifier[0], oirq.specifier[1], oirq.args_count, oirq.args[0], oirq.args[1],
of_node_full_name(oirq.controller)); of_node_full_name(oirq.np));
virq = irq_create_of_mapping(oirq.controller, oirq.specifier, virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
} }
if (!virq) { if (!virq) {
pr_debug(" Failed to map !\n"); pr_debug(" Failed to map !\n");
......
...@@ -25,7 +25,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev) ...@@ -25,7 +25,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev)
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
struct of_irq dev_irq; struct of_phandle_args dev_irq;
int irq; int irq;
if (of_irq_parse_pci(dev, &dev_irq)) { if (of_irq_parse_pci(dev, &dev_irq)) {
...@@ -33,8 +33,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) ...@@ -33,8 +33,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
slot, pin); slot, pin);
return 0; return 0;
} }
irq = irq_create_of_mapping(dev_irq.controller, dev_irq.specifier, irq = irq_create_of_mapping(dev_irq.np, dev_irq.args, dev_irq.args_count);
dev_irq.size);
dev_info(&dev->dev, "SLOT:%d PIN:%d IRQ:%d\n", slot, pin, irq); dev_info(&dev->dev, "SLOT:%d PIN:%d IRQ:%d\n", slot, pin, irq);
return irq; return irq;
} }
...@@ -583,7 +583,7 @@ static int rt3883_pci_probe(struct platform_device *pdev) ...@@ -583,7 +583,7 @@ static int rt3883_pci_probe(struct platform_device *pdev)
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
struct of_irq dev_irq; struct of_phandle_args dev_irq;
int err; int err;
int irq; int irq;
...@@ -594,9 +594,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) ...@@ -594,9 +594,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
return 0; return 0;
} }
irq = irq_create_of_mapping(dev_irq.controller, irq = irq_create_of_mapping(dev_irq.np, dev_irq.args, dev_irq.args_count);
dev_irq.specifier,
dev_irq.size);
if (irq == 0) if (irq == 0)
pr_crit("pci %s: no irq found for pin %u\n", pr_crit("pci %s: no irq found for pin %u\n",
......
...@@ -228,7 +228,7 @@ int pcibios_add_platform_entries(struct pci_dev *pdev) ...@@ -228,7 +228,7 @@ int pcibios_add_platform_entries(struct pci_dev *pdev)
*/ */
static int pci_read_irq_line(struct pci_dev *pci_dev) static int pci_read_irq_line(struct pci_dev *pci_dev)
{ {
struct of_irq oirq; struct of_phandle_args oirq;
unsigned int virq; unsigned int virq;
pr_debug("PCI: Try to map irq for %s...\n", pci_name(pci_dev)); pr_debug("PCI: Try to map irq for %s...\n", pci_name(pci_dev));
...@@ -263,11 +263,10 @@ static int pci_read_irq_line(struct pci_dev *pci_dev) ...@@ -263,11 +263,10 @@ static int pci_read_irq_line(struct pci_dev *pci_dev)
irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW); irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW);
} else { } else {
pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n",
oirq.size, oirq.specifier[0], oirq.specifier[1], oirq.args_count, oirq.args[0], oirq.args[1],
of_node_full_name(oirq.controller)); of_node_full_name(oirq.np));
virq = irq_create_of_mapping(oirq.controller, oirq.specifier, virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
} }
if(virq == NO_IRQ) { if(virq == NO_IRQ) {
pr_debug(" Failed to map !\n"); pr_debug(" Failed to map !\n");
......
...@@ -486,7 +486,7 @@ static __init int celleb_setup_pciex(struct device_node *node, ...@@ -486,7 +486,7 @@ static __init int celleb_setup_pciex(struct device_node *node,
struct pci_controller *phb) struct pci_controller *phb)
{ {
struct resource r; struct resource r;
struct of_irq oirq; struct of_phandle_args oirq;
int virq; int virq;
/* SMMIO registers; used inside this file */ /* SMMIO registers; used inside this file */
...@@ -511,8 +511,7 @@ static __init int celleb_setup_pciex(struct device_node *node, ...@@ -511,8 +511,7 @@ static __init int celleb_setup_pciex(struct device_node *node,
pr_err("PCIEXC:Failed to map irq\n"); pr_err("PCIEXC:Failed to map irq\n");
goto error; goto error;
} }
virq = irq_create_of_mapping(oirq.controller, oirq.specifier, virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
if (request_irq(virq, pciex_handle_internal_irq, if (request_irq(virq, pciex_handle_internal_irq,
0, "pciex", (void *)phb)) { 0, "pciex", (void *)phb)) {
pr_err("PCIEXC:Failed to request irq\n"); pr_err("PCIEXC:Failed to request irq\n");
......
...@@ -45,7 +45,7 @@ static int __init txx9_serial_init(void) ...@@ -45,7 +45,7 @@ static int __init txx9_serial_init(void)
struct device_node *node; struct device_node *node;
int i; int i;
struct uart_port req; struct uart_port req;
struct of_irq irq; struct of_phandle_args irq;
struct resource res; struct resource res;
for_each_compatible_node(node, "serial", "toshiba,sio-scc") { for_each_compatible_node(node, "serial", "toshiba,sio-scc") {
...@@ -66,8 +66,7 @@ static int __init txx9_serial_init(void) ...@@ -66,8 +66,7 @@ static int __init txx9_serial_init(void)
#ifdef CONFIG_SERIAL_TXX9_CONSOLE #ifdef CONFIG_SERIAL_TXX9_CONSOLE
req.membase = ioremap(req.mapbase, 0x24); req.membase = ioremap(req.mapbase, 0x24);
#endif #endif
req.irq = irq_create_of_mapping(irq.controller, req.irq = irq_create_of_mapping(irq.np, irq.args, irq.args_count);
irq.specifier, irq.size);
req.flags |= UPF_IOREMAP | UPF_BUGGY_UART req.flags |= UPF_IOREMAP | UPF_BUGGY_UART
/*HAVE_CTS_LINE*/; /*HAVE_CTS_LINE*/;
req.uartclk = 83300000; req.uartclk = 83300000;
......
...@@ -235,10 +235,10 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic) ...@@ -235,10 +235,10 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
/* First, we check whether we have a real "interrupts" in the device /* First, we check whether we have a real "interrupts" in the device
* tree in case the device-tree is ever fixed * tree in case the device-tree is ever fixed
*/ */
struct of_irq oirq; struct of_phandle_args oirq;
if (of_irq_parse_one(pic->host->of_node, 0, &oirq) == 0) { if (of_irq_parse_one(pic->host->of_node, 0, &oirq) == 0) {
virq = irq_create_of_mapping(oirq.controller, oirq.specifier, virq = irq_create_of_mapping(oirq.np, oirq.args,
oirq.size); oirq.args_count);
return virq; return virq;
} }
......
...@@ -177,7 +177,7 @@ static int __init spu_map_device_old(struct spu *spu) ...@@ -177,7 +177,7 @@ static int __init spu_map_device_old(struct spu *spu)
static int __init spu_map_interrupts(struct spu *spu, struct device_node *np) static int __init spu_map_interrupts(struct spu *spu, struct device_node *np)
{ {
struct of_irq oirq; struct of_phandle_args oirq;
int ret; int ret;
int i; int i;
...@@ -188,10 +188,10 @@ static int __init spu_map_interrupts(struct spu *spu, struct device_node *np) ...@@ -188,10 +188,10 @@ static int __init spu_map_interrupts(struct spu *spu, struct device_node *np)
goto err; goto err;
} }
ret = -EINVAL; ret = -EINVAL;
pr_debug(" irq %d no 0x%x on %s\n", i, oirq.specifier[0], pr_debug(" irq %d no 0x%x on %s\n", i, oirq.args[0],
oirq.controller->full_name); oirq.np->full_name);
spu->irqs[i] = irq_create_of_mapping(oirq.controller, spu->irqs[i] = irq_create_of_mapping(oirq.np,
oirq.specifier, oirq.size); oirq.args, oirq.args_count);
if (spu->irqs[i] == NO_IRQ) { if (spu->irqs[i] == NO_IRQ) {
pr_debug("spu_new: failed to map it !\n"); pr_debug("spu_new: failed to map it !\n");
goto err; goto err;
...@@ -200,7 +200,7 @@ static int __init spu_map_interrupts(struct spu *spu, struct device_node *np) ...@@ -200,7 +200,7 @@ static int __init spu_map_interrupts(struct spu *spu, struct device_node *np)
return 0; return 0;
err: err:
pr_debug("failed to map irq %x for spu %s\n", *oirq.specifier, pr_debug("failed to map irq %x for spu %s\n", *oirq.args,
spu->name); spu->name);
for (; i >= 0; i--) { for (; i >= 0; i--) {
if (spu->irqs[i] != NO_IRQ) if (spu->irqs[i] != NO_IRQ)
......
...@@ -321,8 +321,8 @@ static void hpcd_final_uli5288(struct pci_dev *dev) ...@@ -321,8 +321,8 @@ static void hpcd_final_uli5288(struct pci_dev *dev)
{ {
struct pci_controller *hose = pci_bus_to_host(dev->bus); struct pci_controller *hose = pci_bus_to_host(dev->bus);
struct device_node *hosenode = hose ? hose->dn : NULL; struct device_node *hosenode = hose ? hose->dn : NULL;
struct of_irq oirq; struct of_phandle_args oirq;
int virq, pin = 2; int pin = 2;
u32 laddr[3]; u32 laddr[3];
if (!machine_is(mpc86xx_hpcd)) if (!machine_is(mpc86xx_hpcd))
...@@ -334,9 +334,7 @@ static void hpcd_final_uli5288(struct pci_dev *dev) ...@@ -334,9 +334,7 @@ static void hpcd_final_uli5288(struct pci_dev *dev)
laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8); laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8);
laddr[1] = laddr[2] = 0; laddr[1] = laddr[2] = 0;
of_irq_parse_raw(hosenode, &pin, 1, laddr, &oirq); of_irq_parse_raw(hosenode, &pin, 1, laddr, &oirq);
virq = irq_create_of_mapping(oirq.controller, oirq.specifier, dev->irq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
dev->irq = virq;
} }
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, hpcd_quirk_uli1575); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, hpcd_quirk_uli1575);
......
...@@ -394,7 +394,7 @@ static void __init pmac_pic_probe_oldstyle(void) ...@@ -394,7 +394,7 @@ static void __init pmac_pic_probe_oldstyle(void)
} }
int of_irq_parse_oldworld(struct device_node *device, int index, int of_irq_parse_oldworld(struct device_node *device, int index,
struct of_irq *out_irq) struct of_phandle_args *out_irq)
{ {
const u32 *ints = NULL; const u32 *ints = NULL;
int intlen; int intlen;
...@@ -422,9 +422,9 @@ int of_irq_parse_oldworld(struct device_node *device, int index, ...@@ -422,9 +422,9 @@ int of_irq_parse_oldworld(struct device_node *device, int index,
if (index >= intlen) if (index >= intlen)
return -EINVAL; return -EINVAL;
out_irq->controller = NULL; out_irq->np = NULL;
out_irq->specifier[0] = ints[index]; out_irq->args[0] = ints[index];
out_irq->size = 1; out_irq->args_count = 1;
return 0; return 0;
} }
......
...@@ -25,7 +25,7 @@ void request_event_sources_irqs(struct device_node *np, ...@@ -25,7 +25,7 @@ void request_event_sources_irqs(struct device_node *np,
const char *name) const char *name)
{ {
int i, index, count = 0; int i, index, count = 0;
struct of_irq oirq; struct of_phandle_args oirq;
const u32 *opicprop; const u32 *opicprop;
unsigned int opicplen; unsigned int opicplen;
unsigned int virqs[16]; unsigned int virqs[16];
...@@ -59,9 +59,8 @@ void request_event_sources_irqs(struct device_node *np, ...@@ -59,9 +59,8 @@ void request_event_sources_irqs(struct device_node *np,
index++) { index++) {
if (count > 15) if (count > 15)
break; break;
virqs[count] = irq_create_of_mapping(oirq.controller, virqs[count] = irq_create_of_mapping(oirq.np, oirq.args,
oirq.specifier, oirq.args_count);
oirq.size);
if (virqs[count] == NO_IRQ) { if (virqs[count] == NO_IRQ) {
pr_err("event-sources: Unable to allocate " pr_err("event-sources: Unable to allocate "
"interrupt number for %s\n", "interrupt number for %s\n",
......
...@@ -35,7 +35,7 @@ static int mpic_msi_reserve_u3_hwirqs(struct mpic *mpic) ...@@ -35,7 +35,7 @@ static int mpic_msi_reserve_u3_hwirqs(struct mpic *mpic)
const struct irq_domain_ops *ops = mpic->irqhost->ops; const struct irq_domain_ops *ops = mpic->irqhost->ops;
struct device_node *np; struct device_node *np;
int flags, index, i; int flags, index, i;
struct of_irq oirq; struct of_phandle_args oirq;
pr_debug("mpic: found U3, guessing msi allocator setup\n"); pr_debug("mpic: found U3, guessing msi allocator setup\n");
...@@ -64,8 +64,8 @@ static int mpic_msi_reserve_u3_hwirqs(struct mpic *mpic) ...@@ -64,8 +64,8 @@ static int mpic_msi_reserve_u3_hwirqs(struct mpic *mpic)
index = 0; index = 0;
while (of_irq_parse_one(np, index++, &oirq) == 0) { while (of_irq_parse_one(np, index++, &oirq) == 0) {
ops->xlate(mpic->irqhost, NULL, oirq.specifier, ops->xlate(mpic->irqhost, NULL, oirq.args,
oirq.size, &hwirq, &flags); oirq.args_count, &hwirq, &flags);
msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, hwirq); msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, hwirq);
} }
} }
......
...@@ -105,7 +105,7 @@ struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus) ...@@ -105,7 +105,7 @@ struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus)
static int x86_of_pci_irq_enable(struct pci_dev *dev) static int x86_of_pci_irq_enable(struct pci_dev *dev)
{ {
struct of_irq oirq; struct of_phandle_args oirq;
u32 virq; u32 virq;
int ret; int ret;
u8 pin; u8 pin;
...@@ -120,8 +120,7 @@ static int x86_of_pci_irq_enable(struct pci_dev *dev) ...@@ -120,8 +120,7 @@ static int x86_of_pci_irq_enable(struct pci_dev *dev)
if (ret) if (ret)
return ret; return ret;
virq = irq_create_of_mapping(oirq.controller, oirq.specifier, virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
if (virq == 0) if (virq == 0)
return -EINVAL; return -EINVAL;
dev->irq = virq; dev->irq = virq;
......
...@@ -36,13 +36,12 @@ ...@@ -36,13 +36,12 @@
*/ */
unsigned int irq_of_parse_and_map(struct device_node *dev, int index) unsigned int irq_of_parse_and_map(struct device_node *dev, int index)
{ {
struct of_irq oirq; struct of_phandle_args oirq;
if (of_irq_parse_one(dev, index, &oirq)) if (of_irq_parse_one(dev, index, &oirq))
return 0; return 0;
return irq_create_of_mapping(oirq.controller, oirq.specifier, return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
} }
EXPORT_SYMBOL_GPL(irq_of_parse_and_map); EXPORT_SYMBOL_GPL(irq_of_parse_and_map);
...@@ -94,7 +93,7 @@ struct device_node *of_irq_find_parent(struct device_node *child) ...@@ -94,7 +93,7 @@ struct device_node *of_irq_find_parent(struct device_node *child)
* node exist for the parent. * node exist for the parent.
*/ */
int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec, int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec,
u32 ointsize, const __be32 *addr, struct of_irq *out_irq) u32 ointsize, const __be32 *addr, struct of_phandle_args *out_irq)
{ {
struct device_node *ipar, *tnode, *old = NULL, *newpar = NULL; struct device_node *ipar, *tnode, *old = NULL, *newpar = NULL;
const __be32 *tmp, *imap, *imask; const __be32 *tmp, *imap, *imask;
...@@ -156,10 +155,10 @@ int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec, ...@@ -156,10 +155,10 @@ int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec,
NULL) { NULL) {
pr_debug(" -> got it !\n"); pr_debug(" -> got it !\n");
for (i = 0; i < intsize; i++) for (i = 0; i < intsize; i++)
out_irq->specifier[i] = out_irq->args[i] =
of_read_number(intspec +i, 1); of_read_number(intspec +i, 1);
out_irq->size = intsize; out_irq->args_count = intsize;
out_irq->controller = ipar; out_irq->np = ipar;
of_node_put(old); of_node_put(old);
return 0; return 0;
} }
...@@ -280,7 +279,7 @@ EXPORT_SYMBOL_GPL(of_irq_parse_raw); ...@@ -280,7 +279,7 @@ EXPORT_SYMBOL_GPL(of_irq_parse_raw);
* This function resolves an interrupt, walking the tree, for a given * This function resolves an interrupt, walking the tree, for a given
* device-tree node. It's the high level pendant to of_irq_parse_raw(). * device-tree node. It's the high level pendant to of_irq_parse_raw().
*/ */
int of_irq_parse_one(struct device_node *device, int index, struct of_irq *out_irq) int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_args *out_irq)
{ {
struct device_node *p; struct device_node *p;
const __be32 *intspec, *tmp, *addr; const __be32 *intspec, *tmp, *addr;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* PCI tree until an device-node is found, at which point it will finish * PCI tree until an device-node is found, at which point it will finish
* resolving using the OF tree walking. * resolving using the OF tree walking.
*/ */
int of_irq_parse_pci(const struct pci_dev *pdev, struct of_irq *out_irq) int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq)
{ {
struct device_node *dn, *ppnode; struct device_node *dn, *ppnode;
struct pci_dev *ppdev; struct pci_dev *ppdev;
......
...@@ -647,15 +647,14 @@ static int __init mvebu_pcie_setup(int nr, struct pci_sys_data *sys) ...@@ -647,15 +647,14 @@ static int __init mvebu_pcie_setup(int nr, struct pci_sys_data *sys)
static int __init mvebu_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) static int __init mvebu_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
struct of_irq oirq; struct of_phandle_args oirq;
int ret; int ret;
ret = of_irq_parse_pci(dev, &oirq); ret = of_irq_parse_pci(dev, &oirq);
if (ret) if (ret)
return ret; return ret;
return irq_create_of_mapping(oirq.controller, oirq.specifier, return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count);
oirq.size);
} }
static struct pci_bus *mvebu_pcie_scan_bus(int nr, struct pci_sys_data *sys) static struct pci_bus *mvebu_pcie_scan_bus(int nr, struct pci_sys_data *sys)
......
...@@ -8,22 +8,6 @@ ...@@ -8,22 +8,6 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/of.h> #include <linux/of.h>
/**
* of_irq - container for device_node/irq_specifier pair for an irq controller
* @controller: pointer to interrupt controller device tree node
* @size: size of interrupt specifier
* @specifier: array of cells @size long specifing the specific interrupt
*
* This structure is returned when an interrupt is mapped. The controller
* field needs to be put() after use
*/
#define OF_MAX_IRQ_SPEC 4 /* We handle specifiers of at most 4 cells */
struct of_irq {
struct device_node *controller; /* Interrupt controller node */
u32 size; /* Specifier size */
u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */
};
typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *);
/* /*
...@@ -36,12 +20,12 @@ typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); ...@@ -36,12 +20,12 @@ typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *);
extern unsigned int of_irq_workarounds; extern unsigned int of_irq_workarounds;
extern struct device_node *of_irq_dflt_pic; extern struct device_node *of_irq_dflt_pic;
extern int of_irq_parse_oldworld(struct device_node *device, int index, extern int of_irq_parse_oldworld(struct device_node *device, int index,
struct of_irq *out_irq); struct of_phandle_args *out_irq);
#else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ #else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */
#define of_irq_workarounds (0) #define of_irq_workarounds (0)
#define of_irq_dflt_pic (NULL) #define of_irq_dflt_pic (NULL)
static inline int of_irq_parse_oldworld(struct device_node *device, int index, static inline int of_irq_parse_oldworld(struct device_node *device, int index,
struct of_irq *out_irq) struct of_phandle_args *out_irq)
{ {
return -EINVAL; return -EINVAL;
} }
...@@ -50,9 +34,9 @@ static inline int of_irq_parse_oldworld(struct device_node *device, int index, ...@@ -50,9 +34,9 @@ static inline int of_irq_parse_oldworld(struct device_node *device, int index,
extern int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec, extern int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec,
u32 ointsize, const __be32 *addr, u32 ointsize, const __be32 *addr,
struct of_irq *out_irq); struct of_phandle_args *out_irq);
extern int of_irq_parse_one(struct device_node *device, int index, extern int of_irq_parse_one(struct device_node *device, int index,
struct of_irq *out_irq); struct of_phandle_args *out_irq);
extern unsigned int irq_create_of_mapping(struct device_node *controller, extern unsigned int irq_create_of_mapping(struct device_node *controller,
const u32 *intspec, const u32 *intspec,
unsigned int intsize); unsigned int intsize);
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
#include <linux/msi.h> #include <linux/msi.h>
struct pci_dev; struct pci_dev;
struct of_irq; struct of_phandle_args;
int of_irq_parse_pci(const struct pci_dev *pdev, struct of_irq *out_irq); int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq);
struct device_node; struct device_node;
struct device_node *of_pci_find_child_device(struct device_node *parent, struct device_node *of_pci_find_child_device(struct device_node *parent,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment