aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2014-09-08 20:54:57 -0400
committerTony Lindgren <tony@atomide.com>2014-09-11 16:05:48 -0400
commit52b1e1291334d79bb3d2fcaec15f7fc42eedbd83 (patch)
tree180acc419f39a011a26c9f620dba6a99cbf88a2f /arch
parenta74f0a176e3e048df78816ec383b219f8ac6867e (diff)
arm: omap: irq: introduce omap_nr_pending
that variable will tell us how many INTC_PENDING_IRQn registers we have. It'll be used on a following patch to cleanup omap_intc_handle_irq() a bit. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/irq.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 44d9cf4e74de..583a1c7de855 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -70,6 +70,7 @@ static struct omap_intc_regs intc_context;
70 70
71static struct irq_domain *domain; 71static struct irq_domain *domain;
72static void __iomem *omap_irq_base; 72static void __iomem *omap_irq_base;
73static int omap_nr_pending = 3;
73static int omap_nr_irqs = 96; 74static int omap_nr_irqs = 96;
74 75
75/* INTC bank register get/set */ 76/* INTC bank register get/set */
@@ -276,6 +277,7 @@ out:
276void __init omap2_init_irq(void) 277void __init omap2_init_irq(void)
277{ 278{
278 omap_nr_irqs = 96; 279 omap_nr_irqs = 96;
280 omap_nr_pending = 3;
279 omap_init_irq(OMAP24XX_IC_BASE, NULL); 281 omap_init_irq(OMAP24XX_IC_BASE, NULL);
280 set_handle_irq(omap_intc_handle_irq); 282 set_handle_irq(omap_intc_handle_irq);
281} 283}
@@ -283,6 +285,7 @@ void __init omap2_init_irq(void)
283void __init omap3_init_irq(void) 285void __init omap3_init_irq(void)
284{ 286{
285 omap_nr_irqs = 96; 287 omap_nr_irqs = 96;
288 omap_nr_pending = 3;
286 omap_init_irq(OMAP34XX_IC_BASE, NULL); 289 omap_init_irq(OMAP34XX_IC_BASE, NULL);
287 set_handle_irq(omap_intc_handle_irq); 290 set_handle_irq(omap_intc_handle_irq);
288} 291}
@@ -290,6 +293,7 @@ void __init omap3_init_irq(void)
290void __init ti81xx_init_irq(void) 293void __init ti81xx_init_irq(void)
291{ 294{
292 omap_nr_irqs = 96; 295 omap_nr_irqs = 96;
296 omap_nr_pending = 4;
293 omap_init_irq(OMAP34XX_IC_BASE, NULL); 297 omap_init_irq(OMAP34XX_IC_BASE, NULL);
294 set_handle_irq(omap_intc_handle_irq); 298 set_handle_irq(omap_intc_handle_irq);
295} 299}
@@ -299,6 +303,7 @@ static int __init intc_of_init(struct device_node *node,
299{ 303{
300 struct resource res; 304 struct resource res;
301 305
306 omap_nr_pending = 3;
302 omap_nr_irqs = 96; 307 omap_nr_irqs = 96;
303 308
304 if (WARN_ON(!node)) 309 if (WARN_ON(!node))
@@ -309,8 +314,10 @@ static int __init intc_of_init(struct device_node *node,
309 return -EINVAL; 314 return -EINVAL;
310 } 315 }
311 316
312 if (of_device_is_compatible(node, "ti,am33xx-intc")) 317 if (of_device_is_compatible(node, "ti,am33xx-intc")) {
313 omap_nr_irqs = 128; 318 omap_nr_irqs = 128;
319 omap_nr_pending = 4;
320 }
314 321
315 omap_init_irq(res.start, of_node_get(node)); 322 omap_init_irq(res.start, of_node_get(node));
316 323