aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-rpc
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2015-07-27 16:55:13 -0400
committerOlof Johansson <olof@lixom.net>2015-07-28 07:58:13 -0400
commite8d36d5dbb6a6ec4f5222f8775d664ec29d5527d (patch)
tree7f4676f53ddc3900e6a1587355d22a86040a3c55 /arch/arm/mach-rpc
parent19c233b79d1af7b5af1ec68c1172848648184449 (diff)
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>
Diffstat (limited to 'arch/arm/mach-rpc')
-rw-r--r--arch/arm/mach-rpc/ecard.c2
-rw-r--r--arch/arm/mach-rpc/irq.c16
2 files changed, 9 insertions, 9 deletions
diff --git a/arch/arm/mach-rpc/ecard.c b/arch/arm/mach-rpc/ecard.c
index fcb1d59f7aec..f726d4c4e6dd 100644
--- a/arch/arm/mach-rpc/ecard.c
+++ b/arch/arm/mach-rpc/ecard.c
@@ -946,7 +946,7 @@ static int __init ecard_probe(int slot, unsigned irq, card_type_t type)
946 irq_set_chip_and_handler(ec->irq, &ecard_chip, 946 irq_set_chip_and_handler(ec->irq, &ecard_chip,
947 handle_level_irq); 947 handle_level_irq);
948 irq_set_chip_data(ec->irq, ec); 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#ifdef CONFIG_ARCH_RPC 952#ifdef CONFIG_ARCH_RPC
diff --git a/arch/arm/mach-rpc/irq.c b/arch/arm/mach-rpc/irq.c
index 3e4fa849c64d..66502e6207fe 100644
--- a/arch/arm/mach-rpc/irq.c
+++ b/arch/arm/mach-rpc/irq.c
@@ -117,7 +117,7 @@ extern unsigned char rpc_default_fiq_start, rpc_default_fiq_end;
117 117
118void __init rpc_init_irq(void) 118void __init rpc_init_irq(void)
119{ 119{
120 unsigned int irq, flags; 120 unsigned int irq, clr, set = 0;
121 121
122 iomd_writeb(0, IOMD_IRQMASKA); 122 iomd_writeb(0, IOMD_IRQMASKA);
123 iomd_writeb(0, IOMD_IRQMASKB); 123 iomd_writeb(0, IOMD_IRQMASKB);
@@ -128,37 +128,37 @@ void __init rpc_init_irq(void)
128 &rpc_default_fiq_end - &rpc_default_fiq_start); 128 &rpc_default_fiq_end - &rpc_default_fiq_start);
129 129
130 for (irq = 0; irq < NR_IRQS; irq++) { 130 for (irq = 0; irq < NR_IRQS; irq++) {
131 flags = IRQF_VALID; 131 clr = IRQ_NOREQUEST;
132 132
133 if (irq <= 6 || (irq >= 9 && irq <= 15)) 133 if (irq <= 6 || (irq >= 9 && irq <= 15))
134 flags |= IRQF_PROBE; 134 clr |= IRQ_NOPROBE;
135 135
136 if (irq == 21 || (irq >= 16 && irq <= 19) || 136 if (irq == 21 || (irq >= 16 && irq <= 19) ||
137 irq == IRQ_KEYBOARDTX) 137 irq == IRQ_KEYBOARDTX)
138 flags |= IRQF_NOAUTOEN; 138 set |= IRQ_NOAUTOEN;
139 139
140 switch (irq) { 140 switch (irq) {
141 case 0 ... 7: 141 case 0 ... 7:
142 irq_set_chip_and_handler(irq, &iomd_a_chip, 142 irq_set_chip_and_handler(irq, &iomd_a_chip,
143 handle_level_irq); 143 handle_level_irq);
144 set_irq_flags(irq, flags); 144 irq_modify_status(irq, clr, set);
145 break; 145 break;
146 146
147 case 8 ... 15: 147 case 8 ... 15:
148 irq_set_chip_and_handler(irq, &iomd_b_chip, 148 irq_set_chip_and_handler(irq, &iomd_b_chip,
149 handle_level_irq); 149 handle_level_irq);
150 set_irq_flags(irq, flags); 150 irq_modify_status(irq, clr, set);
151 break; 151 break;
152 152
153 case 16 ... 21: 153 case 16 ... 21:
154 irq_set_chip_and_handler(irq, &iomd_dma_chip, 154 irq_set_chip_and_handler(irq, &iomd_dma_chip,
155 handle_level_irq); 155 handle_level_irq);
156 set_irq_flags(irq, flags); 156 irq_modify_status(irq, clr, set);
157 break; 157 break;
158 158
159 case 64 ... 71: 159 case 64 ... 71:
160 irq_set_chip(irq, &iomd_fiq_chip); 160 irq_set_chip(irq, &iomd_fiq_chip);
161 set_irq_flags(irq, IRQF_VALID); 161 irq_modify_status(irq, clr, set);
162 break; 162 break;
163 } 163 }
164 } 164 }