diff options
Diffstat (limited to 'drivers/sh/intc/core.c')
-rw-r--r-- | drivers/sh/intc/core.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/sh/intc/core.c b/drivers/sh/intc/core.c index 7e562ccb6997..2374468615ed 100644 --- a/drivers/sh/intc/core.c +++ b/drivers/sh/intc/core.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/stat.h> | 25 | #include <linux/stat.h> |
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/sh_intc.h> | 27 | #include <linux/sh_intc.h> |
28 | #include <linux/irqdomain.h> | ||
28 | #include <linux/device.h> | 29 | #include <linux/device.h> |
29 | #include <linux/syscore_ops.h> | 30 | #include <linux/syscore_ops.h> |
30 | #include <linux/list.h> | 31 | #include <linux/list.h> |
@@ -310,6 +311,8 @@ int __init register_intc_controller(struct intc_desc *desc) | |||
310 | 311 | ||
311 | BUG_ON(k > 256); /* _INTC_ADDR_E() and _INTC_ADDR_D() are 8 bits */ | 312 | BUG_ON(k > 256); /* _INTC_ADDR_E() and _INTC_ADDR_D() are 8 bits */ |
312 | 313 | ||
314 | intc_irq_domain_init(d, hw); | ||
315 | |||
313 | /* register the vectors one by one */ | 316 | /* register the vectors one by one */ |
314 | for (i = 0; i < hw->nr_vectors; i++) { | 317 | for (i = 0; i < hw->nr_vectors; i++) { |
315 | struct intc_vect *vect = hw->vectors + i; | 318 | struct intc_vect *vect = hw->vectors + i; |
@@ -319,8 +322,8 @@ int __init register_intc_controller(struct intc_desc *desc) | |||
319 | if (!vect->enum_id) | 322 | if (!vect->enum_id) |
320 | continue; | 323 | continue; |
321 | 324 | ||
322 | res = irq_alloc_desc_at(irq, numa_node_id()); | 325 | res = irq_create_identity_mapping(d->domain, irq); |
323 | if (res != irq && res != -EEXIST) { | 326 | if (unlikely(res)) { |
324 | pr_err("can't get irq_desc for %d\n", irq); | 327 | pr_err("can't get irq_desc for %d\n", irq); |
325 | continue; | 328 | continue; |
326 | } | 329 | } |
@@ -340,8 +343,8 @@ int __init register_intc_controller(struct intc_desc *desc) | |||
340 | * IRQ support, each vector still needs to have | 343 | * IRQ support, each vector still needs to have |
341 | * its own backing irq_desc. | 344 | * its own backing irq_desc. |
342 | */ | 345 | */ |
343 | res = irq_alloc_desc_at(irq2, numa_node_id()); | 346 | res = irq_create_identity_mapping(d->domain, irq2); |
344 | if (res != irq2 && res != -EEXIST) { | 347 | if (unlikely(res)) { |
345 | pr_err("can't get irq_desc for %d\n", irq2); | 348 | pr_err("can't get irq_desc for %d\n", irq2); |
346 | continue; | 349 | continue; |
347 | } | 350 | } |