Commit dd85c791 authored by Milo Kim's avatar Milo Kim Committed by Thomas Gleixner

irqchip/atmel-aic: Handle aic_common_irq_fixup in aic_common_of_init

AIC IRQ fixup is handled in each IRQ chip driver.
It can be moved into aic_common_of_init() before returning the result.
Then, aic_common_irq_fixup() can be changed to static type.
Signed-off-by: default avatarMilo Kim <milo.kim@ti.com>
Acked-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: Nicholas Ferre <nicolas.ferre@atmel.com>
Link: http://lkml.kernel.org/r/1452669592-3401-1-git-send-email-milo.kim@ti.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 388f7b1d
...@@ -193,7 +193,7 @@ void __init aic_common_rtt_irq_fixup(struct device_node *root) ...@@ -193,7 +193,7 @@ void __init aic_common_rtt_irq_fixup(struct device_node *root)
} }
} }
void __init aic_common_irq_fixup(const struct of_device_id *matches) static void __init aic_common_irq_fixup(const struct of_device_id *matches)
{ {
struct device_node *root = of_find_node_by_path("/"); struct device_node *root = of_find_node_by_path("/");
const struct of_device_id *match; const struct of_device_id *match;
...@@ -214,7 +214,8 @@ void __init aic_common_irq_fixup(const struct of_device_id *matches) ...@@ -214,7 +214,8 @@ void __init aic_common_irq_fixup(const struct of_device_id *matches)
struct irq_domain *__init aic_common_of_init(struct device_node *node, struct irq_domain *__init aic_common_of_init(struct device_node *node,
const struct irq_domain_ops *ops, const struct irq_domain_ops *ops,
const char *name, int nirqs) const char *name, int nirqs,
const struct of_device_id *matches)
{ {
struct irq_chip_generic *gc; struct irq_chip_generic *gc;
struct irq_domain *domain; struct irq_domain *domain;
...@@ -264,6 +265,7 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node, ...@@ -264,6 +265,7 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node,
} }
aic_common_ext_irq_of_init(domain); aic_common_ext_irq_of_init(domain);
aic_common_irq_fixup(matches);
return domain; return domain;
......
...@@ -30,12 +30,11 @@ int aic_common_irq_domain_xlate(struct irq_domain *d, ...@@ -30,12 +30,11 @@ int aic_common_irq_domain_xlate(struct irq_domain *d,
struct irq_domain *__init aic_common_of_init(struct device_node *node, struct irq_domain *__init aic_common_of_init(struct device_node *node,
const struct irq_domain_ops *ops, const struct irq_domain_ops *ops,
const char *name, int nirqs); const char *name, int nirqs,
const struct of_device_id *matches);
void __init aic_common_rtc_irq_fixup(struct device_node *root); void __init aic_common_rtc_irq_fixup(struct device_node *root);
void __init aic_common_rtt_irq_fixup(struct device_node *root); void __init aic_common_rtt_irq_fixup(struct device_node *root);
void __init aic_common_irq_fixup(const struct of_device_id *matches);
#endif /* __IRQ_ATMEL_AIC_COMMON_H */ #endif /* __IRQ_ATMEL_AIC_COMMON_H */
...@@ -248,12 +248,10 @@ static int __init aic_of_init(struct device_node *node, ...@@ -248,12 +248,10 @@ static int __init aic_of_init(struct device_node *node,
return -EEXIST; return -EEXIST;
domain = aic_common_of_init(node, &aic_irq_ops, "atmel-aic", domain = aic_common_of_init(node, &aic_irq_ops, "atmel-aic",
NR_AIC_IRQS); NR_AIC_IRQS, aic_irq_fixups);
if (IS_ERR(domain)) if (IS_ERR(domain))
return PTR_ERR(domain); return PTR_ERR(domain);
aic_common_irq_fixup(aic_irq_fixups);
aic_domain = domain; aic_domain = domain;
gc = irq_get_domain_generic_chip(domain, 0); gc = irq_get_domain_generic_chip(domain, 0);
......
...@@ -312,12 +312,10 @@ static int __init aic5_of_init(struct device_node *node, ...@@ -312,12 +312,10 @@ static int __init aic5_of_init(struct device_node *node,
return -EEXIST; return -EEXIST;
domain = aic_common_of_init(node, &aic5_irq_ops, "atmel-aic5", domain = aic_common_of_init(node, &aic5_irq_ops, "atmel-aic5",
nirqs); nirqs, aic5_irq_fixups);
if (IS_ERR(domain)) if (IS_ERR(domain))
return PTR_ERR(domain); return PTR_ERR(domain);
aic_common_irq_fixup(aic5_irq_fixups);
aic5_domain = domain; aic5_domain = domain;
nchips = aic5_domain->revmap_size / 32; nchips = aic5_domain->revmap_size / 32;
for (i = 0; i < nchips; i++) { for (i = 0; i < nchips; i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment