mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-21 04:53:46 -04:00
[POWERPC] cell: Add routines for managing PMU interrupts
The following routines are added to arch/powerpc/platforms/cell/pmu.c: cbe_clear_pm_interrupts() cbe_enable_pm_interrupts() cbe_disable_pm_interrupts() cbe_query_pm_interrupts() cbe_pm_irq() cbe_init_pm_irq() This also adds a routine in arch/powerpc/platforms/cell/interrupt.c and some macros in cbe_regs.h to manipulate the IIC_IR register: iic_set_interrupt_routing() Signed-off-by: Kevin Corry <kevcorry@us.ibm.com> Signed-off-by: Carl Love <carll@us.ibm.com> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
e4f6948cfc
commit
0443bbd3d8
@@ -396,3 +396,19 @@ void __init iic_init_IRQ(void)
|
||||
/* Enable on current CPU */
|
||||
iic_setup_cpu();
|
||||
}
|
||||
|
||||
void iic_set_interrupt_routing(int cpu, int thread, int priority)
|
||||
{
|
||||
struct cbe_iic_regs __iomem *iic_regs = cbe_get_cpu_iic_regs(cpu);
|
||||
u64 iic_ir = 0;
|
||||
int node = cpu >> 1;
|
||||
|
||||
/* Set which node and thread will handle the next interrupt */
|
||||
iic_ir |= CBE_IIC_IR_PRIO(priority) |
|
||||
CBE_IIC_IR_DEST_NODE(node);
|
||||
if (thread == 0)
|
||||
iic_ir |= CBE_IIC_IR_DEST_UNIT(CBE_IIC_IR_PT_0);
|
||||
else
|
||||
iic_ir |= CBE_IIC_IR_DEST_UNIT(CBE_IIC_IR_PT_1);
|
||||
out_be64(&iic_regs->iic_ir, iic_ir);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user