diff options
author | Rob Herring <robh@kernel.org> | 2015-07-27 16:55:13 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2015-07-28 07:58:13 -0400 |
commit | e8d36d5dbb6a6ec4f5222f8775d664ec29d5527d (patch) | |
tree | 7f4676f53ddc3900e6a1587355d22a86040a3c55 /arch/arm/mach-rpc | |
parent | 19c233b79d1af7b5af1ec68c1172848648184449 (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.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-rpc/irq.c | 16 |
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 | ||
118 | void __init rpc_init_irq(void) | 118 | void __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 | } |