diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2014-06-19 17:34:39 -0400 |
---|---|---|
committer | Jason Cooper <jason@lakedaemon.net> | 2014-06-24 08:37:27 -0400 |
commit | f37ecbce8bf8867ce19fe9ef09e789002d7aad15 (patch) | |
tree | b65ca93c784f4aeec65581dbff3e550ecd3aa186 | |
parent | 078bc005651cfb134135c5f6eca48a997afb4014 (diff) |
irqchip: spear_shirq: No point in storing the parent irq
The struct member is pointless and a nismomer as well.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20140619212713.129694036@linutronix.de
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
-rw-r--r-- | drivers/irqchip/spear-shirq.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c index 441e39f08135..576968efbc4d 100644 --- a/drivers/irqchip/spear-shirq.c +++ b/drivers/irqchip/spear-shirq.c | |||
@@ -47,7 +47,6 @@ struct shirq_regs { | |||
47 | /* | 47 | /* |
48 | * struct spear_shirq: shared irq structure | 48 | * struct spear_shirq: shared irq structure |
49 | * | 49 | * |
50 | * irq: hardware irq number | ||
51 | * irq_base: base irq in linux domain | 50 | * irq_base: base irq in linux domain |
52 | * irq_nr: no. of shared interrupts in a particular block | 51 | * irq_nr: no. of shared interrupts in a particular block |
53 | * irq_bit_off: starting bit offset in the status register | 52 | * irq_bit_off: starting bit offset in the status register |
@@ -56,7 +55,6 @@ struct shirq_regs { | |||
56 | * regs: register configuration for shared irq block | 55 | * regs: register configuration for shared irq block |
57 | */ | 56 | */ |
58 | struct spear_shirq { | 57 | struct spear_shirq { |
59 | u32 irq; | ||
60 | u32 irq_base; | 58 | u32 irq_base; |
61 | u32 irq_nr; | 59 | u32 irq_nr; |
62 | u32 irq_bit_off; | 60 | u32 irq_bit_off; |
@@ -268,28 +266,29 @@ static void shirq_handler(unsigned irq, struct irq_desc *desc) | |||
268 | chip->irq_unmask(&desc->irq_data); | 266 | chip->irq_unmask(&desc->irq_data); |
269 | } | 267 | } |
270 | 268 | ||
271 | static void __init spear_shirq_register(struct spear_shirq *shirq) | 269 | static void __init spear_shirq_register(struct spear_shirq *shirq, |
270 | int parent_irq) | ||
272 | { | 271 | { |
273 | int i; | 272 | int i; |
274 | 273 | ||
275 | if (shirq->invalid_irq) | 274 | if (shirq->invalid_irq) |
276 | return; | 275 | return; |
277 | 276 | ||
278 | irq_set_chained_handler(shirq->irq, shirq_handler); | 277 | irq_set_chained_handler(parent_irq, shirq_handler); |
278 | irq_set_handler_data(parent_irq, shirq); | ||
279 | |||
279 | for (i = 0; i < shirq->irq_nr; i++) { | 280 | for (i = 0; i < shirq->irq_nr; i++) { |
280 | irq_set_chip_and_handler(shirq->irq_base + i, | 281 | irq_set_chip_and_handler(shirq->irq_base + i, |
281 | &shirq_chip, handle_simple_irq); | 282 | &shirq_chip, handle_simple_irq); |
282 | set_irq_flags(shirq->irq_base + i, IRQF_VALID); | 283 | set_irq_flags(shirq->irq_base + i, IRQF_VALID); |
283 | irq_set_chip_data(shirq->irq_base + i, shirq); | 284 | irq_set_chip_data(shirq->irq_base + i, shirq); |
284 | } | 285 | } |
285 | |||
286 | irq_set_handler_data(shirq->irq, shirq); | ||
287 | } | 286 | } |
288 | 287 | ||
289 | static int __init shirq_init(struct spear_shirq **shirq_blocks, int block_nr, | 288 | static int __init shirq_init(struct spear_shirq **shirq_blocks, int block_nr, |
290 | struct device_node *np) | 289 | struct device_node *np) |
291 | { | 290 | { |
292 | int i, irq_base, hwirq = 0, irq_nr = 0; | 291 | int i, parent_irq, irq_base, hwirq = 0, irq_nr = 0; |
293 | struct irq_domain *shirq_domain; | 292 | struct irq_domain *shirq_domain; |
294 | void __iomem *base; | 293 | void __iomem *base; |
295 | 294 | ||
@@ -319,9 +318,9 @@ static int __init shirq_init(struct spear_shirq **shirq_blocks, int block_nr, | |||
319 | shirq_blocks[i]->base = base; | 318 | shirq_blocks[i]->base = base; |
320 | shirq_blocks[i]->irq_base = irq_find_mapping(shirq_domain, | 319 | shirq_blocks[i]->irq_base = irq_find_mapping(shirq_domain, |
321 | hwirq); | 320 | hwirq); |
322 | shirq_blocks[i]->irq = irq_of_parse_and_map(np, i); | ||
323 | 321 | ||
324 | spear_shirq_register(shirq_blocks[i]); | 322 | parent_irq = irq_of_parse_and_map(np, i); |
323 | spear_shirq_register(shirq_blocks[i], parent_irq); | ||
325 | hwirq += shirq_blocks[i]->irq_nr; | 324 | hwirq += shirq_blocks[i]->irq_nr; |
326 | } | 325 | } |
327 | 326 | ||