aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2015-08-29 19:01:22 -0400
committerThomas Gleixner <tglx@linutronix.de>2015-09-16 10:53:38 -0400
commitd17cab4451df1f25f3a46369e0aaeaa18390fa6b (patch)
tree4a936f3cbd3869c552a437b5bc9e1ada24c1453f /drivers/irqchip
parentca0141de743dc7760fdfeb9210b82dadf6d9b221 (diff)
irqchip: Kill off set_irq_flags usage
set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring <robh@kernel.org> Cc: linux-arm-kernel@lists.infradead.org Cc: Russell King <linux@arm.linux.org.uk> Cc: Jason Cooper <jason@lakedaemon.net> Cc: Kukjin Kim <kgene@kernel.org> Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Lee Jones <lee@kernel.org> Cc: Alexander Shiyan <shc_work@mail.ru> Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Cc: linux-rpi-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Link: http://lkml.kernel.org/r/1440889285-5637-3-git-send-email-robh@kernel.org Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/irqchip')
-rw-r--r--drivers/irqchip/exynos-combiner.c2
-rw-r--r--drivers/irqchip/irq-armada-370-xp.c3
-rw-r--r--drivers/irqchip/irq-bcm2835.c2
-rw-r--r--drivers/irqchip/irq-clps711x.c6
-rw-r--r--drivers/irqchip/irq-gic-v3.c5
-rw-r--r--drivers/irqchip/irq-gic.c4
-rw-r--r--drivers/irqchip/irq-hip04.c4
-rw-r--r--drivers/irqchip/irq-keystone.c2
-rw-r--r--drivers/irqchip/irq-mmp.c3
-rw-r--r--drivers/irqchip/irq-mxs.c1
-rw-r--r--drivers/irqchip/irq-renesas-intc-irqpin.c1
-rw-r--r--drivers/irqchip/irq-s3c24xx.c14
-rw-r--r--drivers/irqchip/irq-sun4i.c2
-rw-r--r--drivers/irqchip/irq-versatile-fpga.c2
-rw-r--r--drivers/irqchip/irq-vic.c2
-rw-r--r--drivers/irqchip/irq-vt8500.c1
-rw-r--r--drivers/irqchip/spear-shirq.c1
17 files changed, 18 insertions, 37 deletions
diff --git a/drivers/irqchip/exynos-combiner.c b/drivers/irqchip/exynos-combiner.c
index 94ddc96f2f7d..cd7d3bc78e34 100644
--- a/drivers/irqchip/exynos-combiner.c
+++ b/drivers/irqchip/exynos-combiner.c
@@ -163,7 +163,7 @@ static int combiner_irq_domain_map(struct irq_domain *d, unsigned int irq,
163 163
164 irq_set_chip_and_handler(irq, &combiner_chip, handle_level_irq); 164 irq_set_chip_and_handler(irq, &combiner_chip, handle_level_irq);
165 irq_set_chip_data(irq, &combiner_data[hw >> 3]); 165 irq_set_chip_data(irq, &combiner_data[hw >> 3]);
166 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 166 irq_set_probe(irq);
167 167
168 return 0; 168 return 0;
169} 169}
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index 693b9fb879bd..655cb967a1f2 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -200,7 +200,6 @@ static int armada_370_xp_msi_map(struct irq_domain *domain, unsigned int virq,
200{ 200{
201 irq_set_chip_and_handler(virq, &armada_370_xp_msi_irq_chip, 201 irq_set_chip_and_handler(virq, &armada_370_xp_msi_irq_chip,
202 handle_simple_irq); 202 handle_simple_irq);
203 set_irq_flags(virq, IRQF_VALID);
204 203
205 return 0; 204 return 0;
206} 205}
@@ -317,7 +316,7 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain *h,
317 irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, 316 irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip,
318 handle_level_irq); 317 handle_level_irq);
319 } 318 }
320 set_irq_flags(virq, IRQF_VALID | IRQF_PROBE); 319 irq_set_probe(virq);
321 320
322 return 0; 321 return 0;
323} 322}
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index 56c9cf488e6c..bf9cc5f2e839 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -166,7 +166,7 @@ static int __init armctrl_of_init(struct device_node *node,
166 BUG_ON(irq <= 0); 166 BUG_ON(irq <= 0);
167 irq_set_chip_and_handler(irq, &armctrl_chip, 167 irq_set_chip_and_handler(irq, &armctrl_chip,
168 handle_level_irq); 168 handle_level_irq);
169 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 169 irq_set_probe(irq);
170 } 170 }
171 } 171 }
172 172
diff --git a/drivers/irqchip/irq-clps711x.c b/drivers/irqchip/irq-clps711x.c
index 2dd929eed9e0..eb5eb0cd414d 100644
--- a/drivers/irqchip/irq-clps711x.c
+++ b/drivers/irqchip/irq-clps711x.c
@@ -132,14 +132,14 @@ static int __init clps711x_intc_irq_map(struct irq_domain *h, unsigned int virq,
132 irq_hw_number_t hw) 132 irq_hw_number_t hw)
133{ 133{
134 irq_flow_handler_t handler = handle_level_irq; 134 irq_flow_handler_t handler = handle_level_irq;
135 unsigned int flags = IRQF_VALID | IRQF_PROBE; 135 unsigned int flags = 0;
136 136
137 if (!clps711x_irqs[hw].flags) 137 if (!clps711x_irqs[hw].flags)
138 return 0; 138 return 0;
139 139
140 if (clps711x_irqs[hw].flags & CLPS711X_FLAG_FIQ) { 140 if (clps711x_irqs[hw].flags & CLPS711X_FLAG_FIQ) {
141 handler = handle_bad_irq; 141 handler = handle_bad_irq;
142 flags |= IRQF_NOAUTOEN; 142 flags |= IRQ_NOAUTOEN;
143 } else if (clps711x_irqs[hw].eoi) { 143 } else if (clps711x_irqs[hw].eoi) {
144 handler = handle_fasteoi_irq; 144 handler = handle_fasteoi_irq;
145 } 145 }
@@ -149,7 +149,7 @@ static int __init clps711x_intc_irq_map(struct irq_domain *h, unsigned int virq,
149 writel_relaxed(0, clps711x_intc->base + clps711x_irqs[hw].eoi); 149 writel_relaxed(0, clps711x_intc->base + clps711x_irqs[hw].eoi);
150 150
151 irq_set_chip_and_handler(virq, &clps711x_intc_chip, handler); 151 irq_set_chip_and_handler(virq, &clps711x_intc_chip, handler);
152 set_irq_flags(virq, flags); 152 irq_modify_status(virq, IRQ_NOPROBE, flags);
153 153
154 return 0; 154 return 0;
155} 155}
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index b5418f57ddc2..36ecfc870e5a 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -752,13 +752,13 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq,
752 irq_set_percpu_devid(irq); 752 irq_set_percpu_devid(irq);
753 irq_domain_set_info(d, irq, hw, chip, d->host_data, 753 irq_domain_set_info(d, irq, hw, chip, d->host_data,
754 handle_percpu_devid_irq, NULL, NULL); 754 handle_percpu_devid_irq, NULL, NULL);
755 set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN); 755 irq_set_status_flags(irq, IRQ_NOAUTOEN);
756 } 756 }
757 /* SPIs */ 757 /* SPIs */
758 if (hw >= 32 && hw < gic_data.irq_nr) { 758 if (hw >= 32 && hw < gic_data.irq_nr) {
759 irq_domain_set_info(d, irq, hw, chip, d->host_data, 759 irq_domain_set_info(d, irq, hw, chip, d->host_data,
760 handle_fasteoi_irq, NULL, NULL); 760 handle_fasteoi_irq, NULL, NULL);
761 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 761 irq_set_probe(irq);
762 } 762 }
763 /* LPIs */ 763 /* LPIs */
764 if (hw >= 8192 && hw < GIC_ID_NR) { 764 if (hw >= 8192 && hw < GIC_ID_NR) {
@@ -766,7 +766,6 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq,
766 return -EPERM; 766 return -EPERM;
767 irq_domain_set_info(d, irq, hw, chip, d->host_data, 767 irq_domain_set_info(d, irq, hw, chip, d->host_data,
768 handle_fasteoi_irq, NULL, NULL); 768 handle_fasteoi_irq, NULL, NULL);
769 set_irq_flags(irq, IRQF_VALID);
770 } 769 }
771 770
772 return 0; 771 return 0;
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index 00bb7c05a55e..982c09c2d791 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -890,11 +890,11 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq,
890 irq_set_percpu_devid(irq); 890 irq_set_percpu_devid(irq);
891 irq_domain_set_info(d, irq, hw, chip, d->host_data, 891 irq_domain_set_info(d, irq, hw, chip, d->host_data,
892 handle_percpu_devid_irq, NULL, NULL); 892 handle_percpu_devid_irq, NULL, NULL);
893 set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN); 893 irq_set_status_flags(irq, IRQ_NOAUTOEN);
894 } else { 894 } else {
895 irq_domain_set_info(d, irq, hw, chip, d->host_data, 895 irq_domain_set_info(d, irq, hw, chip, d->host_data,
896 handle_fasteoi_irq, NULL, NULL); 896 handle_fasteoi_irq, NULL, NULL);
897 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 897 irq_set_probe(irq);
898 } 898 }
899 return 0; 899 return 0;
900} 900}
diff --git a/drivers/irqchip/irq-hip04.c b/drivers/irqchip/irq-hip04.c
index a0128c7c98dd..8f3ca8f3a62b 100644
--- a/drivers/irqchip/irq-hip04.c
+++ b/drivers/irqchip/irq-hip04.c
@@ -307,11 +307,11 @@ static int hip04_irq_domain_map(struct irq_domain *d, unsigned int irq,
307 irq_set_percpu_devid(irq); 307 irq_set_percpu_devid(irq);
308 irq_set_chip_and_handler(irq, &hip04_irq_chip, 308 irq_set_chip_and_handler(irq, &hip04_irq_chip,
309 handle_percpu_devid_irq); 309 handle_percpu_devid_irq);
310 set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN); 310 irq_set_status_flags(irq, IRQ_NOAUTOEN);
311 } else { 311 } else {
312 irq_set_chip_and_handler(irq, &hip04_irq_chip, 312 irq_set_chip_and_handler(irq, &hip04_irq_chip,
313 handle_fasteoi_irq); 313 handle_fasteoi_irq);
314 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 314 irq_set_probe(irq);
315 } 315 }
316 irq_set_chip_data(irq, d->host_data); 316 irq_set_chip_data(irq, d->host_data);
317 return 0; 317 return 0;
diff --git a/drivers/irqchip/irq-keystone.c b/drivers/irqchip/irq-keystone.c
index 7b784b692f3c..deb89d63a728 100644
--- a/drivers/irqchip/irq-keystone.c
+++ b/drivers/irqchip/irq-keystone.c
@@ -127,7 +127,7 @@ static int keystone_irq_map(struct irq_domain *h, unsigned int virq,
127 127
128 irq_set_chip_data(virq, kirq); 128 irq_set_chip_data(virq, kirq);
129 irq_set_chip_and_handler(virq, &kirq->chip, handle_level_irq); 129 irq_set_chip_and_handler(virq, &kirq->chip, handle_level_irq);
130 set_irq_flags(virq, IRQF_VALID | IRQF_PROBE); 130 irq_set_probe(virq);
131 return 0; 131 return 0;
132} 132}
133 133
diff --git a/drivers/irqchip/irq-mmp.c b/drivers/irqchip/irq-mmp.c
index ea6e3a96f3b3..013fc9659a84 100644
--- a/drivers/irqchip/irq-mmp.c
+++ b/drivers/irqchip/irq-mmp.c
@@ -164,7 +164,6 @@ static int mmp_irq_domain_map(struct irq_domain *d, unsigned int irq,
164 irq_hw_number_t hw) 164 irq_hw_number_t hw)
165{ 165{
166 irq_set_chip_and_handler(irq, &icu_irq_chip, handle_level_irq); 166 irq_set_chip_and_handler(irq, &icu_irq_chip, handle_level_irq);
167 set_irq_flags(irq, IRQF_VALID);
168 return 0; 167 return 0;
169} 168}
170 169
@@ -234,7 +233,6 @@ void __init icu_init_irq(void)
234 for (irq = 0; irq < 64; irq++) { 233 for (irq = 0; irq < 64; irq++) {
235 icu_mask_irq(irq_get_irq_data(irq)); 234 icu_mask_irq(irq_get_irq_data(irq));
236 irq_set_chip_and_handler(irq, &icu_irq_chip, handle_level_irq); 235 irq_set_chip_and_handler(irq, &icu_irq_chip, handle_level_irq);
237 set_irq_flags(irq, IRQF_VALID);
238 } 236 }
239 irq_set_default_host(icu_data[0].domain); 237 irq_set_default_host(icu_data[0].domain);
240 set_handle_irq(mmp_handle_irq); 238 set_handle_irq(mmp_handle_irq);
@@ -337,7 +335,6 @@ void __init mmp2_init_icu(void)
337 irq_set_chip_and_handler(irq, &icu_irq_chip, 335 irq_set_chip_and_handler(irq, &icu_irq_chip,
338 handle_level_irq); 336 handle_level_irq);
339 } 337 }
340 set_irq_flags(irq, IRQF_VALID);
341 } 338 }
342 irq_set_default_host(icu_data[0].domain); 339 irq_set_default_host(icu_data[0].domain);
343 set_handle_irq(mmp2_handle_irq); 340 set_handle_irq(mmp2_handle_irq);
diff --git a/drivers/irqchip/irq-mxs.c b/drivers/irqchip/irq-mxs.c
index 1faf812f3dc8..604df63e2edf 100644
--- a/drivers/irqchip/irq-mxs.c
+++ b/drivers/irqchip/irq-mxs.c
@@ -84,7 +84,6 @@ static int icoll_irq_domain_map(struct irq_domain *d, unsigned int virq,
84 irq_hw_number_t hw) 84 irq_hw_number_t hw)
85{ 85{
86 irq_set_chip_and_handler(virq, &mxs_icoll_chip, handle_level_irq); 86 irq_set_chip_and_handler(virq, &mxs_icoll_chip, handle_level_irq);
87 set_irq_flags(virq, IRQF_VALID);
88 87
89 return 0; 88 return 0;
90} 89}
diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
index d3546a6f4978..9525335723f6 100644
--- a/drivers/irqchip/irq-renesas-intc-irqpin.c
+++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
@@ -353,7 +353,6 @@ static int intc_irqpin_irq_domain_map(struct irq_domain *h, unsigned int virq,
353 irq_set_chip_data(virq, h->host_data); 353 irq_set_chip_data(virq, h->host_data);
354 irq_set_lockdep_class(virq, &intc_irqpin_irq_lock_class); 354 irq_set_lockdep_class(virq, &intc_irqpin_irq_lock_class);
355 irq_set_chip_and_handler(virq, &p->irq_chip, handle_level_irq); 355 irq_set_chip_and_handler(virq, &p->irq_chip, handle_level_irq);
356 set_irq_flags(virq, IRQF_VALID); /* kill me now */
357 return 0; 356 return 0;
358} 357}
359 358
diff --git a/drivers/irqchip/irq-s3c24xx.c b/drivers/irqchip/irq-s3c24xx.c
index e47572a9bbb2..7154b011ddd2 100644
--- a/drivers/irqchip/irq-s3c24xx.c
+++ b/drivers/irqchip/irq-s3c24xx.c
@@ -466,13 +466,11 @@ static int s3c24xx_irq_map(struct irq_domain *h, unsigned int virq,
466 466
467 irq_set_chip_data(virq, irq_data); 467 irq_set_chip_data(virq, irq_data);
468 468
469 set_irq_flags(virq, IRQF_VALID);
470
471 if (parent_intc && irq_data->type != S3C_IRQTYPE_NONE) { 469 if (parent_intc && irq_data->type != S3C_IRQTYPE_NONE) {
472 if (irq_data->parent_irq > 31) { 470 if (irq_data->parent_irq > 31) {
473 pr_err("irq-s3c24xx: parent irq %lu is out of range\n", 471 pr_err("irq-s3c24xx: parent irq %lu is out of range\n",
474 irq_data->parent_irq); 472 irq_data->parent_irq);
475 goto err; 473 return -EINVAL;
476 } 474 }
477 475
478 parent_irq_data = &parent_intc->irqs[irq_data->parent_irq]; 476 parent_irq_data = &parent_intc->irqs[irq_data->parent_irq];
@@ -485,18 +483,12 @@ static int s3c24xx_irq_map(struct irq_domain *h, unsigned int virq,
485 if (!irqno) { 483 if (!irqno) {
486 pr_err("irq-s3c24xx: could not find mapping for parent irq %lu\n", 484 pr_err("irq-s3c24xx: could not find mapping for parent irq %lu\n",
487 irq_data->parent_irq); 485 irq_data->parent_irq);
488 goto err; 486 return -EINVAL;
489 } 487 }
490 irq_set_chained_handler(irqno, s3c_irq_demux); 488 irq_set_chained_handler(irqno, s3c_irq_demux);
491 } 489 }
492 490
493 return 0; 491 return 0;
494
495err:
496 set_irq_flags(virq, 0);
497
498 /* the only error can result from bad mapping data*/
499 return -EINVAL;
500} 492}
501 493
502static const struct irq_domain_ops s3c24xx_irq_ops = { 494static const struct irq_domain_ops s3c24xx_irq_ops = {
@@ -1174,8 +1166,6 @@ static int s3c24xx_irq_map_of(struct irq_domain *h, unsigned int virq,
1174 1166
1175 irq_set_chip_data(virq, irq_data); 1167 irq_set_chip_data(virq, irq_data);
1176 1168
1177 set_irq_flags(virq, IRQF_VALID);
1178
1179 return 0; 1169 return 0;
1180} 1170}
1181 1171
diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
index 4ad3e7c69aa7..0704362f4c82 100644
--- a/drivers/irqchip/irq-sun4i.c
+++ b/drivers/irqchip/irq-sun4i.c
@@ -83,7 +83,7 @@ static int sun4i_irq_map(struct irq_domain *d, unsigned int virq,
83 irq_hw_number_t hw) 83 irq_hw_number_t hw)
84{ 84{
85 irq_set_chip_and_handler(virq, &sun4i_irq_chip, handle_fasteoi_irq); 85 irq_set_chip_and_handler(virq, &sun4i_irq_chip, handle_fasteoi_irq);
86 set_irq_flags(virq, IRQF_VALID | IRQF_PROBE); 86 irq_set_probe(virq);
87 87
88 return 0; 88 return 0;
89} 89}
diff --git a/drivers/irqchip/irq-versatile-fpga.c b/drivers/irqchip/irq-versatile-fpga.c
index 1b1c63e8d249..598ab3f0e0ac 100644
--- a/drivers/irqchip/irq-versatile-fpga.c
+++ b/drivers/irqchip/irq-versatile-fpga.c
@@ -128,7 +128,7 @@ static int fpga_irqdomain_map(struct irq_domain *d, unsigned int irq,
128 irq_set_chip_data(irq, f); 128 irq_set_chip_data(irq, f);
129 irq_set_chip_and_handler(irq, &f->chip, 129 irq_set_chip_and_handler(irq, &f->chip,
130 handle_level_irq); 130 handle_level_irq);
131 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 131 irq_set_probe(irq);
132 return 0; 132 return 0;
133} 133}
134 134
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
index cb85504c2ff1..b956dfffe78c 100644
--- a/drivers/irqchip/irq-vic.c
+++ b/drivers/irqchip/irq-vic.c
@@ -201,7 +201,7 @@ static int vic_irqdomain_map(struct irq_domain *d, unsigned int irq,
201 return -EPERM; 201 return -EPERM;
202 irq_set_chip_and_handler(irq, &vic_chip, handle_level_irq); 202 irq_set_chip_and_handler(irq, &vic_chip, handle_level_irq);
203 irq_set_chip_data(irq, v->base); 203 irq_set_chip_data(irq, v->base);
204 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 204 irq_set_probe(irq);
205 return 0; 205 return 0;
206} 206}
207 207
diff --git a/drivers/irqchip/irq-vt8500.c b/drivers/irqchip/irq-vt8500.c
index 8371d9978d31..f9af0af21751 100644
--- a/drivers/irqchip/irq-vt8500.c
+++ b/drivers/irqchip/irq-vt8500.c
@@ -167,7 +167,6 @@ static int vt8500_irq_map(struct irq_domain *h, unsigned int virq,
167 irq_hw_number_t hw) 167 irq_hw_number_t hw)
168{ 168{
169 irq_set_chip_and_handler(virq, &vt8500_irq_chip, handle_level_irq); 169 irq_set_chip_and_handler(virq, &vt8500_irq_chip, handle_level_irq);
170 set_irq_flags(virq, IRQF_VALID);
171 170
172 return 0; 171 return 0;
173} 172}
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
index c838c9286ea5..1ccd2abed65f 100644
--- a/drivers/irqchip/spear-shirq.c
+++ b/drivers/irqchip/spear-shirq.c
@@ -211,7 +211,6 @@ static void __init spear_shirq_register(struct spear_shirq *shirq,
211 for (i = 0; i < shirq->nr_irqs; i++) { 211 for (i = 0; i < shirq->nr_irqs; i++) {
212 irq_set_chip_and_handler(shirq->virq_base + i, 212 irq_set_chip_and_handler(shirq->virq_base + i,
213 shirq->irq_chip, handle_simple_irq); 213 shirq->irq_chip, handle_simple_irq);
214 set_irq_flags(shirq->virq_base + i, IRQF_VALID);
215 irq_set_chip_data(shirq->virq_base + i, shirq); 214 irq_set_chip_data(shirq->virq_base + i, shirq);
216 } 215 }
217} 216}