aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/sh
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-10-02 09:02:07 -0400
committerPaul Mundt <lethal@linux-sh.org>2010-10-02 09:02:07 -0400
commit4bacd796ccd6976b03dd490708a1abc291d5521e (patch)
tree0c0c1d242940e9fdf83952a821a20e2bdcdf0927 /drivers/sh
parent742759eae6b58a172d8f79ff0938d1e25dc9abc5 (diff)
sh: Support early IRQ vector map reservation for delayed controllers.
Some controllers will need to be initialized lazily due to pinmux constraints, while others may simply have no need to be brought online if there are no backing devices for them attached. In this case it's still necessary to be able to reserve their hardware vector map before dynamic IRQs get a hold of them. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/sh')
-rw-r--r--drivers/sh/intc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/sh/intc.c b/drivers/sh/intc.c
index e91a23e5ffd8..4e01d65e5edb 100644
--- a/drivers/sh/intc.c
+++ b/drivers/sh/intc.c
@@ -1377,6 +1377,17 @@ int reserve_irq_vector(unsigned int irq)
1377 return ret; 1377 return ret;
1378} 1378}
1379 1379
1380void reserve_intc_vectors(struct intc_vect *vectors, unsigned int nr_vecs)
1381{
1382 unsigned long flags;
1383 int i;
1384
1385 spin_lock_irqsave(&vector_lock, flags);
1386 for (i = 0; i < nr_vecs; i++)
1387 __set_bit(evt2irq(vectors[i].vect), intc_irq_map);
1388 spin_unlock_irqrestore(&vector_lock, flags);
1389}
1390
1380void reserve_irq_legacy(void) 1391void reserve_irq_legacy(void)
1381{ 1392{
1382 unsigned long flags; 1393 unsigned long flags;