aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/of/irq.c')
-rw-r--r--drivers/of/irq.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 1a7980692f25..3cf7a01f557f 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -252,8 +252,6 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
252 * Successfully parsed an interrrupt-map translation; copy new 252 * Successfully parsed an interrrupt-map translation; copy new
253 * interrupt specifier into the out_irq structure 253 * interrupt specifier into the out_irq structure
254 */ 254 */
255 out_irq->np = newpar;
256
257 match_array = imap - newaddrsize - newintsize; 255 match_array = imap - newaddrsize - newintsize;
258 for (i = 0; i < newintsize; i++) 256 for (i = 0; i < newintsize; i++)
259 out_irq->args[i] = be32_to_cpup(imap - newintsize + i); 257 out_irq->args[i] = be32_to_cpup(imap - newintsize + i);
@@ -262,6 +260,7 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
262 260
263 skiplevel: 261 skiplevel:
264 /* Iterate again with new parent */ 262 /* Iterate again with new parent */
263 out_irq->np = newpar;
265 pr_debug(" -> new parent: %s\n", of_node_full_name(newpar)); 264 pr_debug(" -> new parent: %s\n", of_node_full_name(newpar));
266 of_node_put(ipar); 265 of_node_put(ipar);
267 ipar = newpar; 266 ipar = newpar;
@@ -469,7 +468,7 @@ int of_irq_to_resource_table(struct device_node *dev, struct resource *res,
469} 468}
470EXPORT_SYMBOL_GPL(of_irq_to_resource_table); 469EXPORT_SYMBOL_GPL(of_irq_to_resource_table);
471 470
472struct intc_desc { 471struct of_intc_desc {
473 struct list_head list; 472 struct list_head list;
474 struct device_node *dev; 473 struct device_node *dev;
475 struct device_node *interrupt_parent; 474 struct device_node *interrupt_parent;
@@ -485,7 +484,7 @@ struct intc_desc {
485void __init of_irq_init(const struct of_device_id *matches) 484void __init of_irq_init(const struct of_device_id *matches)
486{ 485{
487 struct device_node *np, *parent = NULL; 486 struct device_node *np, *parent = NULL;
488 struct intc_desc *desc, *temp_desc; 487 struct of_intc_desc *desc, *temp_desc;
489 struct list_head intc_desc_list, intc_parent_list; 488 struct list_head intc_desc_list, intc_parent_list;
490 489
491 INIT_LIST_HEAD(&intc_desc_list); 490 INIT_LIST_HEAD(&intc_desc_list);
@@ -496,7 +495,7 @@ void __init of_irq_init(const struct of_device_id *matches)
496 !of_device_is_available(np)) 495 !of_device_is_available(np))
497 continue; 496 continue;
498 /* 497 /*
499 * Here, we allocate and populate an intc_desc with the node 498 * Here, we allocate and populate an of_intc_desc with the node
500 * pointer, interrupt-parent device_node etc. 499 * pointer, interrupt-parent device_node etc.
501 */ 500 */
502 desc = kzalloc(sizeof(*desc), GFP_KERNEL); 501 desc = kzalloc(sizeof(*desc), GFP_KERNEL);