Example #1
0
asmlinkage void plat_irq_dispatch(void)
{
	unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;
	if(pending & CAUSEF_IP7 ){
		do_IRQ(cp0_compare_irq);
	}
#if defined (CONFIG_IRQ_GIC)
	if (pending & (CAUSEF_IP2 | CAUSEF_IP3 | CAUSEF_IP4 | CAUSEF_IP5 | CAUSEF_IP6)) {
		gic_irqdispatch();
	}	
#else
	else {
		rt_irq_dispatch();
	}
#endif
}
Example #2
0
asmlinkage void
plat_irq_dispatch(void)
{
	unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;

	if (unlikely(!pending)) {
		pr_err("Spurious CP0 Interrupt!\n");
		spurious_interrupt();
	} else {
		if (pending & CAUSEF_IP7)
			do_IRQ(cp0_compare_irq);

		if (pending & (CAUSEF_IP4 | CAUSEF_IP3 | CAUSEF_IP2))
			gic_irqdispatch();
	}
}