Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 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: Russell King <linux@arm.linux.org.uk>
Cc: Sekhar Nori <nsekhar@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Gregory Clement <gregory.clement@free-electrons.com>
Acked-by: Hans Ulli Kroll <ulli.kroll@googlemail.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Imre Kaloz <kaloz@openwrt.org>
Acked-by: Krzysztof Halasa <khalasa@piap.pl>
Cc: Greg Ungerer <gerg@uclinux.org>
Cc: Roland Stigge <stigge@antcom.de>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Daniel Mack <daniel@zonque.org>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Simtec Linux Team <linux@simtec.co.uk>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Wan ZongShun <mcuos.com@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-omap@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Tested-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>

authored by

Rob Herring and committed by
Olof Johansson
e8d36d5d 19c233b7

+45 -47
+1 -1
arch/arm/common/it8152.c
··· 91 91 for (irq = IT8152_IRQ(0); irq <= IT8152_LAST_IRQ; irq++) { 92 92 irq_set_chip_and_handler(irq, &it8152_irq_chip, 93 93 handle_level_irq); 94 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 94 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 95 95 } 96 96 } 97 97
+1 -1
arch/arm/common/locomo.c
··· 205 205 for ( ; irq <= lchip->irq_base + 3; irq++) { 206 206 irq_set_chip_and_handler(irq, &locomo_chip, handle_level_irq); 207 207 irq_set_chip_data(irq, lchip); 208 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 208 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 209 209 } 210 210 } 211 211
+2 -2
arch/arm/common/sa1111.c
··· 486 486 irq_set_chip_and_handler(irq, &sa1111_low_chip, 487 487 handle_edge_irq); 488 488 irq_set_chip_data(irq, sachip); 489 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 489 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 490 490 } 491 491 492 492 for (i = AUDXMTDMADONEA; i <= IRQ_S1_BVD1_STSCHG; i++) { ··· 494 494 irq_set_chip_and_handler(irq, &sa1111_high_chip, 495 495 handle_edge_irq); 496 496 irq_set_chip_data(irq, sachip); 497 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 497 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 498 498 } 499 499 500 500 /*
+1 -1
arch/arm/mach-davinci/cp_intc.c
··· 112 112 pr_debug("cp_intc_host_map(%d, 0x%lx)\n", virq, hw); 113 113 114 114 irq_set_chip(virq, &cp_intc_irq_chip); 115 - set_irq_flags(virq, IRQF_VALID | IRQF_PROBE); 115 + irq_set_probe(virq); 116 116 irq_set_handler(virq, handle_edge_irq); 117 117 return 0; 118 118 }
+1 -1
arch/arm/mach-dove/irq.c
··· 172 172 for (i = IRQ_DOVE_PMU_START; i < NR_IRQS; i++) { 173 173 irq_set_chip_and_handler(i, &pmu_irq_chip, handle_level_irq); 174 174 irq_set_status_flags(i, IRQ_LEVEL); 175 - set_irq_flags(i, IRQF_VALID); 175 + irq_clear_status_flags(i, IRQ_NOREQUEST); 176 176 } 177 177 irq_set_chained_handler(IRQ_DOVE_PMU, pmu_irq_handler); 178 178 }
+1 -1
arch/arm/mach-ebsa110/core.c
··· 65 65 for (irq = 0; irq < NR_IRQS; irq++) { 66 66 irq_set_chip_and_handler(irq, &ebsa110_irq_chip, 67 67 handle_level_irq); 68 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 68 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 69 69 } 70 70 } 71 71
+1 -1
arch/arm/mach-footbridge/common.c
··· 106 106 107 107 for (irq = _DC21285_IRQ(0); irq < _DC21285_IRQ(20); irq++) { 108 108 irq_set_chip_and_handler(irq, &fb_chip, handle_level_irq); 109 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 109 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 110 110 } 111 111 } 112 112
+4 -4
arch/arm/mach-footbridge/isa-irq.c
··· 153 153 for (irq = _ISA_IRQ(0); irq < _ISA_IRQ(8); irq++) { 154 154 irq_set_chip_and_handler(irq, &isa_lo_chip, 155 155 handle_level_irq); 156 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 156 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 157 157 } 158 158 159 159 for (irq = _ISA_IRQ(8); irq < _ISA_IRQ(16); irq++) { 160 160 irq_set_chip_and_handler(irq, &isa_hi_chip, 161 161 handle_level_irq); 162 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 162 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 163 163 } 164 164 165 165 request_resource(&ioport_resource, &pic1_resource); ··· 175 175 * resistor on this line. 176 176 */ 177 177 if (machine_is_netwinder()) 178 - set_irq_flags(_ISA_IRQ(11), IRQF_VALID | 179 - IRQF_PROBE | IRQF_NOAUTOEN); 178 + irq_modify_status(_ISA_IRQ(11), 179 + IRQ_NOREQUEST | IRQ_NOPROBE, IRQ_NOAUTOEN); 180 180 } 181 181 } 182 182
+1 -1
arch/arm/mach-gemini/gpio.c
··· 220 220 j < GPIO_IRQ_BASE + (i + 1) * 32; j++) { 221 221 irq_set_chip_and_handler(j, &gpio_irq_chip, 222 222 handle_edge_irq); 223 - set_irq_flags(j, IRQF_VALID); 223 + irq_clear_status_flags(j, IRQ_NOREQUEST); 224 224 } 225 225 226 226 irq_set_chained_handler_and_data(IRQ_GPIO(i), gpio_irq_handler,
+1 -1
arch/arm/mach-gemini/irq.c
··· 92 92 } else { 93 93 irq_set_handler(i, handle_level_irq); 94 94 } 95 - set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 95 + irq_clear_status_flags(i, IRQ_NOREQUEST | IRQ_NOPROBE); 96 96 } 97 97 98 98 /* Disable all interrupts */
+1 -1
arch/arm/mach-imx/3ds_debugboard.c
··· 195 195 196 196 for (i = irq_base; i < irq_base + MXC_MAX_EXP_IO_LINES; i++) { 197 197 irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); 198 - set_irq_flags(i, IRQF_VALID); 198 + irq_clear_status_flags(i, IRQ_NOREQUEST); 199 199 } 200 200 irq_set_irq_type(p_irq, IRQF_TRIGGER_LOW); 201 201 irq_set_chained_handler(p_irq, mxc_expio_irq_handler);
+1 -1
arch/arm/mach-imx/mach-mx31ads.c
··· 238 238 239 239 for (i = irq_base; i < irq_base + MXC_MAX_EXP_IO_LINES; i++) { 240 240 irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); 241 - set_irq_flags(i, IRQF_VALID); 241 + irq_clear_status_flags(i, IRQ_NOREQUEST); 242 242 } 243 243 irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_4)); 244 244 irq_set_irq_type(irq, IRQ_TYPE_LEVEL_HIGH);
+1 -1
arch/arm/mach-iop13xx/irq.c
··· 233 233 irq_set_chip(i, &iop13xx_irqchip4); 234 234 235 235 irq_set_handler(i, handle_level_irq); 236 - set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 236 + irq_clear_status_flags(i, IRQ_NOREQUEST | IRQ_NOPROBE); 237 237 } 238 238 239 239 iop13xx_msi_init();
+1 -1
arch/arm/mach-iop32x/irq.c
··· 69 69 70 70 for (i = 0; i < NR_IRQS; i++) { 71 71 irq_set_chip_and_handler(i, &ext_chip, handle_level_irq); 72 - set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 72 + irq_clear_status_flags(i, IRQ_NOREQUEST | IRQ_NOPROBE); 73 73 } 74 74 }
+1 -1
arch/arm/mach-iop33x/irq.c
··· 113 113 irq_set_chip_and_handler(i, 114 114 (i < 32) ? &iop33x_irqchip1 : &iop33x_irqchip2, 115 115 handle_level_irq); 116 - set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 116 + irq_clear_status_flags(i, IRQ_NOREQUEST | IRQ_NOPROBE); 117 117 } 118 118 }
+1 -1
arch/arm/mach-ixp4xx/common.c
··· 296 296 for(i = 0; i < NR_IRQS; i++) { 297 297 irq_set_chip_and_handler(i, &ixp4xx_irq_chip, 298 298 handle_level_irq); 299 - set_irq_flags(i, IRQF_VALID); 299 + irq_clear_status_flags(i, IRQ_NOREQUEST); 300 300 } 301 301 } 302 302
+1 -1
arch/arm/mach-ks8695/irq.c
··· 172 172 handle_edge_irq); 173 173 } 174 174 175 - set_irq_flags(irq, IRQF_VALID); 175 + irq_clear_status_flags(irq, IRQ_NOREQUEST); 176 176 } 177 177 }
+1 -1
arch/arm/mach-lpc32xx/irq.c
··· 434 434 for (i = 0; i < NR_IRQS; i++) { 435 435 irq_set_chip_and_handler(i, &lpc32xx_irq_chip, 436 436 handle_level_irq); 437 - set_irq_flags(i, IRQF_VALID); 437 + irq_clear_status_flags(i, IRQ_NOREQUEST); 438 438 } 439 439 440 440 /* Set default mappings */
+1 -1
arch/arm/mach-netx/generic.c
··· 174 174 for (irq = NETX_IRQ_HIF_CHAINED(0); irq <= NETX_IRQ_HIF_LAST; irq++) { 175 175 irq_set_chip_and_handler(irq, &netx_hif_chip, 176 176 handle_level_irq); 177 - set_irq_flags(irq, IRQF_VALID); 177 + irq_clear_status_flags(irq, IRQ_NOREQUEST); 178 178 } 179 179 180 180 writel(NETX_DPMAS_INT_EN_GLB_EN, NETX_DPMAS_INT_EN);
+1 -1
arch/arm/mach-omap1/fpga.c
··· 169 169 } 170 170 171 171 irq_set_handler(i, handle_edge_irq); 172 - set_irq_flags(i, IRQF_VALID); 172 + irq_clear_status_flags(i, IRQ_NOREQUEST); 173 173 } 174 174 175 175 /*
+1 -1
arch/arm/mach-omap1/irq.c
··· 262 262 263 263 irq_trigger = irq_banks[i].trigger_map >> IRQ_BIT(j); 264 264 omap_irq_set_cfg(j, 0, 0, irq_trigger); 265 - set_irq_flags(j, IRQF_VALID); 265 + irq_clear_status_flags(j, IRQ_NOREQUEST); 266 266 } 267 267 omap_alloc_gc(irq_banks[i].va, irq_base + i * 32, 32); 268 268 }
+1 -1
arch/arm/mach-pxa/balloon3.c
··· 528 528 for (irq = BALLOON3_IRQ(0); irq <= BALLOON3_IRQ(7); irq++) { 529 529 irq_set_chip_and_handler(irq, &balloon3_irq_chip, 530 530 handle_level_irq); 531 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 531 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 532 532 } 533 533 534 534 irq_set_chained_handler(BALLOON3_AUX_NIRQ, balloon3_irq_handler);
-1
arch/arm/mach-pxa/irq.c
··· 133 133 irq_set_chip_and_handler(virq, &pxa_internal_irq_chip, 134 134 handle_level_irq); 135 135 irq_set_chip_data(virq, base); 136 - set_irq_flags(virq, IRQF_VALID); 137 136 138 137 return 0; 139 138 }
+1 -1
arch/arm/mach-pxa/lpd270.c
··· 151 151 for (irq = LPD270_IRQ(2); irq <= LPD270_IRQ(4); irq++) { 152 152 irq_set_chip_and_handler(irq, &lpd270_irq_chip, 153 153 handle_level_irq); 154 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 154 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 155 155 } 156 156 irq_set_chained_handler(PXA_GPIO_TO_IRQ(0), lpd270_irq_handler); 157 157 irq_set_irq_type(PXA_GPIO_TO_IRQ(0), IRQ_TYPE_EDGE_FALLING);
+1 -1
arch/arm/mach-pxa/pcm990-baseboard.c
··· 311 311 for (irq = PCM027_IRQ(0); irq <= PCM027_IRQ(3); irq++) { 312 312 irq_set_chip_and_handler(irq, &pcm990_irq_chip, 313 313 handle_level_irq); 314 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 314 + irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE); 315 315 } 316 316 317 317 /* disable all Interrupts */
+1 -1
arch/arm/mach-pxa/pxa3xx.c
··· 325 325 for (irq = IRQ_WAKEUP0; irq <= IRQ_WAKEUP1; irq++) { 326 326 irq_set_chip_and_handler(irq, &pxa_ext_wakeup_chip, 327 327 handle_edge_irq); 328 - set_irq_flags(irq, IRQF_VALID); 328 + irq_clear_status_flags(irq, IRQ_NOREQUEST); 329 329 } 330 330 331 331 pxa_ext_wakeup_chip.irq_set_wake = fn;
+1 -1
arch/arm/mach-pxa/viper.c
··· 313 313 isa_irq = viper_bit_to_irq(level); 314 314 irq_set_chip_and_handler(isa_irq, &viper_irq_chip, 315 315 handle_edge_irq); 316 - set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE); 316 + irq_clear_status_flags(isa_irq, IRQ_NOREQUEST | IRQ_NOPROBE); 317 317 } 318 318 319 319 irq_set_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO),
+1 -1
arch/arm/mach-pxa/zeus.c
··· 151 151 isa_irq = zeus_bit_to_irq(level); 152 152 irq_set_chip_and_handler(isa_irq, &zeus_irq_chip, 153 153 handle_edge_irq); 154 - set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE); 154 + irq_clear_status_flags(isa_irq, IRQ_NOREQUEST | IRQ_NOPROBE); 155 155 } 156 156 157 157 irq_set_irq_type(gpio_to_irq(ZEUS_ISA_GPIO), IRQ_TYPE_EDGE_RISING);
+1 -1
arch/arm/mach-rpc/ecard.c
··· 946 946 irq_set_chip_and_handler(ec->irq, &ecard_chip, 947 947 handle_level_irq); 948 948 irq_set_chip_data(ec->irq, ec); 949 - set_irq_flags(ec->irq, IRQF_VALID); 949 + irq_clear_status_flags(ec->irq, IRQ_NOREQUEST); 950 950 } 951 951 952 952 #ifdef CONFIG_ARCH_RPC
+8 -8
arch/arm/mach-rpc/irq.c
··· 117 117 118 118 void __init rpc_init_irq(void) 119 119 { 120 - unsigned int irq, flags; 120 + unsigned int irq, clr, set = 0; 121 121 122 122 iomd_writeb(0, IOMD_IRQMASKA); 123 123 iomd_writeb(0, IOMD_IRQMASKB); ··· 128 128 &rpc_default_fiq_end - &rpc_default_fiq_start); 129 129 130 130 for (irq = 0; irq < NR_IRQS; irq++) { 131 - flags = IRQF_VALID; 131 + clr = IRQ_NOREQUEST; 132 132 133 133 if (irq <= 6 || (irq >= 9 && irq <= 15)) 134 - flags |= IRQF_PROBE; 134 + clr |= IRQ_NOPROBE; 135 135 136 136 if (irq == 21 || (irq >= 16 && irq <= 19) || 137 137 irq == IRQ_KEYBOARDTX) 138 - flags |= IRQF_NOAUTOEN; 138 + set |= IRQ_NOAUTOEN; 139 139 140 140 switch (irq) { 141 141 case 0 ... 7: 142 142 irq_set_chip_and_handler(irq, &iomd_a_chip, 143 143 handle_level_irq); 144 - set_irq_flags(irq, flags); 144 + irq_modify_status(irq, clr, set); 145 145 break; 146 146 147 147 case 8 ... 15: 148 148 irq_set_chip_and_handler(irq, &iomd_b_chip, 149 149 handle_level_irq); 150 - set_irq_flags(irq, flags); 150 + irq_modify_status(irq, clr, set); 151 151 break; 152 152 153 153 case 16 ... 21: 154 154 irq_set_chip_and_handler(irq, &iomd_dma_chip, 155 155 handle_level_irq); 156 - set_irq_flags(irq, flags); 156 + irq_modify_status(irq, clr, set); 157 157 break; 158 158 159 159 case 64 ... 71: 160 160 irq_set_chip(irq, &iomd_fiq_chip); 161 - set_irq_flags(irq, IRQF_VALID); 161 + irq_modify_status(irq, clr, set); 162 162 break; 163 163 } 164 164 }
+1 -1
arch/arm/mach-s3c24xx/bast-irq.c
··· 147 147 148 148 irq_set_chip_and_handler(irqno, &bast_pc104_chip, 149 149 handle_level_irq); 150 - set_irq_flags(irqno, IRQF_VALID); 150 + irq_clear_status_flags(irqno, IRQ_NOREQUEST); 151 151 } 152 152 } 153 153
+1 -1
arch/arm/mach-s3c64xx/common.c
··· 420 420 for (irq = IRQ_EINT(0); irq <= IRQ_EINT(27); irq++) { 421 421 irq_set_chip_and_handler(irq, &s3c_irq_eint, handle_level_irq); 422 422 irq_set_chip_data(irq, (void *)eint_irq_to_bit(irq)); 423 - set_irq_flags(irq, IRQF_VALID); 423 + irq_clear_status_flags(irq, IRQ_NOREQUEST); 424 424 } 425 425 426 426 irq_set_chained_handler(IRQ_EINT0_3, s3c_irq_demux_eint0_3);
+2 -2
arch/arm/mach-sa1100/neponset.c
··· 320 320 321 321 irq_set_chip_and_handler(d->irq_base + NEP_IRQ_SMC91X, &nochip, 322 322 handle_simple_irq); 323 - set_irq_flags(d->irq_base + NEP_IRQ_SMC91X, IRQF_VALID | IRQF_PROBE); 323 + irq_clear_status_flags(d->irq_base + NEP_IRQ_SMC91X, IRQ_NOREQUEST | IRQ_NOPROBE); 324 324 irq_set_chip_and_handler(d->irq_base + NEP_IRQ_USAR, &nochip, 325 325 handle_simple_irq); 326 - set_irq_flags(d->irq_base + NEP_IRQ_USAR, IRQF_VALID | IRQF_PROBE); 326 + irq_clear_status_flags(d->irq_base + NEP_IRQ_USAR, IRQ_NOREQUEST | IRQ_NOPROBE); 327 327 irq_set_chip(d->irq_base + NEP_IRQ_SA1111, &nochip); 328 328 329 329 irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
+1 -1
arch/arm/mach-w90x900/irq.c
··· 211 211 for (irqno = IRQ_WDT; irqno <= IRQ_ADC; irqno++) { 212 212 irq_set_chip_and_handler(irqno, &nuc900_irq_chip, 213 213 handle_level_irq); 214 - set_irq_flags(irqno, IRQF_VALID); 214 + irq_clear_status_flags(irqno, IRQ_NOREQUEST); 215 215 } 216 216 }
-1
drivers/irqchip/irq-sa11x0.c
··· 70 70 { 71 71 irq_set_chip_and_handler(irq, &sa1100_normal_chip, 72 72 handle_level_irq); 73 - set_irq_flags(irq, IRQF_VALID); 74 73 75 74 return 0; 76 75 }