diff options
Diffstat (limited to 'arch/powerpc/sysdev/mpic.c')
| -rw-r--r-- | arch/powerpc/sysdev/mpic.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 8619f2a3f1f6..7680001676a6 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
| @@ -1331,6 +1331,9 @@ void mpic_irq_set_priority(unsigned int irq, unsigned int pri) | |||
| 1331 | unsigned long flags; | 1331 | unsigned long flags; |
| 1332 | u32 reg; | 1332 | u32 reg; |
| 1333 | 1333 | ||
| 1334 | if (!mpic) | ||
| 1335 | return; | ||
| 1336 | |||
| 1334 | spin_lock_irqsave(&mpic_lock, flags); | 1337 | spin_lock_irqsave(&mpic_lock, flags); |
| 1335 | if (is_ipi) { | 1338 | if (is_ipi) { |
| 1336 | reg = mpic_ipi_read(src - mpic->ipi_vecs[0]) & | 1339 | reg = mpic_ipi_read(src - mpic->ipi_vecs[0]) & |
| @@ -1346,23 +1349,6 @@ void mpic_irq_set_priority(unsigned int irq, unsigned int pri) | |||
| 1346 | spin_unlock_irqrestore(&mpic_lock, flags); | 1349 | spin_unlock_irqrestore(&mpic_lock, flags); |
| 1347 | } | 1350 | } |
| 1348 | 1351 | ||
| 1349 | unsigned int mpic_irq_get_priority(unsigned int irq) | ||
| 1350 | { | ||
| 1351 | unsigned int is_ipi; | ||
| 1352 | struct mpic *mpic = mpic_find(irq, &is_ipi); | ||
| 1353 | unsigned int src = mpic_irq_to_hw(irq); | ||
| 1354 | unsigned long flags; | ||
| 1355 | u32 reg; | ||
| 1356 | |||
| 1357 | spin_lock_irqsave(&mpic_lock, flags); | ||
| 1358 | if (is_ipi) | ||
| 1359 | reg = mpic_ipi_read(src = mpic->ipi_vecs[0]); | ||
| 1360 | else | ||
| 1361 | reg = mpic_irq_read(src, MPIC_INFO(IRQ_VECTOR_PRI)); | ||
| 1362 | spin_unlock_irqrestore(&mpic_lock, flags); | ||
| 1363 | return (reg & MPIC_VECPRI_PRIORITY_MASK) >> MPIC_VECPRI_PRIORITY_SHIFT; | ||
| 1364 | } | ||
| 1365 | |||
| 1366 | void mpic_setup_this_cpu(void) | 1352 | void mpic_setup_this_cpu(void) |
| 1367 | { | 1353 | { |
| 1368 | #ifdef CONFIG_SMP | 1354 | #ifdef CONFIG_SMP |
