Commit 52b1e129 authored by Felipe Balbi's avatar Felipe Balbi Committed by Tony Lindgren

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: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent a74f0a17
...@@ -70,6 +70,7 @@ static struct omap_intc_regs intc_context; ...@@ -70,6 +70,7 @@ static struct omap_intc_regs intc_context;
static struct irq_domain *domain; static struct irq_domain *domain;
static void __iomem *omap_irq_base; static void __iomem *omap_irq_base;
static int omap_nr_pending = 3;
static int omap_nr_irqs = 96; static int omap_nr_irqs = 96;
/* INTC bank register get/set */ /* INTC bank register get/set */
...@@ -276,6 +277,7 @@ omap_intc_handle_irq(struct pt_regs *regs) ...@@ -276,6 +277,7 @@ omap_intc_handle_irq(struct pt_regs *regs)
void __init omap2_init_irq(void) void __init omap2_init_irq(void)
{ {
omap_nr_irqs = 96; omap_nr_irqs = 96;
omap_nr_pending = 3;
omap_init_irq(OMAP24XX_IC_BASE, NULL); omap_init_irq(OMAP24XX_IC_BASE, NULL);
set_handle_irq(omap_intc_handle_irq); set_handle_irq(omap_intc_handle_irq);
} }
...@@ -283,6 +285,7 @@ void __init omap2_init_irq(void) ...@@ -283,6 +285,7 @@ void __init omap2_init_irq(void)
void __init omap3_init_irq(void) void __init omap3_init_irq(void)
{ {
omap_nr_irqs = 96; omap_nr_irqs = 96;
omap_nr_pending = 3;
omap_init_irq(OMAP34XX_IC_BASE, NULL); omap_init_irq(OMAP34XX_IC_BASE, NULL);
set_handle_irq(omap_intc_handle_irq); set_handle_irq(omap_intc_handle_irq);
} }
...@@ -290,6 +293,7 @@ void __init omap3_init_irq(void) ...@@ -290,6 +293,7 @@ void __init omap3_init_irq(void)
void __init ti81xx_init_irq(void) void __init ti81xx_init_irq(void)
{ {
omap_nr_irqs = 96; omap_nr_irqs = 96;
omap_nr_pending = 4;
omap_init_irq(OMAP34XX_IC_BASE, NULL); omap_init_irq(OMAP34XX_IC_BASE, NULL);
set_handle_irq(omap_intc_handle_irq); set_handle_irq(omap_intc_handle_irq);
} }
...@@ -299,6 +303,7 @@ static int __init intc_of_init(struct device_node *node, ...@@ -299,6 +303,7 @@ static int __init intc_of_init(struct device_node *node,
{ {
struct resource res; struct resource res;
omap_nr_pending = 3;
omap_nr_irqs = 96; omap_nr_irqs = 96;
if (WARN_ON(!node)) if (WARN_ON(!node))
...@@ -309,8 +314,10 @@ static int __init intc_of_init(struct device_node *node, ...@@ -309,8 +314,10 @@ static int __init intc_of_init(struct device_node *node,
return -EINVAL; return -EINVAL;
} }
if (of_device_is_compatible(node, "ti,am33xx-intc")) if (of_device_is_compatible(node, "ti,am33xx-intc")) {
omap_nr_irqs = 128; omap_nr_irqs = 128;
omap_nr_pending = 4;
}
omap_init_irq(res.start, of_node_get(node)); omap_init_irq(res.start, of_node_get(node));
......
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